2026/5/21 19:56:14
网站建设
项目流程
建宁建设局网站,dedecms建站教程,成都seo技术,建设工程合同主体有哪些青稞社区#xff1a;https://qingkeai.online 原文#xff1a;https://mp.weixin.qq.com/s/RdL9HwbhSyGJ_BGaT42lQA 作者#xff1a;唐瀚霖#xff0c;阿里巴巴高级技术专家#xff0c;开源推理引擎RTP-LLM的核心作者之一#xff0c;研究方向为LLM和AIGC的高倍压缩和推理…青稞社区https://qingkeai.online原文https://mp.weixin.qq.com/s/RdL9HwbhSyGJ_BGaT42lQA作者唐瀚霖阿里巴巴高级技术专家开源推理引擎RTP-LLM的核心作者之一研究方向为LLM和AIGC的高倍压缩和推理加速方案曾参与DoubleSqueeze, 1bit-Adam, RazorAttention等工作。团队介绍RTP-LLM是阿里巴巴智能引擎团队自研的高性能大模型推理引擎支持了淘宝、天猫、高德等业务的大模型推理需求。智能引擎源自阿里巴巴搜索、推荐和广告技术是阿里AI工程领域的先行者和深耕者。团队专注于AI工程系统的建设主导建立了大数据AI工程体系AI·OS持续为阿里集团各业务提供高质量的AI工程服务。RTP-LLM 项目已开源欢迎交流共建https://github.com/alibaba/rtp-llmLLM中的离群值是当前大模型量化的最主要挑战然而其本身的存在价值却很少被人讨论。本文从Transformers的核心Attention机制的角度出发揭示了当前LLM涌现异常值和带有RoPE位置编码的Attention之间的内部联系为新型模型架构设计提供了一个简洁易懂的视角和思路。离群值大语言模型LLM量化的主要挑战量化是一种广泛采用的推理加速方法。其核心思想是将浮点数映射到低维空间这里是舍入算子。通常对于 k 位整数量化我们会设置。通常我们还会设置这意味着我们需要将 x 中的所有数字归一化到区间内。然而LLM内部存在大量离群值在激活中分步尤其显著见图1这给大模型量化带来了很大的挑战。图1Llama-13B的激活值中存在大量显著离群值图2量化scale难以选取这里最棘手的部分是如何设置这个 scale。如图所示这里存在一个两难的问题1、 直接设置会造成量化粒度太粗导致绝大部分数字很难被精确的表示2、 剔除掉离群值设置这可以保证绝大部分数字都被更精确的表示但是离群值全部被压缩到了一个很小的数字。从原理上来看通过牺牲1%的数值表示精度来是的剩下99%的数能够被更精准的表达听上去是一件很自然的设计。然而出乎意料的是这些离群值对于LLM至关重要许多先前的研究发现直接裁剪这部分离群值会导致 LLM 性能出现灾难性的下降如图3。图3直接强行将离群值置0会完全破坏LLM精度因此几乎所有关于 LLM 量化的工作都在寻找更好的方法来减少这些离群值或者降低这些离群值的影响。但在本文我们关注一个更本质的问题为什么 LLM 会出现这些离群值以及它们为什么如此重要。离群值带来的线索前人的工作注意到离群值具有以下特征1.特别大的离群值只存在于前几个 token 中2.离群值的存在本身很重要而不是它们的量级。将一个离群值从几乎没有影响但将其从则会极大地破坏 LLM 的性能。非常巧合的是特质1和LLM的另外一个重要特性attention sink高度重合。更具体的很多工作指出LLM 的前几个 token 起到了“注意力汇点”的作用即这些token往往会被大量token倾注很高的注意力权重而移除这些汇点同样会破坏 LLM 的性能。这就启发我们试图从attention sink的角度来研究离群值。Attention Sink注意力机制中的“空操作”Non-op在 StreamingLLM[1]中作者注意到原始的滑动窗口注意力SWA会导致 LLM 胡言乱语。一个简单的修复方法是在计算中包含注意力汇点即最开始的几个 token。其背后的核心直觉是作者发现在某些注意力头中大多数 token 会将大部分注意力权重分配给汇点 token见图4。图4Llama2-7B中多数tokens会将主要注意力权重分配给首token那么为什么我们需要这种奇怪的汇点 token 呢StreamingLLM的作者注意到这些汇点在注意力机制中充当了“空操作”。更具体地说作者发现这些汇点的Value 值几乎为零这意味着注意力输出 表示从 token i 到 j 的注意力权重也基会趋向为0换而言之当输出消失时该注意力头对 token i 而言就不发挥作用。这对 LLM 来说是一个非常关键的机制因为之前的研究已经揭示了某些注意力头可能仅用于特定的关系提取。当不存在这种关系时该注意力头自然就不应生效。离群值对注意力汇点至关重要一个有趣的实验是如果我们将汇点 token 的离群值设置为正常值比如从注意力汇点现象就会消失下图是一个例证。但这是为什么呢如何构建注意力汇点无RoPE想象你是一个 LLM 模型现在你需要找到一种方法来开发这种汇点机制。在不考虑 RoPE 的情况下我们有如果对于大多数都非常大这基本上意味着会将 token 投影到一个与其自身正交但与汇点 token 平行的低维空间中见下图汇点 token 的 Key 值与普通 token 非常不同图5sink token的key值与其他token基本正交所以现在我们知道开发注意力汇点并不一定需要通道维度的离群值channel-outlier。那为什么在 LLM 中这种情况依然会发生呢RoPE 才是罪魁祸首RoPE 是一种广泛用于建模相对距离的技术而全注意力Full Attention被广泛认为有利于提高模型在长文本下的性能。下面我们将挑战这一观点。全 Softmax 注意力在长文本下信噪比降低注意力的输出是。这里是 token i 和 j 之间的注意力权重。假设我们有一个长文本结构如下“Alice 的关键词是abcdxxxxxxx100万个 tokenAlice 的关键词是什么”在这种情况下为了回答关键词我们期望某些注意力头关注到字母 abcd。这意味着这些注意力头需要将大部分注意力分数分配给召回信息。因此我们可以将信噪比SNR定义为定义我们可以看到随着序列长度的增加也会增加这意味着 SNR 会持续衰减导致模型“迷失在不重要的信息中”参见 OpenAI 最近的工作)[2]。图6Attention在长序列下存在信噪比下降的问题LLM 如何处理长文本现在我们意识到 Softmax 注意力在长文本中会迷失然而这一点和现实相悖近期的 LLM 已经证明了其卓越的长文本处理能力。这一现象的答案在 Anthropic 的突破性工作中得到了揭示[3]。在这篇论文中作者发现存在一类特殊的注意力头被称为归纳头Induction Heads。这些头部的逻辑非常简单它只关注与当前 token 相似的历史 token。图7LLM中存在特定attention head负责长文本信息找回现在我们可以提出一个重要的假设为了避免在长文本中迷失大多数注意力头会关注其相邻 token 加汇点而少数注意力头负责将远程 token 抓取到当前位置以便深层网络可以在局部处理这些信息。验证方法很简单在[4]中作者首先根据召回得分筛选出前 20% 的注意力头并丢弃其余头部的远程 KV 缓存。令人惊讶的是准确率下降不到 3%。然而如果我们保留 80% 的头部为全注意力并丢弃那 20% 召回头的 KV 缓存准确率会下降超过 30%。RoPE机制与召回头存在冲突如上文所述召回头的功能非常简单它只是为了确保相似的 token 拥有较大的注意力权重。下面我们将看到 RoPE 背后的先验设置对这种远程召回能力有一定的负面影响。经过 RoPE 处理后和之间的注意力权重为这里和是 Query 和 Key 的第个旋转分量是相应的旋转频率是 q 和 k 之间的相位偏移。然而对于召回头对于需要被召回的token假设其位置是无论其位置如何我们都需要 足够大。这意味着快旋转分量较大对召回头是有害的因为其本身的attention score会随着相对位置变化快速波动。在这种情况下我们需要慢旋转分量占据主要成分以保持清晰的召回信号。事实上如果绘制出来每个 token 的 q 和 k 的通道级分布就会发现对于召回头低频分量维度通常拥有非常大的量级。实际上这种通道级的大量级是离群值出现的关键原因在[5]也提出了类似的观点。图8LLM的key值在低频分量上会出现离群值另一个非常有意思的观察是召回头往往会出现更明显的attention sink现象。而这一现象的答案其实现在已经呼之欲出了。对于召回头如果前文中不存在需要召回的信息那通过attention sink现象就可以实现“关闭”效应。到这里我们其实已经能够弄清楚为什么大模型需要离群值以及这些离群值对于attention起到了什么作用。最终结论由上述讨论可以看出LLM中的离群值实际上对于attention长程依赖至关重要。更具体的和人类一样LLM 处理长文本的方式存在一个显著的召回模式• 首先在先前的上下文中搜索相关信息然后进行局部逻辑推理• 召回头需要给相关 token 较大的注意力权重但 RoPE 的快分量会干扰这一召回能力• 为了绕过 RoPE 的副作用这些召回头需要在低频分量的维度上产生较大的通道级信号从而导致了离群值。到此为止我们已经从一个角度理解了离群值产生原因下面则是由上述讨论分析得到的一些自然扩展。扩展讨论为什么长文本外推需要更大的旋转基数最广泛使用的上下文窗口扩展方法即 YaRN其实质就是增大旋转基数。由于这意味着最慢的旋转分量的自旋频率为。在这种情况下为了确保被召回的 token 共享较大的注意力权重我们需要。因此我们可以有把握地预测对于序列长度召回准确率将严重下降。这就是为什么长文本 LLM 通常使用非常大的。Partial RoPE、NoPE可能更好如上所述为 LLM 的序列长度设定了上限一个简单的修复方法是为某些维度设置。这种方法被称为Partial RoPE即 q 和 k 中的某些维度不使用 RoPE。DeepSeek-V3 和 GLM-4.6 采用了这种策略先前的研究也发现 Partial RoPE 有利于长文本处理。除此之外另一种克服这一缺陷的方法是针对某些注意力头禁用 RoPE我们称之为NoPE。我想你已经猜到哪些头应该使用 NoPE 了。(如何选择NoPE避免离群值请参考DoPE:Denoising Rotary Position Embedding[6]是的答案是召回头。这种策略在最近的 Kimi 模型中被使用他们在线性注意力头中启用 RoPE而在 MLAMulti-head Latent Attention头中使用 NoPE。RoPE 离群值的副作用斜条状带Slash Pattern在MInference[7]中作者注意到注意力图中存在“斜线模式”见下方 Qwen3-30B-A3B 某注意力头的精细图谱。图9LLM的自注意力存在slash pattern通常近期的免训练稀疏注意力算法会尝试在计算中保留这种斜线模式。但实际上这些斜线有一些有趣的特征• 斜线模式与输入 token 无关这意味着它只取决于输入序列长度而与输入的语义信息无关• 斜线模式呈现出一种准周期性模式。正如指出的那样如果这种模式与语义无关那么其本身对于LLM并不会产生价值。实际上这种准周期模式正是 qk 离群值在 RoPE 下产生的副作用。假设 qk 中存在某些离群通道那么在 RoPE 下这些离群通道的分量满足这无非是某些旋转分量的叠加结果。实际上如果你对该头的注意力图运行 FFT快速傅里叶变换你会发现峰值频率与离群值的频率一致。引用链接[1]:https://arxiv.org/abs/2309.17453[2]:https://arxiv.org/abs/2511.13653[3]:https://arxiv.org/abs/2209.11895[4]:https://arxiv.org/abs/2407.15891[5]:https://arxiv.org/abs/2502.01563[6]DoPE:Denoising Rotary Position Embedding:https://arxiv.org/html/2511.09146v1[7]:https://arxiv.org/abs/2407.02490