再讀bert(Bidirectional Encoder Representations from Transformers)

再讀 BERT,仿佛在數字叢林中邂逅一位古老而智慧的先知。初次相見時,驚嘆于它以 Transformer 架構為羅盤,在預訓練與微調的星河中精準導航,打破 NLP 領域長久以來的迷霧。而如今,書頁間躍動的不再僅是 Attention 機制精妙的數學公式,更是一場關于語言本質的哲學思辨 —— 它讓我看見,那些被編碼的詞向量,恰似人類思維的碎片,在雙向語境的熔爐中不斷重組、淬煉,將離散的文字升華為可被計算的意義。BERT 教會我們,語言從來不是孤立的字符堆砌,而是承載著文化、邏輯與情感的多維載體,每一次模型的迭代與優化,都是人類向理解語言本質更深處的一次虔誠叩問,在這過程中,我們既是技術的創造者,也是語言奧秘的永恒探索者。

論文:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

Github:https://github.com/google-research/bert?tab=readme-ov-file

1.引言與核心創新

  • 背景

現有預訓練模型(如 ELMo、GPT)多基于單向語言模型,限制深層雙向表征能力。

  • 創新點

(1)提出BERT,通過MLMNSP預訓練任務,實現真正的深層雙向 Transformer 表征。

(2)證明預訓練模型可通過簡單微調(僅添加輸出層)適配多任務,無需復雜架構設計。

2.模型架構與輸入表征

  • 模型結構:

BERT(Bidirectional Encoder Representations from Transformers)由Google 提出并基于 Transformer 架構進行開發的預訓練語言模型。如圖所示, BERT 模型是由多個 Transformer 的編碼器逐層疊加而成。 BERT 模型包括兩種標準配置,其中 Base 版本包含 12 層 Transformer 編碼器,而 Large版本包含 24 層 Transformer 編碼器,其參數總數分別為 110M 和 340M。

BERT 模型的關鍵特點是能夠全方位地捕捉上下文信息。與傳統的單向模型(GPT-1 等自回歸模型)相比, BERT 能夠從兩個方向考慮上下文,涵蓋了某個詞元之前和之后的信息。傳統的模型往往只從一個固定的方向考慮上下文,這在處理復雜的語義關系和多變的句子結構時可能會遇到困難。例如,在問答系統中,單一方向可能導致模型不能完全理解問題的上下文,從而影響其回答的準確性。此外,在情感分析、關系抽取、語義角色標注、文本蘊涵和共指解析等任務中,單向方法可能無法充分捕獲復雜的語義關系和上下文依賴,限制了其性能。為了應對這些挑戰, BERT 通過預測遮蔽的詞元來全面理解句子中的上下文,從而在許多 NLP 任務中實現了顯著的性能增強。

  • Transformer 配置

模型

層數 (L)

隱層大小 (H)

注意力頭 (A)

參數總量

BERT BASE

12

768

12

110M

BERT LARGE

24

1024

16

340M

  • 輸入表征

采用WordPiece 分詞(30k 詞匯表),添加特殊 token:

[CLS]:序列分類標識,對應隱層用于分類任務。

[SEP]:句子對分隔符,段嵌入(Sentence A/B)區分句子歸屬。

輸入嵌入 = 詞嵌入 + 段嵌入 + 位置嵌入。

3.訓練任務設計

BERT 模型的訓練過程通常分為預訓練(Pre-training)與微調訓練(Finetuning)等兩部分。

3.1 預訓練

在預訓練階段, BERT 模型在大量未標注的文本數據上進行訓練,目標是學習文本之間的深層次關系和模式。具體來說,它使用了兩種訓練策略:

i)掩碼語言模型 (Masked Language Model);

ii)預測下一句(Next Sentence Prediction)。

任務 1:掩碼語言模型(MLM)

掩碼策略:隨機選擇 15% tokens,其中:

80% 替換為[MASK](如my dog is [MASK]),

10% 替換為隨機詞(如my dog is apple),

10% 保留原詞(如my dog is hairy)。

目標:通過雙向注意力預測原詞,緩解預訓練與微調時[MASK]未出現的不匹配問題。

任務 2:下一句預測(NSP)

數據生成:50% 真實連續句對(標簽 IsNext),50% 隨機句對(標簽 NotNext)。

目標:通過[CLS]隱層預測句對關系,提升句子級語義理解(如 QA、NLI 任務)。

3.2 微調

微調訓練階段是在預訓練的 BERT 模型基礎上,針對特定任務進行的訓練。這一階段使用具有標簽的數據,如情感分析或命名實體識別數據。通過在預訓練模型上加載特定任務的數據進行微調, BERT 能夠在各種下游任務中達到令人滿意的效果。

BERT 模型微調訓練的目的是使其具備處理各種下游任務的能力,微調的任務包括:句子對分類任務、單句分類任務、問答任務和命名實體識別等。

微調訓練中為了使 BERT 適應各種 NLP 任務,模型首先調整其輸入和輸出。例如,在基于句子對的分類任務中,假設要判斷句子 A“這家餐廳的食物很美味。”和句子 B“菜品口味很棒,值得推薦。”之間的關系,模型的輸入是這兩個句子的組合,而輸出可能是它們的關系分類,例如“相關”或“不相關”。而在命名實體識別任務中,如果輸入句子為“任正非是華為的創始人”,輸出則是每個詞的實體類別,如“任正非”被標記為“PERSON”,“華為”被標記為“ORGANIZATION”。在針對不同的任務,如文本分類、實體識別或問答等,進行微調訓練時,會在 BERT 模型上增添一個特定的輸出層。這個輸出層是根據特定任務的需求設計的。例如,如果是文本分類任務,輸出層可能包含少量神經元,每個神經元對應一個類別。同時,通過反向傳播對模型參數進行調整。微調的過程就像是對模型進行 “二次訓練”。

4.實驗結果與 SOTA 突破

  • GLUE 基準(11 任務)

任務

BERT LARGE 得分

前 SOTA

提升幅度

MNLI(自然語言推理)

86.7%

82.1%(GPT)

+4.6%

QNLI(問答推理)

92.7%

87.4%(GPT)

+5.3%

SST-2(情感分析)

94.9%

91.3%(GPT)

+3.6%

平均得分

82.1%

75.1%(GPT)

+7.0%

  • SQuAD 問答任務

v1.1(有答案):單模型 F1 值 93.2,ensemble 達 93.9,超過人類表現(91.2%)。

v2.0(無答案):F1 值 83.1,較前 SOTA 提升 5.1%,首次接近人類表現(89.5%)。

  • SWAG 常識推理:BERT LARGE 準確率 86.3%,遠超 GPT(78.0%)和人類專家(85.0%)。

5.消融研究與關鍵發現

  • NSP 任務的重要性

移除 NSP 后,MNLI 準確率從 84.4% 降至 83.9%,QNLI 從 88.4% 降至 84.9%,證明句子級關系建模對 QA 和 NLI 至關重要。

  • 雙向性 vs 單向性

單向模型(LTR,類似 GPT)在 SQuAD F1 值僅 77.8%,遠低于 BERT BASE 的 88.5%;添加 BiLSTM 后提升至 84.9%,仍顯著落后。

  • 模型規模的影響

增大參數(如從 110M 到 340M)持續提升性能,即使在小數據集任務(如 MRPC,3.5k 訓練例)中,BERT LARGE 準確率 70.1%,較 BASE 的 66.4% 提升 3.7%。

6.對比現有方法

  • 與 GPT 對比

    • GPT 為單向 Transformer(僅左到右),BERT 通過 MLM 實現雙向,且預訓練數據多 3 倍(33 億詞 vs GPT 的 8 億詞)。
    • BERT 在 GLUE 平均得分比 GPT 高 7.0%,證明雙向性和 NSP 的關鍵作用。
  • 與 ELMo 對比

    • ELMo 通過拼接單向 LSTM 輸出實現雙向,為特征基方法;BERT 為微調基,參數效率更高,且深層雙向表征更優。

7.關鍵問題

問題 1:BERT 如何實現深層雙向語義表征?

答案:BERT 通過 ** 掩碼語言模型(MLM)下一句預測(NSP)** 任務實現雙向表征。MLM 隨機掩碼 15% 的輸入 tokens(80% 替換為 [MASK]、10% 隨機詞、10% 保留原詞),迫使模型利用左右語境預測原詞,避免單向模型的局限性;NSP 任務通過判斷句對是否連續,學習句子級語義關系,增強模型對上下文依賴的建模能力。

問題 2:BERT 在預訓練中如何處理 “掩碼 token 未在微調時出現” 的不匹配問題?

答案:BERT 采用混合掩碼策略:在 15% 被選中的 tokens 中,僅 80% 替換為 [MASK],10% 隨機替換為其他詞,10% 保留原詞。這種策略減少了預訓練與微調時的分布差異,使模型在微調時更適應未出現 [MASK] 的真實場景,同時通過隨機替換和保留原詞,增強模型對輸入噪聲的魯棒性。

問題 3:模型規模對 BERT 性能有何影響?

答案:增大模型規模(如從 BERT BASE 的 110M 參數到 LARGE 的 340M 參數)顯著提升性能,尤其在小數據集任務中優勢明顯。實驗顯示,更大的模型在 GLUE 基準的所有任務中均表現更優,MNLI 準確率從 84.6% 提升至 86.7%,MRPC(3.5k 訓練例)準確率從 66.4% 提升至 70.1%。這表明,足夠的預訓練后,更大的模型能學習更豐富的語義表征,即使下游任務數據有限,也能通過微調有效遷移知識。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/902098.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902098.shtml
英文地址,請注明出處:http://en.pswp.cn/news/902098.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從零開始 保姆級教程 Ubuntu20.04系統安裝MySQL8、服務器配置MySQL主從復制、本地navicat遠程連接服務器數據庫

從零開始:Ubuntu 20.04 系統安裝 MySQL 8、服務器配置 MySQL 主從復制、本地 Navicat 遠程連接服務器數據庫 初始化服務器1. 更新本地軟件包列表2. 安裝 MySQL 服務器3. 查看 MySQL 安裝版本4. 登錄 MySQL 管理終端5. 設置 root 用戶密碼(推薦使用 nativ…

java怎么完善注冊,如果郵箱中途更換,能否判斷

解析在下面 附贈代碼 private static class CodeInfo {String code;long timestamp;CodeInfo(String code, long timestamp) {this.code code;this.timestamp timestamp;}}// 存儲驗證碼(郵箱 -> 驗證碼信息)(保證線程安全) 以免中途更改郵箱pri…

n8n 中文系列教程_01. 簡單易懂的現代AI魔法,n8n的快速了解與概念科普(文末有彩蛋)

1. 教程簡介 歡迎來到“無代碼工具探索”課程,這是專為非技術人員設計的指南(當然,技術人員也可以從中受益)。我們的目標是通過無代碼工具來提升工作效率,尤其是利用像 n8n 這樣的靈活數據庫平臺。這些工具被譽為“現…

解碼 Web Service:從技術原理到應用場景的深度剖析

Web Service 是一種基于網絡的、分布式的計算技術,它允許不同的應用程序之間通過網絡進行通信和交互。以下是關于 Web Service 的詳細介紹: 一、定義與概念 Web Service 是一種可以通過 Web 協議(如 HTTP)進行訪問的軟件組件&am…

Nacos啟動報錯

Nacos啟動是在單機模式下,不是集群模式 點擊startup.cmd啟動會報錯 打開bin目錄 rem是注釋的意思,在nacos1.3.2之后,nacos默認的都是集群模式,我們這里單機測試就是用單機模式。 也可以修改MODE,如果選擇不修改&…

uniapp-商城-26-vuex 使用流程

為了能在所有的頁面都實現狀態管理,我們按照前面講的頁面進行狀態獲取,然后再進行頁面設置和布局,那就是重復工作,vuex 就會解決這樣的問題,如同類、高度提煉的接口來幫助我們實現這些重復工作的管理。避免一直在造一樣…

Git 命令速查手冊

聽說用美圖可以釣讀者? 一、基礎操作核心命令 1. 倉庫初始化與克隆 命令作用示例git init創建新倉庫git init my-projectgit clone克隆遠程倉庫git clone [https://github.com/user/repo.git](https://github.com/user/repo.git)git remote add關聯遠程倉庫git re…

信息量、香農熵、交叉熵、KL散度總結

信息量 對于一個事件而言,它一般具有三個特征: 小概率事件往往具有較大的信息量 大概率事件往往具有較小的信息量 獨立事件的信息量相互可以相加 比如我們在買彩票這個事件中,彩票未中獎的概率往往很高,對我們而言一點也不稀…

使用C語言的cJSON中給JSON字符串添加轉義

在 cJSON 庫中,沒有直接提供 一個函數來專門給 JSON 字符串添加轉義(如將 " 轉義為 \",\n 轉義為 \\n 等)。 但 cJSON 在 序列化(cJSON_Print 或 cJSON_PrintUnformatted) 時會自動處理轉義字符…

宇樹機器狗go2—slam建圖(1)點云格式

0.前言 上一篇番外文章教大家如何在宇樹機器狗go2的gazebo仿真環境中實現簡單的導航運動,本期文章會教大家如何讓宇樹的機器狗go2在仿真環境中進行slam建圖時經常會遇到的一些點云格式,在后續的slam建圖和slam算法解析的時候會經常與這些點云信息打交道…

linux socket編程之udp(實現客戶端和服務端消息的發送和接收)

目錄 一.創建socket套接字(服務器端) 二.bind將prot與端口號進行綁定(服務器端) 2.1填充sockaddr_in結構 2.2bind綁定端口 三.直接通信(服務器端) 3.1接收客戶端發送的消息 3.2給客戶端發送消息 四.客戶端通信 4.1創建socket套接字 4.2客戶端bind問題 4.3直接通信即可…

第1期:Python基礎語法入門

1.1 Python簡介 Python是一種解釋型、面向對象、動態數據類型的高級編程語言。它設計簡潔,易于學習,適合初學者。Python廣泛應用于數據科學、人工智能、Web開發、自動化腳本等領域。它的語法簡潔易懂,強調代碼的可讀性。 1.2 安裝Python與配…

使用EXCEL繪制平滑曲線

播主播主,你都多少天沒更新了!!!泥在干什么?你還做這個賬號麻?!!! 做的做的(哭唧唧),就是最近有些忙,以及…… 前言&…

當算力遇上馬拉松:一場科技與肉身的極限碰撞

目錄 一、從"肉身苦修"到"科技修仙" 二、馬拉松的"新大陸戰爭" 三、肉身會被算法"優化"嗎? 馬拉松的下一站是"人機共生"時代 當AI能預測你的馬拉松成績,算法能規劃最佳補給方案,智能裝備讓訓練效率翻倍——你還會用傳…

MLLMs for TSAD ?

項目鏈接:Multimodal LLMs Advance Time Series Analysis 代碼鏈接:https://github.com/mllm-ts/VisualTimeAnomaly 出處:ICLR 2025 一 文章動機 多模態 LLM (MLLM) 通過 “視覺” 方式處理時序的潛力仍未充分探索; 人類檢測 “時序異常” 的自然方式:可視化、文本描…

開發基于python的商品推薦系統,前端框架和后端框架的選擇比較

開發一個基于Python的商品推薦系統時,前端和后端框架的選擇需要綜合考慮項目需求、開發效率、團隊熟悉度以及系統的可擴展性等因素。 以下是一些推薦的框架和建議: 后端框架 Flask 優點: 輕量級:Flask的核心非常簡潔,…

chili3d調試筆記2+添加web ui按鈕

onclick 查找 打個斷點看看 挺可疑的,打個斷點看看 挺可疑的,打個斷點看看 打到事件監聽上了 加ui了 加入成功 新建彈窗-------------------------------------- 可以模仿這個文件,寫彈窗 然后在這里注冊一下,外部就能調用了 對了…

【重學Android】1.關于@Composer注解的一點知識筆記

最新因為一些原因,開始重新學習Android及kotlin編程,也覺得可以順帶記錄下這個過程中的一些知識點,也可以用作日后自己查找復習。 Composable 注解在 Android 開發中的使用 Composable 是 Jetpack Compose(Android 的現代聲明式…

qt+mingw64+cmake+libqrencode項目編譯和搭建成功記錄

最近要使用高拍儀拍照獲取照片,然后識別照片中的二維碼數據、使用QZxing只能識別出一個條碼、另外一個條碼準備測試用其他的開源項目(如libqrencode-4.1.1)來進行測試,故進行本文的項目環境搭建測試,最后成功。 本機開…

【今日三題】判斷是不是平衡二叉樹(遞歸) / 最大子矩陣(二維前綴和) / 小蔥的01串(滑動窗口)

??個人主頁:小羊 ??所屬專欄:每日兩三題 很榮幸您能閱讀我的文章,誠請評論指點,歡迎歡迎 ~ 目錄 判斷是不是平衡二叉樹(遞歸)最大子矩陣(二維前綴和)小蔥的01串(滑動窗口) 判斷是不是平衡二叉樹(遞歸) 判斷是不是平衡二叉…