福生无量摸鱼天尊

【LLM 必读综述】Speed Always Wins:LLM高效架构调查

2025/08/27
56
0

题目:Speed Always Wins: A Survey on Efficient Architectures for Large Language Models

作者:孙伟高 上海人工智能实验室

github:https://github.com/weigao266/Awesome-Efficient-Arch

文章的主要目的

通过分析449篇大模型的论文,汇总得到了以下能让大模型速度提升的方向:

线性序列建模(Linear Sequence Modeling):

这类方法通过重构注意力机制,旨在将自注意力的二次方复杂度降低至线性复杂度O(N)),其设计灵感常来源于传统注意力机制、循环神经网络(RNN)或状态空间模型(SSMs)。该方法还消除了推理过程中存储键值(KV)缓存的需求,从而降低了部署成本。

稀疏序列建模(SSM):

这些方法不计算所有标记对的注意力,而是选择性地关注交互子集(即注意力图),从而在保持性能的同时降低计算和内存需求。

高效全注意力(Efficient Full Attention):

这些方法在保留标准softmax注意力理论上的二次复杂度的同时提高了其效率,例如通过IOaware注意力机制提高内存访问效率,通过分组查询机制减少KV缓存大小。

稀疏专家混合(MoE):

MoE该范式引入了一种条件计算方法,其中每个输入令牌只激活模型参数的一个子集(称为专家),从而允许在不按比例增加计算成本的情况下大幅提高模型容量。

混合架构(Hybrid Architectures):

这类设计巧妙融合了线性序列建模组件与传统全注意力层。具体实现方式分为两种:层内混合(在同一层中同时采用两种操作)和层间混合(不同层使用不同注意力机制),通过优势互补实现效率与模型容量的平衡。

扩散语言模型(Diffusion LLMs):

传统LLM是自回归模式,一个一个token的生成。DLLMs是一组一组tokens的生成,非自回归模式。

多模态大模型:

NLP并不是LLM的唯一输入,音频,视频,图片等大模型应当都可以进行处理,这就是多模态大模型。

接下来逐个介绍每个领域的优化亮点:

线性建模

目前有希望达到attention一样效果并且不损失过多准确率的模块有:线性注意力机制、线性循环神经网络(Linear RNN)、状态空间模型(SSM)以及测试时训练(TTT)RNN,这些模块的设计有不同的数学模式和动机。其核心评价指标就一个,就是能不能达到attention同等的表达特征的效果。

本章后续对每一种模型都进行了深度研究,我个人认为短时间内不可能有模型能替代attention,估计先放着,回头看。

稀疏模型

模型的稀疏化很重要,能减少计算量对于整个系统的效果提升非常明显。典型代表是transformer模型中的稀疏注意力机制,该机制在保持模型性能的同时,有效解决了传统全注意力方法面临的计算瓶颈问题。

静态稀疏方法

静态稀疏表明attention只关注于预设的固定子集的位置。常见的结构模式包括全局稀疏、窗口稀疏、跨步稀疏、扩张稀疏、随机稀疏和块状稀疏等类型。由于具备强大的归纳偏置和可扩展性,这类方法已在自然语言处理、视觉识别及多模态模型中得到广泛应用。

早期的如BlockBERT实现的就是将输入分割为固定大小的块,允许块内密集注意力和通过选定关键标记实现块间稀疏通信。后来Longformer通过结合滑动窗口注意力机制和少量全局标记扩展了这一思路,窗口负责处理局部上下文信息,而全局标记则实现远距离位置间的信息流动。这种混合架构不仅保持线性复杂度,还在摘要生成和长上下文问答等任务中展现出显著效果,而GMAT优化了双注意力之间的交互ETC对于文档的需求整合了片段感知注意力和相对位置编码,将标记分为局部流和全局流:局部标记在滑动窗口内进行注意力计算,全局标记则关注完整序列以实现层次化表征。BigBird更是用数学整合局部、全局和随机连接,构建出具有小世界特性的稀疏注意力图。LongNet 创新性地采用指数级扩张注意力机制,使各层注意力作用范围以2的幂次方递增。

动态稀疏方法

动态稀疏机制能够根据输入内容自适应地确定注意力模式。这类模型通过将计算集中在动态选择的标记交互子集上,旨在通过保留长上下文中与任务相关的信息来逼近全注意力机制的表达能力,同时最大限度降低计算开销。该方法的发展更类似检索系统

Transformer-XL提出通过复用前序片段的隐藏状态构建循环记忆机制,突破了固定长度的限制。压缩型Transformer通过主动压缩旧状态至更高效的长期存储结构,进一步优化了这种记忆机制。Reformer开创性地采用局部敏感哈希(LSH)对标记进行分桶处理,使每个查询仅关注同哈希桶内的键值。路由Transformer运用在线k均值聚类对标记进行分区,将注意力限制在动态形成的聚类范围内。

后来原生稀疏注意力机制(NSA)采用硬件适配的分层策略,将全局上下文的粗粒度标记压缩与局部精度的细粒度选择相结合,显著提升了实际运行速度。与此同时,混合稀疏注意力机制(MoSA)将经典的混合专家(MoE)范式适配于动态稀疏注意力场景。每个头单元作为“专家”动态选取少量标记,将节省的计算资源重新分配用于训练更多专用头单元,在相同浮点运算预算下实现了更优性能表现。

PD分离下的稀疏方法

加速推理过程包含两个截然不同的阶段:首先是计算密集型的预填充阶段(Profill),用于处理初始提示;其次是受内存带宽限制的解码阶段(Decoding),负责生成后续标记。针对这两个阶段的具体瓶颈,业界已涌现出多种技术解决方案。

加速Prefill

早期方法通过离线分析构建结构化稀疏性,例如LongLoRA模型采用偏移式稀疏注意力(S2-Attn)技术,通过局部标记组内注意力计算后进行偏移重组,使信息能在整个上下文中流动,以显著降低计算成本实现全局注意力近似。MInference研究发现注意力图谱常呈现对角线、垂直条纹等固定形态,因此采用专用GPU内核处理这些模式。类似地,混合注意力(MoA)通过梯度分析为每个注意力头分配静态异构滑动窗口尺寸,形成固定稀疏掩码,无需重新训练即可减少计算量。

一种更具适应性的方法是根据输入内容动态学习稀疏模式SeerAttention 通过在每个注意力层添加轻量级门控模块来预测注意力矩阵中哪些区块对特定输入最为关键,并实时生成动态掩码来剪枝无关计算。后续研究SeerAttention-R在自蒸馏注意力稀疏基础上,针对高效自动逆向解码引入关键改进:移除序列级查询池化层,并采用GQA风格的共享稀疏模式以提升硬件效率。SeerAttention-R只需在注意力层插入可学习门控模块,无需修改原始模型权重,即可应用于任何预训练的Transformer模型。

加速 Decode

在自回归解码阶段,主要瓶颈并非计算资源,而是每次加载不断增长的键值(KV)缓存所需的内存带宽。该领域的研究重点在于智能修剪缓存,仅保留最关键的信息。

SpAtten提出了一种稀疏注意力架构,通过级联标记和头层修剪来提高效率,利用Top-K引擎逐层移除无关元素。该方法还引入了渐进量化技术,仅在需要时加载低精度位。另一个简单而强大的启发式方法是利用“注意力汇流”现象,如StreamingLLM所展示的。该研究发现初始标记在整个生成过程中始终吸引高关注度,对保持稳定性至关重要。通过仅缓存这些汇流标记以及最近标记的滑动窗口,模型可以用小型固定大小的缓存处理无限长的流。

其他方法采用动态驱逐策略TOVA持续驱逐注意力得分最低的token以腾出空间容纳新Token,而H2O将驱逐过程建模为子模优化问题,以保留对注意力输出影响最大的“heavy hitter”token集合。RetrievalAttention检索注意力通过在CPU内存中构建KV cache的近似最近邻索引来加速推理。在生成过程中,它使用注意力感知向量搜索仅检索与当前查询最相关的少量KV对子集,从而避免了完整注意力机制带来的计算和内存成本。