简介:大模型迈向百万级上下文,注意力机制的二次方复杂度已成为核心瓶颈。本文系统对比两条主流优化路线:让注意力“变薄”的稀疏化方案与让序列“变短”的压缩式架构,从原理、信息保真、计算与显存结构、训练接入成本、适用场景等维度分析差异,并给出条件化选型建议与迁移注意事项,帮助你为智能体工作流与长程推理任务做出合理技术决策。
近年来公开评测的一个明显趋势是:头部开源模型与闭源旗舰模型在通用基准上的差距不断收窄,单纯比拼分数的边际收益越来越低,竞争重心正从“能力上限”转向“架构效率”。其中一个被反复验证的判断是:长上下文不再是一个锦上添花的功能,而是下一代大模型的基础设施。
这个判断背后有三个层面的逻辑:
也正因如此,业界多数公开方案虽然在通用能力上进步明显,但在超长序列的架构效率上仍面临共同瓶颈。制约上下文的核心,正是 Transformer 中注意力机制的复杂度问题。围绕这一问题,业界形成了两条本质不同的压缩路线,这也是本文对比的对象。
需要说明:本文不针对任何具体模型或厂商,而是将业界公开方案按技术逻辑抽象为两类进行对比。
保持序列长度不变,降低注意力计算的“密度”或“精度”。典型手段包括:滑动窗口与块级稀疏注意力(只计算局部窗口或选定全局位置的连接)、线性化或低秩近似的注意力、KV 缓存的量化与逐出、注意力头之间的共享与路由。它们的共同假设是:注意力矩阵高度冗余,绝大多数连接的权重接近于零,跳过它们不影响最终结果。
直接对序列(或 KV 状态)本身做有损压缩。典型手段包括:将相邻 token 分组折叠为摘要单元、分层粒度的 KV 表示(远处用粗粒度摘要、近处保留细粒度原文)、按需从粗到细的检索式回读。其共同假设是:长上下文中的语义是可概括的,历史信息大部分可以被“浓缩”后继续使用。
下面用示意性伪代码表达两者思想(仅为概念示意,非任何真实实现):
# 路线A:稀疏化注意力(变薄)def sparse_attention(Q, K, V):# 保留局部窗口 + 少量全局关键位置,其余连接被跳过mask = build_sliding_or_block_mask(seq_len, window=1024)scores = (Q @ K.T) * mask / sqrt(d)return softmax(scores) @ V# 路线B:序列压缩(变短)def compressed_attention(Q, K, V):# 先把 KV 序列折叠为紧凑摘要单元,再在摘要上计算注意力K_c, V_c = fold_and_compress(K, V, ratio=8) # 8:1 压缩仅为示意scores = (Q @ K_c.T) / sqrt(d)return softmax(scores) @ V_c
两条路线的差异可以一句话概括:A 是“在同一张注意力矩阵上减脂”,B 是“先把要读的材料浓缩成摘要”。
尽管思路不同,两条路线在更深层的逻辑上高度一致:
路线A作用于注意力计算图本身:序列仍是原始长度,改变的是“谁与谁建立连接”。路线B作用于序列表示层:在进入注意力计算之前,KV 已被折叠为更短的紧凑形式。这决定了两者改造的侵入面不同——A 多数可停留在注意力模块内部,B 往往牵动位置编码、缓存管理与训练目标的整体设计。
A 的特性是“被跳过的部分丢失,被保留的部分无损”:在覆盖区域内,注意力数值与位置信息保持精确。B 则是全局有损:压缩必然丢细节,对 token 级精确召回任务(长数字、ID、代码标识符、合同条款编号等)天然存在风险。换句话说,A 的典型失败模式是“该连的连接被跳过了”,B 的典型失败模式是“关键细节被摘要抹平了”。
A 主要削减注意力计算的运算量,但若不做缓存逐出,KV 显存仍随长度近似线性增长,解码阶段收益相对有限。B 以压缩比为单位同时约束注意力量与显存占用,上下文长度上限由“有效长度”而非“原始长度”决定,对解码阶段的长会话尤其友好——这正是推理时扩展(长思维链)最看重的特性。
A 保留原始位置索引,跨位置的顺序敏感任务表现相对稳定。B 必须解决“折叠后的摘要单元如何携带位置信息”的问题:窗口之间的先后关系、摘要单元内部的顺序,都可能在聚合过程中被弱化,需要专门设计位置聚合机制。
A 家族中的推理侧手段(量化、逐出、窗口复算)可以基本不改模型权重、只改服务层即可生效;即使稀疏模式要在训练期固化,多数也属于继续训练量级。B 通常意味着架构级修改,往往需要大规模预训练或长上下文专项训练才能稳定收敛,接入周期与算力投入显著更高。
A 的主要工程量在稀疏掩码的算子支持、内核性能与服务调度;B 的复杂度在于压缩调度器、多粒度缓存的生命周期管理、摘要与原文之间的回读机制,服务侧需要维护更复杂的状态。两者都要求重做容量规划:A 需要预估窗口与缓存上限,B 需要预估压缩比与回读频率。
| 维度 | 路线A:稀疏化(变薄) | 路线B:序列压缩(变短) |
|---|---|---|
| 核心思想 | 降低注意力连接的密度与精度 | 折叠、浓缩序列本身 |
| 信息保真 | 覆盖区内无损,未覆盖区丢失 | 全局有损,细节可能被抹平 |
| 显存控制 | 运算量下降,KV 仍近似线性增长(除非逐出) | 显存与计算同被压缩比约束 |
| 解码阶段长会话 | 收益相对一般 | 收益显著,长思维链友好 |
| 位置信息 | 保留原始索引,顺序任务稳定 | 需专门设计位置聚合机制 |
| 接入成本 | 低到中,可停留在推理侧 | 高,通常需架构级重训 |
| 典型风险 | 关键远程连接被跳过 | 精确 token 召回失败 |
| 适用重心 | 精确检索型长任务 | 智能体工作流、长程推理 |
回到最初的问题:长上下文的注意力优化,“变薄”与“变短”并不是新旧替代关系,而是作用于不同系统层面的两条路线。稀疏化在信息保真与接入成本上占优,适合精确检索型任务与存量模型的低成本优化;序列压缩在显存结构与长会话成本上占优,是智能体工作流与推理时扩展的架构前提;而工程实践中最有生命力的往往是混合形态——局部保留全精度注意力、远处折叠为摘要、关键信息按需回读。选型思路也由此清晰:先确认你的任务对“精确召回”和“会话长度”哪个更敏感,再决定往哪条路线投入。对多数应用团队而言,先借助成熟的托管推理服务完成验证,再把架构级投入留给真正需要的场景,是更稳妥的路径。