Transformer自问世后就大放异彩,但有个小毛病一直没解决:总爱把注意力放在不相关的内容上,也就是信噪比低。微软亚研院、清华团队提出全新改进版 Differential Transformer,专治这个老毛病,引起热议。
论文:https://arxiv.org/abs/2410.05258
代码:https://aka.ms/Diff-Transformer
论文中介绍,整体思路类似差分放大电路或降噪耳机,用两个信号的差值来滤除共模噪声。具体到在语言模型中,如果句子很长,只有少数token会真正影响当前token的含义。而注意力机制允许每两个词之间产生交互,其中就包含大量噪声了。团队提出的方法是在注意力层中增加一个Softmax,然后两个Softmax做减法。这一减,噪音信息就被大幅抵消,让注意力更集中在相关内容上。语言建模任务上的一系列实验结果显示,仅需约65%的模型大小或训练tokens,DIFF Transformer就能达到与传统Transformer相当的性能。新架构在长上下文建模、关键信息检索、减少幻觉、提高上下文学习能力以及减少激活异常值等各项指标中,普遍优于Transformer架构。论文上传到arXiv平台后,有不少学者到弹幕版alphaXiv划线提问。一作Tianzhu Ye正绝赞在线答疑中。
差分Transformer
与传统Tranformer相比,DIFF Transformer保持宏观架构不变,主要区别在于用差分注意力替换传统softmax注意力。此外还采用了LLaMA系列中的一些改进,如pre-RMSNorm归一化和SwiGLU激活函数。在差分注意力模块中,需要先给Q和K分成两个组,然后分别计算softmax。第二组乘了一个标量λ,是可学习的参数,在同一层的注意力头之间共享。λ的引入是为了在差分操作中平衡两组注意力的贡献,使得差分注意力机制能够更好地适应不同的任务需求和数据分布。
语言建模评估
在1T tokens上训练3B大小的DIFF Transformer,遵循 StableLM-3B-4E1T的配方,在各种下游任务中与以前训练良好的Transformer模型相比表现出优势。
可扩展性评估
只需约65%的模型参数或训练tokens来匹配Transformer的性能。长上下文能力评估
在额外1.5B tokens上训练3B大小的DIFF Transformer,扩展上下文长度至64k。随着上下文长度增加,累计平均负对数似然(NLL)持续降低,并且比传统Transformer的NLL值更低。表明DIFF Transformer可以有效利用不断增加的上下文。关键信息检索能力评估
也就是多个“针”的大海捞针试验,设置不同的上下文长度(4K和64K)来模拟不同复杂程度的信息检索场景。在4K上下文长度下,随着插入 “针” 数量和查询数量的增加,DIFF Transformer的准确率保持稳定,而Transformer 的准确率显著下降。
在64K上下文长度下,DIFF Transformer在不同答案针深度(即关键信息在长上下文中的位置)和上下文长度下都能保持稳定性能,且在关键信息位于上下文前半部分时优势明显。特别是当关键信息位于25%深度时,DIFF Transformer比Transformer的准确率提高了 76%。上下文学习能力评估
分为两个角度来评估,分别是多样本分类和上下文学习的稳健性。多样本分类任务,同样使用64K上下文长度的3B参数模型,DIFF Transformer的准确率始终高于Transformer,提升幅度从5.2%到21.6%不等上下文学习稳健性采用排列顺序任务,DIFF Transformer的结果方差远小于传统Transformer。
上下文幻觉评估
主要关注输入中包含正确事实,但模型仍然无法产生准确输出的情况。将模型输出与ground-truth一起发给GPT-4o,让GPT-4o来判断是否存在幻觉,此前试验表明GPT-4o与人类评判结果一致率较高,相对可靠。在不同数据集上DIFF Transformer的准确率更高,幻觉更少。
激活异常值分析
Transformer中的激活异常值,导致模型在训练和推理过程中难以量化。试验比较了注意力logits和隐藏状态两种激活类型下的最大激活值,DIFF Transformer都表现出更低的顶部激活值,即产生更少的激活异常值。在对注意力logits进行量化实验时,DIFF Transformer在降低比特宽度量化时仍能保持较高性能,而Transformer在6-bi 量化时准确性显著下降。4-bit的DIFF Transformer能达到与6-bit的Transformer相当的准确性,且比4-bit的Transformer准确率提高约 25%。代码已开源, 降噪耳机类比引热议
对于目前读者的疑问,作者已做出几点答复问题1:Diff Transformer与每个注意力头温度可学习的方法有什么不同?与门控注意力对比如何?作者回应在实验中,可学习温度效果不大。而本文方法是门控注意力的改进。
问题2:差分注意力是否意味着将标准注意力矩阵参数翻倍?作者澄清,单个注意力头维度翻倍,但是注意力头数量减半,总体在参数和FLOPS上都是对齐的。问题3:第二组Softmax乘可学习参数lambda的研究思路。DIFF Transformer在纯学术圈之外也引起非常多的讨论,有不少人困惑论文中将方法与降噪耳机的类比。降噪耳机采集环境噪声并生成相反的信号,在这种情况下哪些信号属于噪声是已知的,但差分注意力中并不能事先确定哪些是噪声。一种解释是,低注意力分数的噪声也有很低的梯度,因此模型其实已知哪些是噪声,只是单个Softmax无法输出0,所以噪声很难去除。也有人提出,比起降噪耳机,其实专业音频中“平衡线”,或者USB、网卡等传输方式更适合一些。使用两条信号线传输正负信号,接收器只对比他们之间的差异,由于在空间中离得很近,受到的干扰是相同的。有用的正负信号相减会被放大,相同的噪声相减却被抵消,大大增强抗干扰能力。总之,DIFF Transformer代码已开源在微软unilm项目下,其中还包含魔改版支持差分注意力的FlashAttention-2的代码。
[1]https://news.ycombinator.com/item?id=41776324