随着近些年来NLP领域研究的不断深入,我们逐渐发现,Transformer架构中出现的幻觉问题,以及各种下游任务中的性能不足,都或多或少与注意力缺陷有关。
虽然上下文窗口可以扩展,但是Transformer还是无法真正关注到有价值的信息。
最近,微软研究院和清华大学的研究人员共同提出了一种新的模型架构——Differential Transformer,不仅保留了原始Transformer中的可扩展性,也能让模型更加关注上下文中与任务相关的关键信息。
实验表明,注意力机制的改进,不仅显著提升了检索精度,还能缓解LLM的幻觉。
论文地址:https://arxiv.org/abs/2410.05258
Transformer的困境
众所周知,Transformer的核心是注意力机制,采用softmax函数来衡量序列中各种标记的重要性。然而,最近的研究表明,LLM难以从上下文中准确到检索关键信息。
比如去年斯坦福Percy Liang团队的一篇论文就指出,虽然语言模型能够接受较长的上下文作为输入,但并不能稳健地利用长输入上下文中的信息。
论文地址:https://arxiv.org/abs/2307.03172
比如,实验中发现,仅仅改变关键信息在文档中的出现位置,就可以造成GPT-3.5 Turbo检索性能的大范围波动。
此外,本篇论文的实验结果证明,Transformer经常过度关注不相关的上下文,本文将其称之为「注意力噪声」。
如图1(左)所示,模型分配给正确答案的注意力分数很低,同时不成比例地关注不相关的上下文,这意味着信噪比很低,最终淹没了正确答案。
由此看来,我们对于LLM检索、利用长上下文的过程,知之甚少,其注意力过程也需要更多的改进。
本文所提出的Differential Transformer(DIFF Transformer)正是希望用「差分注意力」(differential attention)机制消除注意力噪声,促使模型关注上下文中的关键信息。
图1的对比结果可以看出,DIFF Transformer给出的注意力分数的分布明显不同于传统Transformer架构,给予关键信息更高的注意力分数,进而显著提升了检索能力。
这种能力的提升,对于有效利用LLM的长上下文窗口、缓解幻觉、关键信息检索等方面都有重要的意义。
模型架构
DIFF Transformer也可以用于纯Encoder或Encoder-Decoder模型,但本篇论文以纯Decoder模型为例进行描述。
整个模型由L个DIFF Transformer层堆叠而成,每层由一个差分注意力模块和前馈网络模块连接形成。
宏观布局类似于传统Transformer架构,但主要区别在于修改了注意力的softmax过程,并且采用了pre-RMSNorm、SwiGLU等改进。
差分注意力
该模块的结构示意图和伪代码如图2所示,具体的代码实现可参考项目GitHub。
代码地址:https://github.com/microsoft/unilm/tree/master/Diff-Transformer
除了传统注意力中的权重矩阵W^Q、W^K、W^V ∈ ℝ^{d_model×2d},模块中还加入了可学习标量λ。
具体来说,给定输入序列X ∈ ℝ^{N×d_model},首先将其投影为Q、K、V矩阵Q_1,Q_2,K_1,K_2 ∈ ℝ^{N×d} , V ∈ ℝ^{N×2d},然后是差分注意力算子DiffAttn(·)通过公式(1)计算输出:
λ被初始化为常量λ_{init} ∈ (0,1),并依照公式(2)与其他权重参数同步更新:
其中,λ_𝐪𝟏 , λ_𝐤𝟏 , λ_𝐪𝟐 , λ_𝐤𝟐 ∈ ℝ^d也都是是可学习向量。
之所以命名为「差分注意力」,是指两个softmax函数间的差异可以消除注意力噪音。
这个想法类似于电气工程中提出的差分放大器(differential amplifiler),将两个信号之间的差异作为输出,从而消除输入中的共模噪声;降噪耳机的设计也是基于类似的思路。
DIFF Transformer中也可以使用多头注意力机制,在同一层的多个head间共享参数λ,将每个head的输出进行归一化处理后再拼接、投影,就得到了最终输出,如公式(3)所示。
公式(3)中的LN(·)是指对每个头使用RMSNorm,但如图2(左)所示,也可以使用GroupNorm。
加上前馈网络模块,每个DIFF Transformer层就可以描述为:
实验
下游任务
首先,研究人员在1T token上训练3B大小的DIFF Transformer模型,并在各种下游任务上与之前有竞争力的Transformer架构模型进行比较,结果如表1所示。
基线模型大小都为3B,其中,StableLM-3B-4E1T的1T结果取自技术报告,而OpenLLaMA-v2-3B和StableLM-base-alpha-3B-v2同样使用1T数据训练,表中分数为Eval Harness基准测试上的零样本准确率。
结果显示,与之前经过精心调优的Transformer语言模型相比,DIFF Transformer取得了良好的性能。
尤其是对于长上下文任务,如图4所示,随着上下文长度不断增加,累计平均的负对数似然值(NLL)持续降低,说明Diff Transformer可以更有效地利用不断增加的上下文。
关键信息检索
「大海捞针」(Needle-In-A-Haystack)测试被广泛用于评估LLM提取长上下文中的关键信息的能力。
本文的实验遵循LWM和Gemini 1.5的「多针」评估方案,在不同长度的上下文中,N根针被插入不同的深度。每根「针」都由一个简洁的句子组成,为特定城市分配一个独特的魔法数字。
答案针被放置在上下文中的5个不同深度:0%、25%、50%、75%和100%,同时随机放置其他分散注意力的针。待测LLM的目标,就是是检索与查询城市相对应的数字。
4k上下文检索的可结果如表2所示。虽然两种模型在N=1或N=2时都取得了良好的准确率,但随着N的增加,DIFF Transformer的性能保持相对一致,Transformer则显著下降。
将上下文长度扩展至64k时,差距就更加明显,尤其是关键信息位于前半部分时(即0%、25% 和 50%深度)。
特别是,将针放置在25%深度时,DIFF Transformer相对于传统Transformer实现了76%的精度提升。
除了检索精度,表3进一步分析了两种模型为上下文分配的注意力分数。可以看出, DIFF Transformer的确将更多的注意力分配给了有用的信息,并有效地消除注意力噪声。
值得注意的是,DIFF Transformer在提升检索精度的同时也缓解了幻觉现象。
实验包含模型在总结(图4a)和问答(图4b)两种任务上的幻觉评估。可以发现,与Transformer相比,DIFF Transformer的上下文幻觉明显减轻。
这种性能的提高可能源于,改进后的注意力模块能更好第关注任务所需信息,而非不相关的上下文。
这与之前研究中的观察结果一致,即Transformer出现上下文幻觉的一个主要原因是注意力分数的错误分配。
缩放特性
除了下游任务性能,论文还进行了缩放特性的对比。
扩展模型规模
如图3a所示,分别使用830M、1.4B、2.8B、6.8B和13.1B参数训练语言模型,发现DIFF Transformer依旧遵循Scaling Law。
根据拟合曲线,68亿参数规模的DIFF Transformer达到了与110亿参数规模Transformer相当的验证损失,但仅需62.2%的参数。
同样,78亿参数的DIFF Transformer匹配了131亿参数的Transformer的性能,参数量是后者的59.5%。
扩展训练Token
如图3b所示,训练数据的缩放也遵循类似规律,且拟合曲线表明,使用160B token训练的DIFF Transformer达到了与使用251B token训练的Transformer相当的性能,但仅消耗了63.7%的训练数据。
此外,在HellaSwag上的测试结果还可以发现,Diff Transformer对量化和位宽的稳健性显著高于Transformer。
技术交流群邀请函
我们建立了一个CV/NLP/搜索推荐/大模型技术交流群!专门分享最新资讯、行业趋势和有趣想法。
如果你想抓住这次AI变革的红利,欢迎扫码进群,群里聚集了很多学术界和工业界大佬,日常还可以唠嗑~
你好,我是对白,硕士毕业于清华,大厂算法工程师,拿过8家大厂算法岗SSP offer
创业做过无人机、机器人和互联网+教育,保研清华后开始系统接触AI。
我每周至少更新一篇原创,分享AI算法、技术干货和职场感悟。下方关注可加我私信交流,点击蓝字查看我的算法学习之路。
您的“点赞/在看/分享”是我坚持最大动力
坚持不易,卖萌打滚求鼓励 (ฅ>ω<*ฅ)
分享
收藏
点赞
在看