详解微软 ALUM:当语言模型遇到对抗训练
The following article is from NewBeeNLP Author 山竹小果
论文:Adversarial Training for Large Neural LangUage Models
源码:https://github.com/namisan/mt-dnn
TL;DR
方法:ALUM(大型神经语言模型的对抗性训练)
实现:在embedding space添加扰动,最大化对抗损失
应用:任何基于Transformer的语言模型的预训练或微调
预备知识
BPE编码
流程:
1.确定subword词表大小
2.统计每一个连续字节对的出现频率,并保存为code_file。这个是git中learn-bpe完成
3.将单词拆分为字符序列并在末尾添加后缀“ ”,而后按照code_file合并新的subword,首先合并频率出现最高的字节对。例如单词birthday,分割为['b', 'i', 'r', 't', 'h', 'd', 'a', 'y'],查code_file,发现'th'出现的最多,那么合并为['b', 'i', 'r', 'th', 'd', 'a', 'y'],最后,字符序列合并为['birth', 'day']。然后去除'',变为['birth', 'day'],将这两个词添加到词表。这个是apply-bpe完成。
4.重复第3步直到达到第2步设定的subword词表大小或下一个最高频的字节对出现频率为1
模型:ALUM
基于几个关键想法:
扰动embedding空间,优于直接对输入文本应用扰动。
通过虚拟对抗训练为标准目标添加正则化项。
文中观点:
算法
泛化与鲁棒性
什么是流形
实验
提升泛化能力
BERT BASE是使用与Devlin等人相同的设置训练的标准BERT base模型。(即1M步,batch size = 256)。
BERT+BASE与BERT BASE相似,不同之处在于其训练步数为1.6M,与对抗预训练所需时间大致相同(ALUM BERT-BASE)。
ALUM BERT-BASE是一个BERT模型,使用与BERT BASE相同的设置进行训练,但最后的500K步骤使用ALUM。每一个对抗训练步骤大约比标准训练步骤长1.5倍。
提升鲁棒性
结合对抗预训练和对抗微调
结论
进一步研究对抗性预训练在提高泛化和鲁棒性方面的作用;
对抗性训练加速;
将ALUM应用于其他领域。
更多精彩推荐
☞苹果正式发布自研 M1 处理器;神州数码回应:未与华为就荣耀出售达成任何协议;Ant Design 4.8.1发布|极客头条☞一文教你如何在生产环境中在Kubernetes上部署Jaeger