再讀 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,通過MLM和NSP預訓練任務,實現真正的深層雙向 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%。這表明,足夠的預訓練后,更大的模型能學習更豐富的語義表征,即使下游任務數據有限,也能通過微調有效遷移知識。