> For the complete documentation index, see [llms.txt](https://yeasy.gitbook.io/llm_internals/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yeasy.gitbook.io/llm_internals/di-si-bu-fen-mo-xing-yu-qian-yan-pian/12_encoder_models/12.2_roberta_albert.md).

# 12.2 RoBERTa、ALBERT 与 ELECTRA：BERT 的改进之路

BERT 的成功激发了大量改进工作，形成了丰富的编码器模型家族。每个改进版本都针对 BERT 的特定不足提出了解决方案。

## 12.2.1 RoBERTa：充分训练的力量

RoBERTa（Robustly Optimized BERT Pretraining Approach，Liu 等人，2019 年）没有改变 BERT 的架构，而是通过**更充分的训练**取得了显著的性能提升：

* 去除 NSP 任务（实验证明其贡献为零甚至负面）
* 使用更大的批次（从 BERT 的 256 提升到 8K 序列 → 更稳定的梯度估计）
* 使用更多的训练数据（16 GB → 160 GB）
* 动态调整 MLM 掩码位置（每个 epoch 重新随机选择遮盖位置）
* 训练更长时间

RoBERTa 的成功传达了一个重要信息：**BERT 的架构设计本身是合理的，性能提升的关键在于训练是否充分。** 这一发现也影响了后续大模型的训练策略。

## 12.2.2 ALBERT：参数效率的突破

ALBERT（A Lite BERT，Lan 等人，2019 年）通过两种创新大幅减小模型体积：

**跨层参数共享**：所有 Transformer 层使用同一组参数。直觉上，Transformer 的每一层执行的是类似的“注意力 → 变换”操作，参数共享是一种强正则化，迫使模型学习更通用的变换。ALBERT-xxlarge 用共享参数显著减少模型规模，并在若干基准上达到或超过 BERT-large；代价是层间表达能力受约束，实际收益依赖模型规模、训练预算和任务类型。

**嵌入矩阵分解**：将大的嵌入矩阵 $$V \times H$$ 分解为两个小矩阵 $$V \times E$$ 和 $$E \times H$$ 的乘积（$$E \ll H$$），大幅减少嵌入层的参数量。

## 12.2.3 ELECTRA：训练效率的最优化

ELECTRA（Clark 等人，2020 年）从根本上改变了预训练任务的设计。它使用一个小型**生成器**（类似于小型 MLM 模型）替换部分词元，然后训练一个大型**判别器**（目标模型）判断序列中每个位置的词元是否被替换过。

关键优势：**判别器在所有位置上都计算损失**（$$n$$ 个位置），而 BERT 的 MLM 只在 15% 的遮盖位置上计算损失（$$0.15n$$ 个位置）。这使得 ELECTRA 在同等计算预算下学到更多语言知识，训练效率提升约 4 倍。

ELECTRA 用不到 RoBERTa 和 XLNet 1/4 的训练计算量就达到了与它们相当的性能（同等计算量下则超越它们），展示了预训练任务设计对效率的巨大影响。
