当前位置: 首页 » 资讯 » 科技头条 » 正文

让大模型"按需取用"记忆,GPU显存占用暴降87%

IP属地 中国·北京 科技行者 时间:2026-06-15 22:11:10

这项由腾讯AI Lab、香港科技大学(广州)与清华大学联合开展的研究,以技术报告形式于2026年6月8日发布在预印本平台arXiv,编号为arXiv:2606.09079。感兴趣的读者可以通过该编号查询完整报告。


每当你打开一个智能对话应用,跟AI聊了几十分钟,发送了一篇几万字的文章让它帮你总结分析——你可能不知道的是,这背后有一场悄无声息的"内存战争"正在发生。AI模型必须把你们之间的全部对话历史、你发送的每一个字,都整整齐齐地塞进显卡的高速内存里,随时备用。上下文越长,占用的内存就越多,成本也越来越高昂。

这就是这篇报告要解决的核心问题。研究团队提出了一种叫做"前瞻稀疏注意力"(Lookahead Sparse Attention,简称LSA)的新机制,并将其应用在DeepSeek-V4这个强大的大语言模型上,打造出一个名为FlashMemory-DeepSeek-V4(简称FM-DS-V4)的新系统。它的核心思路用一句话概括就是:与其把所有历史记录一股脑儿堆在"桌面"上备用,不如训练一个聪明的"助手",让它提前预判你接下来会用到哪些历史信息,只把真正有用的那部分搬上桌来。

实验结果相当有说服力:在多个权威的长文本处理测试中,FM-DS-V4把GPU显存占用压缩到了原始方案的仅13.5%——也就是说,原本需要100块钱显存才能跑的任务,现在花13块5就够了。更令人意外的是,节省了这么多资源,模型的答题准确率不仅没有下降,反而平均还提升了0.6个百分点。在极端的50万token超长文本场景下,显存节省幅度甚至超过了90%。

不过,由于项目主导人在报告发布前已离开腾讯,这个项目被迫暂停。研究团队选择将阶段性成果公开,希望社区能继续推动这个方向的发展。

一、AI的"桌面杂乱症":为什么处理长文本会让显卡叫苦连天

要理解这项研究解决的是什么问题,得先明白AI模型在处理长文本时是怎么工作的。

大语言模型在生成每一个字的时候,都需要"回顾"之前所有的内容,判断接下来应该说什么。为了做到这一点,模型会把所有历史内容转换成一种特殊的数字表示,叫做"KV缓存"(Key-Value Cache)。你可以把它理解成AI的"工作桌面"——所有历史信息都摊开在桌上,随时可以查阅。

问题在于,这张"桌面"会随着对话或文档的增长而无限扩张。处理一篇1000字的文章,桌上有一点东西;处理一篇50万字的长文,桌面就得铺满整个房间。现代大语言模型的KV缓存大小是随文本长度线性增长的,这意味着文本越长,所需的GPU高速内存就越多,费用也越贵。

研究团队在分析真实推理日志时发现了一个惊人的事实:超过90%的、上下文长度超过64000个字的用户请求,其实只需要用到最后8000个字的内容就能准确回答。换句话说,桌面上摊着的那一大堆历史材料,绝大多数时候根本没人翻阅,纯粹是占着地方。

但另一面的问题同样存在:如果直接把历史记录全扔掉,只保留最近的内容,那些确实需要回溯很久以前信息的任务就会彻底失败。就像有人问你"三年前我们第一次见面时你穿的什么颜色的衣服",如果你把三年前的记忆全清空了,就没法回答。

这就是一个两难困境:保留全部历史,内存撑不住;只保留近期,又会漏掉关键信息。

DeepSeek-V4等新一代模型虽然引入了"高度压缩注意力"(HCA)层,把历史信息以128比1的极高压缩比存储起来,起到了一定的缓解作用,但要保留足够的细节精度,还是必须保存大量未压缩的完整信息层,只是减慢了内存增长的速度,并没有从根本上解决线性增长的问题。

二、聪明的"图书管理员":前瞻稀疏注意力是怎么工作的

研究团队给出的解决方案,核心思路类似于一个经验丰富的图书管理员。

假设你是一家大型图书馆的管理员,馆里有几十万册书。每天有读者来查资料,你不可能把所有书都堆到阅览室桌上——那根本放不下。聪明的做法是:根据读者正在研究的课题,提前预判他们接下来最可能翻阅哪几本书,提前把这几本从书库里取出来放到桌上。其余几十万册书,就继续安静地待在书库(CPU内存)里,等真正需要时再取。

这正是LSA的工作逻辑。在解码(即生成回答)的过程中,系统每隔固定的64个生成步骤,就会触发一次"神经记忆索引器"(Neural Memory Indexer)。这个索引器会检查当前模型的内部状态,预测接下来这64步生成过程中最可能用到的历史信息块,然后只把这些块从CPU冷存储区搬到GPU热内存里使用。没有被选中的历史信息块,就继续待在CPU里,不占用宝贵的GPU显存。

从技术层面来说,这个索引器的架构基于DeepSeek-V4原有的"闪电索引器"(Lightning Indexer),但做了两处关键改动。第一处是把原来的ReLU激活函数换成了Sigmoid函数,让索引器输出的分数能被映射到0到1之间的概率值,便于用一个固定的阈值(0.5)来做是/否的二分类决策。第二处是把原来的"取前K个"固定选择策略,换成了"凡是分数超过0.5的都取"的动态选择策略——有时可能只需要取少数几块,有时候确实需要较多信息时也能灵活多取。

被选中的历史信息块进入GPU后,还会经历第二轮筛选:原有的闪电索引器在这个缩小的候选集里再做一次精细化的"前K个"选择,挑出最终参与注意力计算的核心信息块。这种两级筛选机制,既保证了粗选阶段不遗漏重要信息,又保证了精选阶段的计算足够高效。

整个流程中,始终保留在GPU上的部分只有两类:全部的高压缩HCA层(这部分本来就很小),以及最近8000个token的完整信息(保证近期上下文的完整性)。其余所有历史信息都被卸载到CPU,由索引器按需调度。

三、训练这个"管理员"的妙招:完全不用开动大模型本体

这项研究最精妙的工程设计之一,是训练这个神经记忆索引器的方式。

通常,要给一个大语言模型添加新功能,都需要把这个庞大的模型加载到GPU上,进行联合训练或微调。DeepSeek-V4这样的千亿参数模型,光是加载就需要大量高端GPU,训练一次的成本极为高昂。

研究团队另辟蹊径,采用了一种"解耦训练"策略。其核心洞察是:历史信息块的压缩表示(KIComp,即"压缩索引键")是完全可以提前计算好、保存下来的,在训练索引器时这些表示不需要更新。换句话说,索引器需要学的只是:给定当前时刻模型的内部状态,如何正确预测哪些历史块是接下来需要的。

这让整个训练问题简化成了一个"双塔检索模型"的训练问题——一侧是查询编码器(需要训练),一侧是文档编码器(已经固定)。所有训练用的数据(历史块的表示、当前状态的表示、以及标签)都可以提前在冻结的主模型上计算好并存到硬盘里,训练时根本不需要把主模型加载进内存。

因此,整个索引器的参数量不到主模型的0.1%,在单块H20 GPU上只需要一小时就能完成训练。凭借这个优势,研究团队在一周内用8块H20 GPU完成了大约500次不同配置的训练实验,系统地探索了最优设置——这在传统联合训练方式下是完全不可想象的。

当然,要训练这个索引器,首先需要构建合适的训练标签:告诉索引器,对于某个解码时刻,哪些历史块是"必须的",哪些是"无关的"。

研究团队设计了一套三步去噪流程来生成高质量标签。直接的做法是:让主模型在解码某个时间窗口内每次都选"前K个"历史块,然后把所有被选中过的块都标为正例。但实验发现,这样做会产生大量噪声——因为强制取前K个会迫使模型选一些其实并不重要的块,这些低概率的噪声样本会严重污染训练数据,导致每个时间窗口的正例数量膨胀到约一万个,严重影响标签质量。

为此,团队引入了"跨层多数投票"机制。具体做法是:对每个待标注的历史块,先用Softmax把原始分数转为概率分布,再用"核采样"(Top-p,阈值设为0.6)而非固定数量的方式筛选高置信度块,最后统计有多少个Transformer层独立选中了这个块。只有被至少3个层同时选中的块,才被认定为真正的"黄金块",打上正例标签。整个窗口内所有解码步骤的黄金块合并起来,就构成了这个时间窗口的正例集合。经过这套去噪流程,正例数量从约一万个压缩到了约100至1000个,质量大幅提升。训练集最终包含约一万篇长文档,上下文长度从16000到512000 token不等。

在训练目标上,团队用的是加了焦点权重的"焦点损失"(Focal Loss)函数,而非普通的二元交叉熵损失。焦点损失会自动降低那些已经被模型正确分类的"简单样本"对梯度的贡献,让模型把更多精力放在那些难以判断的"边界样本"上,从而提升在困难案例上的判断精度。为了处理正负样本数量悬殊的问题,团队采用了3比1的负采样比例(每个正例配3个负例),而不是引入额外的类别平衡系数,让超参数空间尽量简洁。

四、放在哪几层最合适:寻找最佳的"管理员岗位"

确定了索引器的训练方式之后,下一个问题是:这个索引器应该挂载在Transformer模型的哪几层上?

这个问题背后有一个深刻的原理:Transformer模型浅层的表示主要捕捉低层次的词法和句法特征,对长程语义依赖的感知很弱;而越靠近输出端的深层表示,对全局语义的理解就越成熟。因此,在浅层训练出来的索引器,对"未来需要哪些历史信息"的预测能力很差。

另一方面,如果把索引器放在太多层上,各层的预测结果取并集后覆盖的历史块数量会大幅膨胀——实验发现,用8层(第6到第20层)的并集时,被召回进GPU的历史块占总历史块的比例高达30%至49%,节省的内存非常有限,与原始方案相比优势大打折扣。

经过系统的帕累托前沿优化(一种在多个目标之间寻找最佳权衡点的方法),研究团队确定了最优配置:在第10、12、20这三个中间层各放置一个独立的记忆索引器。在推理时,只要这三个层中任意一个认为某个历史块的分数达到了0.5,就将其召回到GPU,这就是所谓的"OR模式路由"策略。三层并集的覆盖范围既足够广,能捕捉不同层次的语义需求,又足够紧,不会召回过多无关内容。

在初始化策略上,团队选择了随机初始化索引器的权重矩阵,而不是从主模型的检查点中复制权重。这样做迫使索引器从头学习对历史块的统一表示,避免了主模型原有权重可能带来的偏差。查询向量的低秩投影维度被设置为2048,这个数值大于DeepSeek-V4默认的1536,能给索引器提供更大的表示容量,让它在面对多样化的长文本任务时具备更强的区分能力。

五、实验成绩单:节省了多少,损失了多少

研究团队在三个主要的长文本评测基准上全面测试了FM-DS-V4,对比对象包括原始的DeepSeek-V4-Flash(全量KV缓存)、纯滑动窗口方案(只保留最近8K历史)以及随机保留10%历史块的方案。所有方案都保留了HCA层和最近8K的完整CSA层,区别仅在于如何处理更久远的历史信息。

在LongBench-v2基准上,这个测试涵盖了短(约46K token)、中(约179K token)、长(约493K token)三个长度级别的综合问答任务。FM-DS-V4在三个长度级别上的准确率分别为70.2%、68.9%和70.0%,全部超过了原始DS-V4-Flash的68.9%、67.6%和68.1%。在最长的493K场景下,FM-DS-V4的GPU显存使用仅为0.74GB,而原始方案需要7.52GB,节省了约90%,同时准确率反而高出了1.9个百分点。

在LongMemEval基准上,这个测试专门考察模型对长期交互记忆的保持和运用能力,分为125K和500K两个长度级别。FM-DS-V4的准确率分别为82.0%和40.2%,而原始方案为80.6%和39.3%,同样有所提升,显存节省幅度也达到了86%至90%左右。

在RULER基准上,这个测试包含64K、128K、256K和512K四个长度级别,考察的是模型在各种上下文规模下的综合能力。FM-DS-V4在64K和512K上分别获得了95.0%和89.6%的准确率,略高于原始方案的94.7%和88.3%;在128K和256K上分别为93.2%和88.2%,略低于原始方案的94.3%和90.5%,相差不超过2.3个百分点,属于基本持平的范围。

把所有基准的结果汇总来看,FM-DS-V4的平均显存占用为0.42GB,而原始方案的平均值为3.90GB,压缩到了约13.5%,平均准确率从76.9%微升至77.5%,提高了0.6个百分点。

相比之下,纯滑动窗口方案和随机10%方案则表现糟糕。滑动窗口方案的平均准确率仅为33.3%,随机10%方案也只有38.7%,两者都大幅低于原始方案,充分说明了LSA的索引器确实学到了有意义的预测能力,而不仅仅是靠节省内存"占便宜"。

这种"节省了资源还提升了效果"的现象,研究团队将其解释为"注意力去噪"效应:在注意力计算中,如果混入了大量与当前生成步骤无关的历史信息,这些无关信息会在注意力分数的计算中引入噪声,干扰模型对真正重要信息的关注。通过只保留最相关的历史块,反而让注意力机制能更精准地聚焦在真正有用的内容上,一定程度上提升了回答质量。

六、坦诚的失败报告:哪些场景下这套方案不管用

研究团队在报告中以相当坦诚的态度披露了几个典型的失败案例,这对评估这套方案的实际价值很有参考意义。

第一个问题是在"无需历史上下文"的任务上,索引器无法真正做到零召回。研究团队原本预期:当问题完全不依赖历史上下文时,Sigmoid门控会自然地对所有历史块输出接近0的分数,实现近乎零的显存占用。但实际测试发现,当上下文长度从125K扩展到500K时,虽然召回历史块的比例确实从原来压缩到了8.4%,但因为总历史块数量大幅增加,被召回的块的绝对数量反而增加了约2.5倍。根本原因是:面对几十万个历史块,Sigmoid门控对每个块都会"泄漏"一点点背景概率,即使这些块完全不相关,积累起来的假阳性召回数量也相当可观。

第二个更严重的问题,是在MRCR(多范围上下文检索)基准上的崩溃性失败。这个基准要求模型同时从文本的多个不同位置精确检索细节信息,需要对全局上下文有非常密集的覆盖。FM-DS-V4在这个测试上的准确率从原始方案的76.0%骤降至48.0%,跌幅超过28个百分点。

为了搞清楚这究竟是索引器的问题,还是这类任务本身就不适合稀疏注意力,研究团队做了一个"神谕实验":预先计算好DS-V4-Flash在完整解码路径上的真实注意力权重,按权重排序后只给模型提供权重最高的前50%、25%或10%的历史块。结果发现,对于LongBench-v2、LongMemEval和RULER来说,仅凭25%甚至10%的最高权重历史块,就能完全保住原始准确率;但对于MRCR,即便给到50%的真实黄金历史块,准确率仍然下降约2%。这说明MRCR这类任务在架构层面就对全局密集的历史覆盖有近乎强制性的依赖,任何形式的稀疏注意力都难以满足其需求,而不仅仅是LSA的索引器预测不准的问题。

第三个已知限制是长度泛化天花板。由于索引器的训练数据上限是512K token,实际测试发现,索引器能安全泛化的范围大约是训练长度的2倍,也就是大约1M token。超过这个边界后,索引器的准确性会急剧下降。研究团队将这个问题归因于超出训练分布的位置编码,这是自注意力机制与通用文本检索系统之间的核心架构差异之一。

此外,报告坦承了几个由于资源限制未能解决的设计缺陷:索引器的历史块表示(压缩索引键KIComp)在整个训练过程中是完全冻结的,从未优化过,只训练了查询端的投影;索引器只做了单次64步间隔的粗粒度点积匹配,缺乏ColBERT风格的词级精细交互能力;整个训练过程与主模型完全解耦,索引器学的是静态的伪标签,无法感知主模型在自回归生成过程中的动态变化。这三点被明确列为未来工作的改进方向。

归根结底,这项研究提供的是一个思路清晰、工程上可行的"按需取用历史记忆"方案,在大多数常见的长文本任务上实现了显存节省和性能保持的双赢。它最适合的场景是:文本虽然很长,但任何单个问题所需要的历史信息都相对集中、稀疏;而对于需要同时调用整个文本所有位置细节的密集检索任务,这套方案目前还力不从心。

从更宏观的角度看,这项工作验证了一条实用的工程路径:通过轻量级的预测索引器,在不修改大模型本体的前提下,大幅降低长文本推理的显存成本。这对于希望以有限资源提供长上下文服务的机构来说,具有相当直接的参考价值。这个方向上还有很大的提升空间,特别是在索引器的表示学习、多轮交互建模和端到端联合优化方面,如果这些问题得到解决,"超长上下文的低成本智能"这个目标会更进一步。感兴趣深入了解的读者,可以通过arXiv编号2606.09079查阅完整报告。

Q&A

Q1:FlashMemory-DeepSeek-V4是怎么节省GPU显存的?

A:FM-DS-V4通过一个"神经记忆索引器"预测接下来生成过程中最可能用到的历史信息块,只把这些块从CPU搬到GPU显存中使用,其余历史信息留在CPU冷存储里待命。这样做让平均GPU显存占用压缩到原始方案的13.5%,在50万token的超长上下文下节省幅度超过90%。

Q2:训练神经记忆索引器需要把DeepSeek-V4整个模型加载进内存吗?

A:不需要。索引器采用解耦训练策略,所有训练所需的数据(历史块的压缩表示、模型内部状态、标签)都提前计算并存储在硬盘上,训练时完全不加载主模型。索引器参数量不到主模型的0.1%,在单块H20 GPU上约一小时就能完成训练。

Q3:前瞻稀疏注意力在哪些任务上效果不好?

A:在需要同时从文本多个不同位置密集检索细节的任务上(如MRCR多范围上下文检索基准),准确率从76%骤降至48%。此外,当问题完全不依赖历史上下文时,索引器无法做到真正的零召回,面对超长文本仍会产生一定量的误召回。这类高度密集的全局记忆依赖任务目前是这套方案的主要短板。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其内容真实性、完整性不作任何保证或承诺。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。