BERT 的成功激发了大量改进工作,形成了丰富的编码器模型家族。每个改进版本都针对 BERT 的特定不足提出了解决方案。
RoBERTa(Robustly Optimized BERT Approach,Liu 等人,2019 年)没有改变 BERT 的架构,而是通过更充分的训练取得了显著的性能提升:
去除 NSP 任务(实验证明其贡献为零甚至负面)
使用更大的批次(8K 样本 → 更稳定的梯度估计)
使用更多的训练数据(16 GB → 160 GB)
动态调整 MLM 掩码位置(每个 epoch 重新随机选择遮盖位置)
训练更长时间
RoBERTa 的成功传达了一个重要信息:BERT 的架构设计本身是合理的,性能提升的关键在于训练是否充分。 这一发现也影响了后续大模型的训练策略。
ALBERT(A Lite BERT,Lan 等人,2019 年)通过两种创新大幅减小模型体积:
跨层参数共享:所有 Transformer 层使用同一组参数。直觉上,Transformer 的每一层执行的是类似的“注意力 → 变换”操作,参数共享是一种强正则化,迫使模型学习更通用的变换。ALBERT-xxlarge 用 12 层共享参数达到了 BERT-large(24 层独立参数)的性能水平。
嵌入矩阵分解:将大的嵌入矩阵 $V \times H$ 分解为两个小矩阵 $V \times E$ 和 $E \times H$ 的乘积($E \ll H$),大幅减少嵌入层的参数量。
ELECTRA(Clark 等人,2020 年)从根本上改变了预训练任务的设计。它使用一个小型生成器(类似于小型 MLM 模型)替换部分词元,然后训练一个大型判别器(目标模型)判断序列中每个位置的词元是否被替换过。
关键优势:判别器在所有位置上都计算损失($n$ 个位置),而 BERT 的 MLM 只在 15% 的遮盖位置上计算损失($0.15n$ 个位置)。这使得 ELECTRA 在同等计算预算下学到更多语言知识,训练效率提升约 4 倍。
ELECTRA 用仅 1/4 的 BERT 训练计算量就达到了同等性能,展示了预训练任务设计对效率的巨大影响。
最后更新于1天前