【技术追踪】Differential Transformer(ICLR-2025)

news2025/4/22 7:49:06

  Differential Transformer:大语言模型新架构, 提出了 differential attention mechanism,Transformer 又多了一个小 trick~


论文:Differential Transformer
代码:https://github.com/microsoft/unilm/tree/master/Diff-Transformer


0、摘要

  Transformer 倾向于过度分配注意力到无关的上下文。在这项工作中,本文引入了 DIFF Transformer,它放大了对相关上下文的注意力,同时消除了噪声。(大佬的表述总是那么简单朴素~

  具体来说,差分注意力机制(differential attention mechanism)将注意力分数计算为两个独立的 softmax 注意力图之间的差。减法可以消除噪声,促进稀疏注意力模式的出现。

  语言建模的实验结果表明,DIFF Transformer 在模型规模和训练 tokens 的各种设置中都优于 Transformer。更有趣的是,它在实际应用中提供了显著的优势,如长上下文建模、关键信息检索、幻觉缓解、上下文学习和激活异常值的减少。

  通过减少对无关上下文的干扰,DIFF Transformer 可以减轻问题回答和文本摘要中的幻觉。在上下文学习中,DIFF Transformer 不仅提高了准确率,还增强了对顺序排列的鲁棒性,这曾被认为是一个长期存在的稳定性问题。这些结果表明,DIFF Transformer 是一种非常有效且极具潜力的架构,能够推动大型语言模型的发展。(有种 ResNet 那种大道至简的感觉


1、引言

1.1、当前挑战

  (1)Transformer 的核心是注意力机制,它利用 Softmax 函数来衡量序列中各个 tokens 的重要性;
  (2)最近的研究表明,大语言模型在准确检索上下文中的关键信息方面面临挑战;
  (3)Transformer 倾向于只将一小部分注意力分数分配给正确答案,而过度关注无关的上下文(如 图1 所示);
  (4)分配在无关上下文上不可忽略的注意力分数,最终淹没了正确答案。本文将这些多余的分数称为注意力噪声。
  
Figure 1 | Transformer 经常过度关注无关的上下文:DIFF Transformer 强化了对答案片段的注意力,同时消除了噪声,从而提升了上下文建模的能力;

在这里插入图片描述

1.2、本文贡献

  (1)介绍了差分 Transformer(DIFF Transformer),这是一种大型语言模型的基础架构。差分注意力机制被提出用于通过差分去噪,消除注意力噪声;
  (2)与 Transformer 相比,DIFF Transformer 对正确答案的评分显著更高,而对无关上下文的评分则低得多, 图1右侧 显示,所提出的方法在检索能力方面取得了显著改进;
  (3)规模扩展曲线表明,DIFF Transformer 只需要大约 65% 的模型大小或训练 tokens 数量,就能达到与 Transformer 相当的语言建模性能,此外,DIFF Transformer 在各种下游任务中的表现也优于 Transformer;


2、Differential Transformer

  本文提出差分 Transformer(DIFF Transformer)作为序列建模的基础架构,例如大型语言模型(LLM)。本文以解码器模型为例来描述该架构,模型由 L L L 个 DIFF Transformer 层堆叠而成。

  给定输入序列 x = x 1 . . . , x N x = x_1..., x_N x=x1...,xN,将输入嵌入打包到 X 0 = [ x 1 , ⋅ ⋅ ⋅ , x N ] ∈ R N × d m o d e l X^0 = [x1,···,xN ]∈\mathbb{R}^{N×d_{model}} X0=[x1⋅⋅⋅xN]RN×dmodel 中,其中 d m o d e l d_{model} dmodel 表示隐藏维度。进一步对输入进行上下文化处理,以获得输出 X L X^L XL,即 X l = D e c o d e r ( X l − 1 ) , l ∈ [ 1 , L ] X^l =Decoder(X^{l−1}),l∈[1, L] Xl=Decoder(Xl1)l[1,L]。每一层由两个模块组成:一个差分注意力模块(differential attention module),随后是一个前馈网络模块(feed-forward network module)。

  与 Transformer 相比,主要区别在于用差分注意力(differential attention)替换了传统的 softmax 注意力,而宏观布局保持不变。本文还采用了 pre-RMSNorm 和 SwiGLU,作为 LLaMA 之后的改进。

2.1、Differential Attention

  差分注意力机制将查询向量、键向量和值向量映射到输出。利用查询向量和键向量来计算注意力分数,随后计算值向量的加权和。其关键设计在于,采用一对 Softmax 函数来消除注意力分数中的噪声。
  具体来说,给定输入 X ∈ R N × d m o d e l X \in \mathbb{R}^{N×d_{model}} XRN×dmodel,首先将它们投影到查询、键和值, Q 1 , Q 2 , K 1 , K 2 ∈ R N × d , V ∈ R N × 2 d Q_1,Q_2,K_1,K_2 \in \mathbb{R}^{N×d},V \in \mathbb{R}^{N×2d} Q1,Q2,K1,K2RN×dVRN×2d。然后,差分注意力算子 D i f f A t t n ( ⋅ ) DiffAttn(·) DiffAttn()通过以下方式计算输出:

在这里插入图片描述

  其中 W Q , W K , W V ∈ R d m o d e l × 2 d W^Q,W^K,W^V \in \mathbb{R}^{d_{model}×2d} WQ,WK,WVRdmodel×2d 为参数, λ \lambda λ 为可学习标量。为了同步学习动态,将标量 λ \lambda λ 重新参数化为:
在这里插入图片描述

  其中 λ q 1 , λ k 1 , λ q 2 , λ k 2 ∈ R d λ_{q1},λ_{k1},λ_{q2},λ_{k2} \in \mathbb{R}^d λq1,λk1,λq2,λk2Rd 是可学习向量, λ i n i t ∈ ( 0 , 1 ) λ_{init}∈(0,1) λinit(0,1) 是用于 λ \lambda λ 初始化的常数。本文通过实验发现 λ i n i t = 0.8 − 0.6 × e x p ( − 0.3 ⋅ ( l − 1 ) ) λ_{init} = 0.8−0.6×exp(−0.3·(l−1)) λinit=0.80.6×exp(0.3(l1)) 在实际应用中效果良好,其中, l ∈ [ 1 , L ] l∈[1,L] l[1,L] 表示层索引。在实验中,它被用作默认策略。本文还探索了使用相同的 λ i n i t λ_{init} λinit(例如 0.8)对所有层进行初始化,作为另一种初始化策略。如消融研究(第 3.8 节)所示,不同的初始化策的性能相对稳健。

  差分注意力机制通过计算两个 Softmax 注意力函数之间的差异来消除注意力噪声。这一思想类似于电气工程中提出的差分放大器,其中两个信号之间的差异被用作输出,从而可以抵消输入的共模噪声。Naderi 等人也证明了差分注意力机制可以使注意力矩阵的谱分布更加均衡,从而有效地解决了秩坍塌问题。此外,降噪耳机的设计也是基于类似的思想。正如附录 A 所描述的,可以直接使用 FlashAttention,这显著提高了模型的效率。
  
Figure 2 | 多头差分注意力:每个头使用两个 Softmax 图之间的差异来消除注意力噪声。 λ \lambda λ 是一个可学习的标量,初始化为 λ i n i t λ_{init} λinit。GroupNorm 对每个头独立应用归一化。在 GroupNorm 后使用一个固定的乘数 ( 1 − λ i n i t ) (1-λ_{init}) (1λinit),以使梯度流动与 Transformer 对齐;

在这里插入图片描述

Multi-Head Differential Attention

  在 Differential Transformer 中也使用了多头机制,设 h h h 表示注意力头的数量。使用不同的投影矩阵 W i Q , W i K , W i V , i ∈ [ 1 , h ] W_i^Q, W_i^K, W_i^V, i∈[1,h] WiQ,WiK,WiV,i[1,h] 用于不同 head。标量 λ \lambda λ 在同层的 head 之间共享。然后 head 输出被归一化并投影到最终结果,如下所示:

在这里插入图片描述

  其中 λ i n i t λ_{init} λinit 是公式 (2) 中的常数标量, W O ∈ R d m o d e l × d m o d e l W^O∈R^{d_{model}×d_{model}} WORdmodel×dmodel 是一个可学习的投影矩阵, L N ( ⋅ ) LN(·) LN() 对每个头使用 RMSNorm, C o n c a t ( ⋅ ) Concat(·) Concat() 沿着通道维度将头连接在一起。

  本文使用一个固定的乘数 ( 1 − λ i n i t ) (1-λ_{init}) (1λinit) 作为 L N ( ⋅ ) LN(·) LN() 的尺度,使梯度与 Transformer 保持一致。附录 G 证明了整体梯度流与 Transformer 保持相似。这一优良特性使我们能够直接继承类似的超参数,并确保训练的稳定性。本文设头的数量为 h = d m o d e l / 2 d h = d_{model}/2d h=dmodel/2d,其中 d d d 等于 Transformer 的头维度,这样就可以对齐参数数量和计算复杂度。

Headwise Normalization

   图 2 使用了 G r o u p N o r m ( ⋅ ) GroupNorm(·) GroupNorm() 来强调 L N ( ⋅ ) LN(·) LN() 是独立应用于每个头的。由于差分注意力倾向于产生更稀疏的模式,因此不同头之间的统计信息更加多样化。 L N ( ⋅ ) LN(·) LN() 操作符在拼接之前对每个头进行归一化,以改善梯度统计信息。

2.2、总体结构

   整体架构由 L L L 层组成,每层包含一个多头差分注意力模块和一个前馈网络模块。本文将 Differential Transformer 层描述为:
在这里插入图片描述
  其中 L N ( ⋅ ) LN(·) LN() 是 RMSNorm, S w i G L U ( X ) = ( s w i s h ( X W G ) ⊙ X W 1 ) W 2 SwiGLU(X) =(swish(XW^G)⊙XW_1)W_2 SwiGLU(X)=(swish(XWG)XW1)W2 W G , W 1 ∈ R d m o d e l × 8 3 d m o d e l , W 2 ∈ R 8 3 d m o d e l × d m o d e l W^G, W_1∈\mathbb{R}^{d_{model}×\frac{8}{3} d_{model}}, W_2∈\mathbb{R}^{\frac{8}{3}d_{model}×d_{model}} WG,W1Rdmodel×38dmodel,W2R38dmodel×dmodel 是可学习矩阵。


3、实验与结果

  本文从以下几方面对用于大型语言模型的 Differential Transformer 进行了评估。首先,在各种下游任务中将所提出的架构与 Transformer 进行比较(第3.1节),并研究扩大模型规模和训练标记数量的特性(第3.2节)。其次,将序列长度扩展至 64K,并评估其长序列建模能力(第3.3节)。第三,展示了关键信息检索、上下文幻觉评估以及上下文学习的结果(第3.4至3.6节)。第四,我们表明本文认为,与 Transformer 相比,Differential Transformer 能够减少模型激活中的异常值(第3.7节)。最后,本文针对各种设计选择进行了广泛的消融研究(第3.8节)。

3.1、语言模型评估

  
Table 1 | :使用 Eval Harness 来比较经过良好训练的 Transformer 语言模型的准确率。我们将 3B 模型的训练标记数量扩展到 1 万亿。StableLM-3B-4E1T 的 1T 结果取自其技术报告;

在这里插入图片描述

3.2、与 Transformer 相比的可扩展性

  
Figure 3 | 扩大参数数量和训练标记数量时的语言建模损失:DIFF Transformer 只需大约 65% 的模型规模或训练标记数量,就能达到与 Transformer 相当的性能;
在这里插入图片描述

3.3、长语境评估

  
Figure 4 | 在图书数据上的累积平均负对数似然(越低越好):DIFF Transformer 更有效地利用了长文本上下文;

在这里插入图片描述

3.4、关键信息检索

  
Table 2 | 在 4K 长度下的多针检索准确率,结果对答案针的位置进行了平均: N N N 表示针的数量,而 R R R 表示查询城市的数量;
在这里插入图片描述

  
Figure 5 | 在 64K 长度下的多针检索结果:

在这里插入图片描述

  
Table 3 | 在关键信息检索任务中,分配给答案片段和噪声上下文的注意力分数:目标答案被插入到上下文的不同位置(即深度),DIFF Transformer 更多地将注意力分数分配给有用的信息,并有效地消除了注意力噪声;

在这里插入图片描述

3.5、情境学习

  从两个角度对情境学习进行评估,包括多镜头分类(many-shot classification)和情境学习(in-context learning)的鲁棒性。情境学习是语言模型的基本能力,表明模型利用输入情境的能力。
  
Figure 6 | 在四个数据集上的 Many-shot in-context learning 准确率:演示示例从单镜头(1-shot)开始,逐渐增加,直到总长度达到 64K 个标记,虚线表示在性能稳定后达到的平均准确率;
在这里插入图片描述

  
Figure 7 | 在 TREC 数据集上对上下文学习的鲁棒性进行评估:通过改变演示示例的顺序(使用不同的随机种子)来评估准确率,虚线表示最佳结果与最差结果之间的差距,较小的差距表明更强的鲁棒性,评估了两种提示格式;

在这里插入图片描述

3.6、上下文幻觉评估

  
Table 4 | 在文本摘要和问答任务中对上下文幻觉现象的评估:准确率越高,表明幻觉现象越少,本文遵循 Chuang 等人的方法,使用 GPT-4o 进行二元判断,这种方法与人工标注的结果有较高的契合度;
在这里插入图片描述

3.7、异常值分析

  
Table 5 | 注意力分数和隐藏状态的最大激活值:Top 激活值被视为激活异常值,因为它们的数值显著高于中位数,与 Transformer 相比,DIFF Transformer 减少了异常值;

在这里插入图片描述
  
Figure 7 | HellaSwag 数据集上的 Zero-shot 准确率:本文将注意力 logit 从 16 位(即未量化)量化为 8 位、6 位和 4 位;
在这里插入图片描述

3.8、消融实验

  
Figure 8 | 1.4B-size 模型的消融研究:在验证集上报告语言建模的损失,还遵循 Arora 等的方法,报告细粒度指标,其中 “AR-Hit” 用于评估在上下文中之前见过的 n-grams,“#Heads” 表示头的数量。“d” 是头的维度。“GN” 表示是否使用了组归一化;
在这里插入图片描述


  试试? ٩(๑•̀ω•́๑)۶

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2339946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux网络】应用层自定义协议与序列化

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343 🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12891150.html 目录 应用层 再谈 "协议" 网络版计算器 序列化 和 反序列化 重新理解…

Vue接口平台学习十——接口用例页面2

效果图及简单说明 左边选择用例,右侧就显示该用例的详细信息。 使用el-collapse折叠组件,将请求到的用例详情数据展示到页面中。 所有数据内容,绑定到caseData中 // 页面绑定的用例编辑数据 const caseData reactive({title: "",…

目标检测中的损失函数(二) | BIoU RIoU α-IoU

BIoU来自发表在2018年CVPR上的文章:《Improving Object Localization With Fitness NMS and Bounded IoU Loss》 论文针对现有目标检测方法只关注“足够好”的定位,而非“最优”的框,提出了一种考虑定位质量的NMS策略和BIoU loss。 这里不赘…

Linux 入门十一:Linux 网络编程

一、概述 1. 网络编程基础 网络编程是通过网络应用编程接口(API)编写程序,实现不同主机上进程间的信息交互。它解决的核心问题是:如何让不同主机上的程序进行通信。 2. 网络模型:从 OSI 到 TCP/IP OSI 七层模型&…

沐渥氮气柜控制板温湿度氧含量氮气流量四显智控系统

氮气柜控制板通常用于实时监控和调节柜内环境参数,确保存储物品如电子元件、精密仪器、化学品等,处于低氧、干燥的稳定状态。以下是沐渥氮气柜控制板核心参数的详细介绍及控制逻辑: 一、控制板核心参数显示模块 1)‌温度显示‌&am…

[c语言日寄]免费文档生成器——Doxygen在c语言程序中的使用

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…

QtCreator的设计器、预览功能能看到程序图标,编译运行后图标消失

重新更换虚拟机(Vmware Kylin),重新编译和配置了很多第三方库后,将代码跑到新的这个虚拟机环境中,但是出现程序图标不可见,占位也消失,后来继续检查ui文件,ui文件图标也异常&#x…

面试常用基础算法

目录 快速排序归并排序堆排序 n n n皇后问题最大和子数组爬楼梯中心扩展法求最长回文子序列分割回文串动态规划求最长回文子序列最长回文子串单调栈双指针算法修改 分割回文串滑动窗口栈 快速排序 #include <iostream> #include <algorithm>using namespace std;…

悬空引用和之道、之禅-《分析模式》漫谈57

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 “Analysis Patterns”的第5章“对象引用”原文&#xff1a; Unless you can catch all such references, there is the risk of a dangling reference, which often has painful con…

【初阶数据结构】树——二叉树(上)

文章目录 目录 前言 一、树 1.树的概念与结构 2.树相关术语 3.树的表示 二、二叉树 1.概念与结构 2.特殊的二叉树 3.二叉树存储结构 总结 前言 本篇带大家学习一种非线性数据结构——树&#xff0c;简单认识树和二叉数以及了解二叉树的存储结构。 一、树 1.树的概念与结构 树…

ECharts散点图-散点图14,附视频讲解与代码下载

引言&#xff1a; ECharts散点图是一种常见的数据可视化图表类型&#xff0c;它通过在二维坐标系或其它坐标系中绘制散乱的点来展示数据之间的关系。本文将详细介绍如何使用ECharts库实现一个散点图&#xff0c;包括图表效果预览、视频讲解及代码下载&#xff0c;让你轻松掌握…

GAIA-2:用于自动驾驶的可控多视图生成世界模型

25年3月来自英国创业公司 Wayze 的论文“GAIA-2: A Controllable Multi-View Generative World Model for Autonomous Driving”。&#xff08;注&#xff1a;23年9月其发布GAIA-1&#xff09; 生成模型为模拟复杂环境提供一种可扩展且灵活的范例&#xff0c;但目前的方法不足…

浅谈AI致幻

文章目录 当前形势下存在的AI幻觉&#xff08;AI致幻&#xff09;什么是AI幻觉AI幻觉的类型为什么AI会产生幻觉AI幻觉的危害与影响当前应对AI幻觉的技术与方法行业与学术界的最新进展未来挑战与展望结论 当前形势下存在的AI幻觉&#xff08;AI致幻&#xff09; 什么是AI幻觉 …

车载软件架构 --- 二级boot设计说明需求规范

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…

Java高效合并Excel报表实战:GcExcel让数据处理更简单

前言&#xff1a;为什么需要自动化合并Excel&#xff1f; 在日常办公场景中&#xff0c;Excel报表合并是数据分析的基础操作。根据2023年企业办公效率报告显示&#xff1a; 财务人员平均每周花费6.2小时在Excel合并操作上人工合并的错误率高达15%90%的中大型企业已采用自动化…

第十四届蓝桥杯 2023 C/C++组 平方差

目录 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 思路&#xff1a; 核心思路&#xff1a; 第一种思路&#xff1a; 第二种思路&#xff1a; 坑点&#xff1a; 代码&#xff1a; 数学找规律 O(n) 50分代码详解&#xff1a; O(1)满分代码详解&#x…

I/O复用函数的使用——select

I/O复用函数的使用——select 目录 一、概念 二、select接口 2.1 基础概念 2.2 使用 select 函数的标准输入读取代码 2.3 基于 select 模型的多客户端 TCP 服务器实现 一、概念 i/o复用使得程序能同时监听多个文件描述符&#xff0c;可以提高程序性能。 之前为了让服务器能…

图像预处理-图像轮廓特征查找

其实就是外接轮廓&#xff0c;有了轮廓点就可以找到最上、最下、最左、最右的四个坐标&#xff08;因为有xmin,xmax,ymin,ymax&#xff09;。就可以绘制出矩形。 一.外接矩形 cv.boundingRect(轮廓点) - 返回x,y,w,h&#xff0c;传入一个轮廓的轮廓点&#xff0c;若有多个轮廓需…

全同态加密医疗数据分析集python实现

目录 摘要一、前言二、全同态加密与医疗数据分析概述2.1 全同态加密(FHE)简介2.2 医疗数据分析需求三、数据生成与预处理四、系统架构与流程4.1 系统架构图五、核心数学公式六、异步任务调度与(可选)GPU 加速七、PyQt6 GUI 设计八、完整代码实现九、自查测试与总结十、展望…

list的学习

list的介绍 list文档的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指针指向其前一个元素和后一…