ALBERT
A Lite BERT for Self-supervised Learning of Language Representations
Lan et al., Google Research, 2019 — arXiv:1909.11942
前身:BERT → 問題:RoBERTa 驗證資料量有效,但模型本身太大
動機
BERT-large 有 340M 參數,在記憶體和訓練速度上有瓶頸:
- 分散式訓練時跨機器傳遞參數代價高
- 越大不一定越好(模型降級現象 model degradation)
目標:大幅減少參數量,同時維持甚至提升性能
方法(兩個核心技術)
1. Factorized Embedding Parameterization(分解嵌入)
BERT:詞彙表 embedding 直接對應 hidden size(V × H)
ALBERT:先映射到小維度再投影(V × E + E × H),E << H
BERT-large: 30000 × 1024 = 30.7M 參數
ALBERT-xxl: 30000 × 128 + 128 × 4096 = 4.3M 參數
2. Cross-layer Parameter Sharing(跨層共享)
所有 Transformer 層共用同一組參數(attention + FFN)
→ 12 層實際上只有 1 層的參數量
3. SOP 取代 NSP
Sentence Order Prediction:正向 vs 反向句子對(更難,更有意義)
規格對比
| BERT-base | ALBERT-base | ALBERT-xxlarge | |
|---|---|---|---|
| Parameters | 110M | 12M | 235M |
| Hidden | 768 | 768 | 4096 |
| Layers | 12 | 12 | 12 |
優點 / 缺點
| 說明 | |
|---|---|
| ✅ | 參數量大幅下降(base 從 110M → 12M) |
| ✅ | 訓練記憶體需求低 |
| ✅ | SOP 比 NSP 更有效 |
| ❌ | 推論速度沒有加快(層數不變,只是共享參數) |
| ❌ | 共享參數限制了每層學到不同表示的能力 |
下一個演進
→ ELECTRA:不改架構,改預訓練任務,讓每個 token 都有訓練信號