ALBERT:更少参数量的预训练语言模型

举报
EnernityTwinkle 发表于 2021/08/11 11:29:11 2021/08/11
【摘要】 ALBERT是在BERT基础上改进的一种预训练语言模型,它通过词向量矩阵分解和不同层的参数共享两种策略有效减少了模型的参数量,不仅如此,它以相对较少的参数量实现了更好的模型结果。

相比于BERT模型,ALBERT主要做了两项改进,一是减少了模型参数量,而是提出了更有效的句子对顺序预测任务。

减少模型参数的策略

词向量矩阵分解

传统的词向量矩阵大小为 V × H V \times H ,其中 V V 是词典大小, H H 是模型隐状态大小。为了降低词向量的参数量,ALBERT将词向量矩阵拆分为两个小矩阵 V × E V \times E E × H E \times H ,其中 H > > E H>>E 。通过这种策略有效减少了词向量参数。

跨层参数共享

原始BERT由多层transformer的encoder构建而成,为了减少参数量,ALBERT使不同层共享同一份参数,主要包括前向神经网络层(feed-forward network, FFN)和注意力参数。
ALBERT的参数量与BERT参数量的比较:
image.png
不同策略参数共享的性能差异
image.png

句子对次序预测任务(SOP)

原始BERT中采用下一句子预测(NSP)任务来建模句子对之间的信息,希望在下游相关句子对任务中有更好的表现。ALBERT将NSP任务替换为相对更困难的SOP任务,即预测两个句子的顺序是否正确。其中,正例数据是来源于相同文档中的两个句子,而负例数据是交换位置后的两个句子。
SOP和NSP两者的比较
image.png

总结

ALBERT xxlarge以更少的参数量实现了更好的结果,这是ALBERT的主要优势。但从训练速度上来看,其相比于BERT却慢了三倍,这说明减少参数量不一定会加速模型的训练速度。从ALBERT的改进策略来看,我们可以得出以下简单的结论:增大模型结构、引入更复杂的预训练任务是提升模型的性能有效手段。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。