ALBERT:轻量级的BERT,用于语言表征的自监督学习


📖阅读时长:19分钟

🕙发布时间:2025-02-13

近日热文:全网最全的神经网络数学原理(代码和公式)直观解释
欢迎关注知乎和公众号的专栏内容
LLM架构专栏
知乎LLM专栏
知乎【柏企
公众号【柏企科技说】【柏企阅文

ALBERT提出了特定的参数缩减技术,以降低内存消耗并提高BERT的训练速度。

模型架构选择

ALBERT架构的主干与BERT类似,它使用带有高斯误差线性单元(GELU)非线性激活函数的Transformer编码器。ALBERT将前馈/滤波器大小设置为4H,注意力头的数量设置为H/64,其中H是BERT中的隐藏层大小。

与BERT类似,ALBERT的所有实验都使用大小为30,000的词汇表V。

因式分解嵌入参数化

在BERT以及后续的模型改进中,词块(WordPiece)嵌入大小E与隐藏层大小H是绑定的,即E ≡ H。但这个设定似乎并不是最优的:

  • 从建模的角度来看,词块嵌入旨在学习与上下文无关的表征,而隐藏层嵌入旨在学习与上下文相关的表征。将词块嵌入大小E与隐藏层大小H解耦,我们可以根据建模需求更有效地利用模型的总参数,因为通常H >> E 。
  • 从实际应用的角度来看,自然语言处理通常需要较大的词汇表V。如果E ≡ H,那么增加H会增大嵌入矩阵的大小(嵌入矩阵大小为V × E)。这很容易导致模型拥有数十亿个参数,而在训练过程中,其中大多数参数只是稀疏地更新。

因此,对于ALBERT,采用了嵌入参数的因式分解方法,将其分解为两个较小的矩阵。不是将独热向量直接投影到大小为H的隐藏空间中,而是先将它们投影到大小为E的低维嵌入空间中,然后再投影到隐藏空间。通过这种分解,我们将嵌入参数从O(V × H)减少到O(V × E + E × H)。当H >> E时,这种参数缩减效果非常显著。

跨层参数共享

ALBERT提出跨层参数共享作为提高参数效率的另一种方法。参数共享有多种方式,例如,仅在各层之间共享前馈网络(FFN)参数,或者仅共享注意力参数。ALBERT的默认设置是在所有层之间共享所有参数。

句间连贯性损失

除了掩码语言建模(MLM)损失外,BERT还使用了一种称为下一句预测(NSP)的额外损失。后续研究发现NSP的效果并不稳定,并决定舍弃它,多项下游任务性能的提升也支持了这一决定。

ALBERT推测NSP无效的主要原因是这个任务缺乏难度。

也就是说,ALBERT使用句子顺序预测(SOP)损失。SOP损失的正例采用与BERT相同的技术(来自同一文档的两个连续片段),负例则是相同的两个连续片段,但顺序颠倒。这迫使模型学习关于语篇层面连贯性属性的更细粒度差异。

模型设置

ALBERT-large的参数数量比BERT-large少约18倍,分别为1800万和3.34亿。

配置为H = 2048的ALBERT-xlarge只有6000万个参数。

配置为H = 4096的ALBERT-xxlarge有2.33亿个参数,即大约是BERT-large参数数量的70%。

为了使比较尽可能有意义,我们遵循BERT的设置,使用图书语料库(BOOKCORPUS)和英文维基百科来预训练基线模型。

结果

论文:ALBERT: A Lite BERT for Self-supervised Learning of Language Representations(1909.11942)

## 推荐阅读
1. DeepSeek-R1的顿悟时刻是如何出现的? 背后的数学原理
2. 微调 DeepSeek LLM:使用监督微调(SFT)与 Hugging Face 数据
3. 使用 DeepSeek-R1 等推理模型将 RAG 转换为 RAT
4. DeepSeek R1:了解GRPO和多阶段训练
5. 深度探索:DeepSeek-R1 如何从零开始训练
6. DeepSeek 发布 Janus Pro 7B 多模态模型,免费又强大!

本文由mdnice多平台发布


柏企科技圈
15 声望5 粉丝