ALBERT(A Lite BERT)是由谷歌人工智能团队于2019年推出的一种基于Transformer的大语言模型,其设计目标是作为BERT的更高效内存替代方案。该模型致力于在保持自然语言理解任务竞争力的同时,减少参数数量和训练时间。其名称中的“Lite”体现了其轻量化的架构特点,这主要通过两项关键创新实现:因子化嵌入参数化和跨层参数共享。
该模型由张振中、陈明达、塞巴斯蒂安·古德曼、凯文·金佩尔、皮尤什·夏尔马和拉杜·索库茨等人共同开发,预印本于2019年10月发布。ALBERT旨在解决BERT的局限性,因为BERT通常需要巨大的内存和计算资源,这使得它在许多研究和部署场景中难以实际应用。
架构与核心创新
ALBERT在架构上的主要变革是用因子化嵌入矩阵替代了BERT原有的1.08亿参数嵌入层。具体而言,ALBERT不再直接将词表映射到隐藏层维度,而是先将词表投影到一个较低维度的嵌入空间(例如128维),然后再投影到隐藏层维度(例如768维)。这种降维策略显著减少了参数数量,尤其是在隐藏层维度较大的模型中效果更为明显。
第二项创新是跨层参数共享,即Transformer编码器中的所有层(包括注意力层和前馈层)共享同一组参数。这意味着模型在每一层都重复使用相同的权重,从而大幅降低了内存占用。例如,ALBERT-base模型仅有约1200万参数,而BERT-base则有1.08亿参数;ALBERT-large仅有1800万参数,而BERT-large则有3.4亿参数。
这些技术使得ALBERT能够在不超出内存限制的情况下构建更深、更宽的模型架构。研究结果表明,ALBERT可以训练出高达1600万参数的大规模配置,并在多个基准测试中达到或超越BERT的性能。
训练与基准测试
ALBERT与BERT使用相同的训练数据,即英文维基百科和BookCorpus,并采用自监督学习目标,包括掩码语言建模和句子顺序预测。其中,句子顺序预测替代了BERT原有的下一句预测,这一改变有助于模型更好地处理跨句连贯性任务。
在GLUE基准测试中,ALBERT-xxlarge配置虽然仅使用了约2.23亿参数(其中独立参数仅约8000万),但其得分达到或超过了BERT-large。具体而言,ALBERT在MNLI、QQP和RTE等任务上的表现均优于BERT-large,例如在RTE任务上从82.5%提升至85.0%,在SQuAD 2.0上的F1分数达到91.0。在SQuAD 1.1和2.0上,ALBERT-xxlarge分别取得了93.1和90.0的F1分数,创下了当时的最优成绩。在CoQAd数据集上,ALBERT的得分为86.0,同样优于之前的模型。
效率与速度
尽管ALBERT在参数数量上大幅减少,但这并不总是直接转化为训练时间的缩短,因为共享参数意味着每一层仍需进行相同的计算量。然而,在分布式训练环境中,由于通信开销的降低和内存占用的减少,ALBERT可以支持更大的批次大小。研究作者报告称,采用12层参数共享的ALBERT模型训练速度约为BERT-large的1.7倍,同时内存占用减少了约80%。
性能评估与发现
研究还发现,移除下一句预测任务并在多个任务上使用句子顺序预测,能够提升模型性能,这证实了下一句预测对于下游语言理解任务并非必要。句子顺序预测通过判断两个句子是否来自同一文档,提供了更清晰的训练信号。
此外,研究指出,单纯增加层数或隐藏单元数量并不总能带来性能提升。例如,ALBERT的2046维隐藏层配置与4096维配置表现相当,这表明存在一个性能饱和点,进一步扩大模型规模可能不再带来显著收益。因此,ALBERT更倾向于增加网络深度而非宽度。
影响与应用
ALBERT已成为Transformer压缩和轻量级模型设计领域的重要参考模型。它在文本分类、问答和句子对任务中表现出色,尤其适用于内存或计算资源受限的场景。ALBERT的代码和预训练模型已在TensorFlow官方仓库中开源,并采用Apache 2.0许可证,便于研究和商业使用。其超参数选择(如批次大小2048、训练步数12.8万)也参考了先前的研究成果,并为小规模实验提供了调整建议。
ALBERT的多种规模版本(从base到xxlarge)为不同需求提供了灵活选择,并已被集成到Hugging Face Transformers等主流框架中。其设计理念与深度学习效率优化的整体趋势相契合,也影响了后续的模型压缩研究。
后续发展
ALBERT的贡献不仅限于模型本身,其参数共享和因子化嵌入思想被后续许多研究采纳。在生成式AI时代到来之前,ALBERT代表了预训练语言模型在效率优化方面的重要探索。尽管随着更大规模模型的出现,ALBERT的知名度有所下降,但其在特定任务和资源受限场景中仍具有实用价值。其架构设计思想也为后续的模型压缩、量化及低秩近似等技术提供了重要基础。