处理长达20万token的上下文,对于任何大语言模型(LLM)而言都是一场昂贵且缓慢的考验。上下文越长,成本和延迟就越高。来自清华大学和Z.ai的研究人员提出了一种名为IndexCache的新技术,它能削减稀疏注意力模型中高达75%的冗余计算,在处理长文本时,将首个token生成速度(TTFT)提升1.82倍,生成吞吐量提升1.48倍。
这项技术已在拥有7440亿参数的GLM-5模型上得到初步验证,并适用于采用DeepSeek稀疏注意力(DSA)架构的模型,如最新的DeepSeek和GLM系列。这意味着,企业在部署生产级长文本应用时,将能为用户提供更快的响应体验。
自注意力机制的“二次方诅咒”
大语言模型的核心能力源于自注意力机制(Self-Attention)。简单来说,模型为了预测下一个词元(token),需要计算当前词元与前面所有词元之间的关系。这种机制效果强大,但存在一个致命缺陷:其计算复杂度和内存消耗会随着序列长度的增加而呈二次方增长(O(n²))。
当应用场景需要处理长文档、执行多步AI智能体工作流或进行长链条思维推理时,这个“二次方诅咒”会导致推理速度急剧下降,计算和内存成本飙升。稀疏注意力(Sparse Attention)正是为了解决这一问题而生。它不再让每个词元关注所有前面的词元,而是通过优化,只选择并关注最相关的一小部分词元,从而打破了二次方增长的限制。
稀疏注意力的“隐性税负”
DeepSeek稀疏注意力(DSA)是这一理念的高效实现,最早在DeepSeek-V3.2中引入。为了找出哪些词元最重要,DSA在模型的每一层都加入了一个轻量级的“闪电索引器模块”(lightning indexer module)。这个索引器会为所有前面的词元打分,然后挑选出一小批交给核心注意力机制处理。通过这种方式,DSA成功地将核心注意力的计算复杂度从二次方降至线性,在保持模型性能的同时大幅提速。
然而,研究人员发现了一个被忽视的瓶颈:DSA的索引器本身,在每一层的计算复杂度仍然是二次方的。尽管索引器的计算量远小于核心注意力,但随着上下文长度的爆炸式增长,模型运行这些索引器所花费的时间也急剧攀升。这笔“索引税”严重拖慢了模型在预填充(prefill)阶段(即首次处理输入提示)的速度。
IndexCache的破解之道:利用层间冗余
为了解决索引器瓶颈,研究团队发现了一个关键特性:当数据在Transformer模型中逐层传递时,索引器所选出的重要词元子集表现出惊人的稳定性。实证测试表明,DSA模型中相邻层选择的词元重合度高达70%至100%。
基于这一发现,IndexCache应运而生。该技术将模型的网络层分为两类:少数“完整层”(Full Layer, F层)和其余的“共享层”(Shared Layer, S层)。F层保留其索引器,负责主动计算并缓存最重要的词元索引。而S层则完全跳过索引计算,直接复用其前面最近的F层所缓存的索引。
在推理过程中,模型只需判断当前层的类型。遇到F层,就执行计算并更新缓存;遇到S层,则直接读取缓存,跳过计算。这种机制巧妙地利用了层间冗余,大幅削减了总计算量。
计算优化,而非内存压缩
值得注意的是,IndexCache与常见的KV缓存压缩技术有着本质区别。传统的KV缓存优化旨在减少存储注意力计算结果所占用的内存空间,而IndexCache则直接攻击计算瓶颈本身。
论文的共同作者Yushi Bai向VentureBeat解释道:“IndexCache不是传统的KV缓存压缩或共享技术。它通过跨层复用索引来消除冗余,从而减少计算量,而不仅仅是内存占用。它与现有方法是互补的,可以结合使用。”
为了方便部署,研究人员还开发了一种免训练(training-free)的方法。通过一个“贪心层选择”算法,在少量校准数据上运行模型,就能自动确定F层和S层的最佳分布,无需更新任何模型权重。这意味着开发者可以轻松地将IndexCache应用于现成的、无法或不便重新训练的DSA模型上,为其注入新的活力,让长文本AI应用真正变得流畅和高效。
