![]()
这项由SambaNova Systems(一家专注于AI基础设施的科技公司)研究团队完成的研究,以预印本形式发布于2026年5月31日,编号为arXiv:2606.01336,论文标题为《LongAttnComp: Cross-Family Context Compression for Long-Context Reasoning》,有兴趣深入了解的读者可以通过上述编号查询完整论文。
**一、大模型的"阅读焦虑":当文章太长,AI也会犯难**
假设你是一位律师助理,老板给了你一份两百页的合同,要你在五分钟内找出其中一处关键的漏洞条款。这件事难在哪里?难在内容太多,有效信息太少,大量篇幅是无关紧要的格式条款。你得在茫茫文字中,像大海捞针一样找到那几行关键文字。
当今的大型语言模型(简称"大模型",就是ChatGPT、DeepSeek这类AI)面临的困境与此惊人地相似。随着人们越来越多地将超长文档——几十万字的代码库、数百页的法律文书、连续几小时的对话记录——直接丢给AI处理,AI所需要"阅读"的内容量早已突破了十万甚至二十万个"词语单位"(专业上称为"token",可以粗略理解为AI处理文字的基本单元)。
这种超长输入对AI系统来说,代价极其高昂。每多处理一个词,计算机就要多消耗一点内存和算力,而这个消耗不是线性增长,是成倍增长的。处理十万词的成本,远不止是处理一万词的十倍那么简单——就好像一锅饭能养活十个人,但要养活一百个人,你需要的远不止是十口锅,还有十倍的燃气、十倍的厨师、十倍的餐具。
SambaNova Systems的研究团队正是针对这一"大模型阅读焦虑"问题,提出了一套名为LongAttnComp的解决方案。它的核心思路可以用一个词概括:压缩。但这可不是简单地把文章截短,而是像一位经验丰富的文件助理,先快速浏览全文,把真正有用的段落挑出来,再交给老板细读——既节省了老板的时间,又不丢失任何关键信息。
**二、为什么不能直接"掐头去尾":朴素压缩方案的致命缺陷**
既然文章太长,最直观的办法就是截断——保留前面一部分,把超出长度限制的内容直接扔掉。实际上,很多AI系统今天仍在这样做,这种方法叫"中间截断"(middle-truncation)。
但这个方法有一个致命问题:关键信息可能恰好藏在被截掉的那部分里。研究领域有一个著名的现象叫"迷失在中间"——研究者发现,当一段文字被放置在超长文档的中间位置时,AI往往会忽略它,即使那段文字非常重要。这就好比一本两百页的书,第一章和最后一章总是被读者记住,但第八十七页的内容,大多数人读完之后根本想不起来。
正因为简单截断会丢失信息,研究者们开始探索"上下文压缩"这条路。上下文压缩的思路是:与其截断,不如筛选。把整篇文档扫一遍,只保留与当前问题相关的部分,去掉那些与问题无关的内容。
目前已有的压缩方案大致分为两类。第一类叫"抽取式压缩",就像用荧光笔在原文上标记,只保留被标记的部分。第二类叫"生成式压缩",就像请人把原文概括成摘要,用新的文字重新表达原文意思。两类方法各有优劣,但都面临一个共同难题:怎么知道哪些内容是"有用的"?
此前有一个叫Speculative Prefill(投机式预填充)的方案,用一个轻量级的"草稿模型"先快速扫描文档,根据它对文字重要性的判断来压缩内容,完全不需要专门训练,开箱即用。这个方案在很多任务上表现不错,但在"代码调试"这类需要深度理解的长文本任务上,表现就差强人意了。另一个叫AttnComp的方案则选择专门训练一个评分器,效果有所提升,但它只在短文本(约一万两千个词)上做过测试,训练数据也只用了一个来源,适用范围相当有限。
LongAttnComp的工作,正是在这两个前辈方案的基础上,取长补短,打造出一套能真正驾驭超长文本的压缩器。
**三、LongAttnComp的"图书馆员"模型:核心机制拆解**
可以把LongAttnComp的工作方式,理解为一位训练有素的图书馆员帮你找资料的过程。
你走进图书馆,提出一个问题:"合同第三方责任条款有没有漏洞?"图书馆员没有把整个馆藏都搬给你,而是凭借多年积累的检索经验,快速扫视书架,挑出三四本最相关的书,按原来的编号顺序排好,放在你面前。你只需要读这几本书,就能找到答案。
LongAttnComp的工作流程也分三步,与这个图书馆员的比喻高度契合。
第一步叫"评分"。整个超长文档被切割成固定大小的"文字块"(每块包含若干个词),然后一个经过专门训练的"评分器"对每个文字块打分,分数代表该文字块与你提出的问题的相关程度。这个评分器本质上是一个经过特殊改造的AI模型:它的主体(Llama-3.1-8B这个大模型的前13层)被"冻结"起来,不参与训练,只负责理解文字;在它上面额外加了一个可训练的"交叉注意力层"(可以理解为专门计算"问题"和"文字块"之间匹配程度的模块),这才是真正被训练的部分。整个评分器只有约0.5%的参数参与训练,非常轻量。
第二步叫"筛选"。评分完成后,所有文字块按分数从高到低排列,然后从最高分开始依次选取,直到满足停止条件为止。LongAttnComp在这里做了一个重要改进:引入了"token预算"机制。简单说,就是设定一个保留内容的字数上限(比如16000个词),选取文字块直到凑够这个上限,或者累计分数超过某个阈值(p=0.95)为止。这比原版AttnComp的方案更稳定,不会因为分数计算的小偏差导致保留内容过少。
第三步叫"生成"。筛选完成后,被保留的文字块会按照它们在原文中的先后顺序重新排列好(而不是按分数高低排列),形成一份"压缩版文档",交给真正负责回答问题的大模型(比如DeepSeek、GPT等)。目标大模型拿到这份压缩版文档后,只需要处理一万六千词而非十万词以上的内容,既节省了大量计算资源,又因为保留了最关键的段落,答题准确率得以维持甚至提升。
**四、四个关键改造:从"短文章专用"到"超长文本通用"**
原版AttnComp有几个明显的局限。LongAttnComp的团队针对这些局限,做出了四项具体改造。
第一项改造是"分块方式"的改变。原版AttnComp把每一篇文档当作一个整体来评分——但在真实世界里,很多长文本并不是由一篇篇独立文档拼起来的,而是一整段连续的代码、一整份合同、一整篇长报告。对这类内容,就没有"文档"可言了。LongAttnComp的解决方案是放弃"文档级别"的评分,改为固定大小的"词块级别"评分:把整篇文章切成固定长度的小块(比如每块1024个词),对每块分别打分。这不仅能处理没有清晰文档边界的长文本,还让"块的大小"成为一个可调节的参数——针对不同任务,可以选择不同的块大小,以达到最优效果。
第二项改造是"筛选机制"的升级。上文已提到"token预算"的引入,这里补充一个更细节的设计。在某些任务中,有用的信息非常集中,只需要很少的块就能覆盖全部关键内容;但在另一些任务中,有用的信息分散在全文各处,如果过早停止筛选,就会漏掉重要证据。为了应对后一种情况,LongAttnComp还支持一种"只看预算"的模式:完全不管累计分数是否已经够高,只管一直选取评分最高的块,直到凑满预算上限为止。这两种模式各有适用场景,研究团队在不同任务上分别测试了哪种模式更好。
第三项改造是"位置还原"。按分数排序筛选出来的块,并不是随机排列的,但它们的先后顺序被打乱了。读者都知道,一篇文章的段落顺序是有意义的,后面的段落往往依赖前面的铺垫。LongAttnComp在把筛选结果交给目标模型之前,会把各个块恢复到它们在原文中的顺序,保持文章的逻辑连贯性。
第四项改造是"问题解析器"的设计。评分器需要知道"你的问题是什么",才能计算文字块与问题的相关程度。原版AttnComp假设问题总是出现在固定位置,这在格式整齐的问答数据集上没问题,但在真实应用中,问题可能藏在提示词的任何位置,格式千变万化。LongAttnComp引入了一个简单但实用的方案:直接取输入内容的最后若干个词(比如最后128个词)作为"问题",不管格式如何。实验证明,这个粗暴但实用的方案,与精确解析问题边界的方案相比,准确率损失不到1个百分点,大大降低了部署难度。
**五、两阶段训练食谱:从"单科优秀"到"全科均衡"**
评分器的能力,很大程度上取决于它被如何训练。SambaNova团队为LongAttnComp设计了一套"两阶段训练方案",可以用培养一名全能型研究助理的过程来理解。
第一阶段,打基础。研究团队为评分器准备了3.2万条训练样本,来源是SQuAD(一个经典的英文问答数据集,每个问题只需要找到一篇文章中的一个事实)和HotpotQA(需要同时参考两篇文章才能回答的多跳问题数据集)。训练样本的构造方式模仿了一种叫"NIAH"("大海捞针")的经典测试:把真正有用的段落藏进一堆无关文章中,让评分器学会把"针"从"草堆"里找出来。训练完成后,评分器在代码调试和单针、多键检索任务上表现很好,但在需要跨多篇文档综合推理的任务上依然表现欠佳。
第二阶段,拓能力。基于第一阶段的模型继续训练,新加入了两类更难的数据:MuSiQue(需要2到4篇文章的多跳推理数据集)和2WikiMultiHopQA(跨维基百科多文章推理)。同时,第一阶段的数据也按比例混入,防止模型"忘记"之前学到的基础能力(这种方法叫"回放",就像复习旧知识防止遗忘)。
在第二阶段的训练中,团队还测试了一个有趣的设计选择:对于MuSiQue的多跳问题,训练时是否在问题里额外附上问题的分解步骤?比如,问题本身是"谁是X国总统的母亲的故乡市长?",附加版本则会额外提示"第一步:X国总统是谁?第二步:他的母亲是谁?第三步:她的故乡在哪里?第四步:那里的市长是谁?"。带分解步骤的版本叫"subq",不带的叫"nosubq"。两个版本都被训练出来并分别评测,研究结果表明两者各有胜负,没有绝对的赢家,但在某些任务上subq版本有一定优势,这个发现被研究团队视为一个值得未来深入探索的设计选项。
**六、实验结果:数字背后的故事**
研究团队在三个主流测试场景下评估了LongAttnComp的表现,目标模型涵盖了来自三个不同家族的四款主流大模型:DeepSeek-R1-0528、DeepSeek-V3.1、MiniMax-M2.5和GPT-OSS-120B。压缩器使用Llama-3.1-8B-Instruct的前13层作为骨干,训练完成后不针对任何目标模型做额外调整,直接通用。
在最重要的测试场景——InfiniteBench的代码调试任务上,测试文档平均长度约11.5万词,部分超过20万词。不做压缩直接送入DeepSeek-R1-0528时,准确率是74.37%。Speculative Prefill压缩后,准确率跌到62.44%,损失近12个百分点。LongAttnComp第一阶段模型在压缩至约1.6万词的前提下,反而把准确率推到了75.38%,比不压缩还要高出整整一个百分点。第二阶段的subq版本进一步提升到76.90%,是所有方案中最高的。
这个结果乍看令人费解——压缩后反而比不压缩更准确,原因是什么?原来,超长文档中存在大量无关代码和干扰信息,连大模型也会被这些噪音分散注意力。LongAttnComp把最关键的代码段提炼出来后,大模型反而能更专注地分析真正有问题的那段代码,就好像把一份杂乱无章的文件整理成一份清晰的摘要,反而更容易找到关键信息。
跨模型的泛化能力测试结果同样令人印象深刻。在DeepSeek-V3.1上,LongAttnComp第一阶段准确率达65.73%,相比不压缩的67.51%差距仅约2个百分点,而Speculative Prefill则跌到59.14%。在MiniMax-M2.5上,不压缩准确率83.76%,LongAttnComp第一阶段达81.22%,Speculative Prefill则只有57.10%,差距多达26个百分点。在GPT-OSS-120B上,不压缩86.00%,LongAttnComp第一阶段82.99%,Speculative Prefill仅52.28%,差距超过30个百分点。这意味着LongAttnComp这个用Llama模型训练出来的压缩器,能够跨家族地适配完全不同架构的大模型,而无需为每个目标模型单独重新训练。
在更广泛的多文档推理测试场景LongBench v2上,情况更能体现两阶段训练的价值。第一阶段模型的总体准确率只有41.7%,不仅低于不压缩的56.7%,甚至低于Speculative Prefill的46.3%。但第二阶段训练后,subq版本的总体准确率回升到48.9%,nosubq版本达到49.7%,双双超过Speculative Prefill,与截断版全文(51.1%)的差距缩小到1到2个百分点以内。其中,subq版本在"长文档"分类下的提升尤为显眼,从41.7%跃升至53.7%,提升幅度达12个百分点。
在合成检索测试集RULER上,LongAttnComp在"单针检索"任务(文档中藏着一条关键信息)上表现几乎完美:原始测试集中全文本准确率仅57.4%(说明AI确实会"迷失在中间"),LongAttnComp第一阶段模型则以极小的压缩文本(平均约2000词,远低于16000词的预算上限)达到了99.2%的准确率。在需要同时找到分布在多处的多条信息时,LongAttnComp也优于不压缩方案,只在信息极度分散的"多值"和"多查询"子任务上略有不足,与LongBench v2的规律一致。
**七、效率的另一面:用更少资源做更多事**
除了准确率,效率也是这套方案的重要优势。Speculative Prefill曾有报告显示,将12.8万词的文档压缩至1.6万词,首个词的生成时间(TTFT,time-to-first-token,类比于你点菜后等第一道菜上桌的时间)从46秒降至2.5秒,足足快了18倍多。
LongAttnComp的压缩器只用了Llama模型前13层(共32层),相当于用约40%的模型做评分工作。由此推算,LongAttnComp的压缩开销约为Speculative Prefill的三分之一,而在准确率上还更胜一筹。换句话说,这套方案不仅让大模型回答得更准,还让整个系统跑得更快、花费更少。
**八、边界与未来:研究团队的坦诚自我评估**
任何好的研究都需要诚实地面对自身的局限,LongAttnComp的研究团队也毫不回避地列出了几点不足。
训练数据的局限是最突出的问题。无论是第一阶段还是第二阶段,训练数据都来自合成构造的"大海捞针"格式,把真实问答数据集的段落藏进随机填充的干扰内容里。真实世界的长文档往往比这复杂得多,证据之间的关联更迂回,推理链条更多跳,这正是LongBench v2依然留有差距的根本原因。团队认为,引入更多自然采集的长文本训练数据是下一步的首要任务。
超参数对任务的依赖性也是一个实际使用中的麻烦。块的大小(代码调试用1024词/块,合成检索用256词/块,多文档推理用32词/块)、问题窗口大小(128到512词不等)、筛选模式(累计分数还是纯预算)都需要根据任务类型调整。在不知道任务类型的情况下,一套固定配置会让某些任务的表现大打折扣。研究团队认为,设计一个能自动感知任务类型并调整参数的自适应机制,是值得深入研究的方向。
此外,本研究所有实验都使用同一个压缩器骨干(Llama-3.1-8B-Instruct),更小或更大的骨干模型是否同样适用,尚未测试。所有目标模型也都通过SambaNova云端API调用,没有直接的硬件效率测量数据,真实的端到端速度提升只能依据理论估算。
说到底,LongAttnComp做的事情,和一位优秀的阅读助理没有太大区别:在你开口问问题之前,先把那本厚厚的报告快速翻一遍,标出最值得你关注的段落,按原来的顺序整齐摆好,再递到你手边。只不过,这位助理受过专门训练,速度极快,而且无论你问的是代码漏洞、历史事件还是多文档综合分析,都能胜任。
这项研究对普通人的意义在于:随着AI工具越来越多地进入日常工作,处理速度和成本将直接影响使用体验。LongAttnComp这类压缩技术,是让AI工具从"偶尔用用"变成"随时可用"的关键一环。当一个法律AI助理能在几秒钟内从一份两百页合同中找到关键条款,而不是花几十秒"慢慢读完";当一个代码审查AI能快速定位一个十万行项目中的bug,而不是被无关代码淹没——这些都离不开高效可靠的上下文压缩技术在背后支撑。
对这个领域感兴趣的读者,可以继续思考这样一个问题:压缩本身是否也会损失信息?研究团队的数据表明,在某些任务上压缩反而提升了准确率,这说明"更少但更精准"有时候胜过"更多但充满噪音"。这个发现对人类自己的阅读和学习方式,是否也有一些启发?想深入了解完整技术细节的读者,可通过arXiv:2606.01336查阅原论文。
Q&A
Q1:LongAttnComp和普通文章摘要有什么区别?
A:LongAttnComp不是写摘要,而是"抽取式压缩"——它直接从原文中挑选最相关的段落,保持原始文字不变,按原来的顺序拼在一起。摘要是用新的语言重新概括,可能会引入误差;LongAttnComp保留的是原文片段,目标大模型读到的是真实的原始内容,不存在摘要带来的二次理解误差。
Q2:LongAttnComp压缩后准确率为什么反而比不压缩更高?
A:原因在于超长文档中存在大量与问题无关的干扰内容,大模型在处理时同样会被这些内容分散注意力,导致对关键信息的关注度下降(研究者称之为"迷失在中间"现象)。LongAttnComp把无关内容过滤掉后,目标模型能更专注地处理真正相关的段落,反而做出更准确的判断。
Q3:LongAttnComp训练好的压缩器能用在任何大模型上吗?
A:基本可以,这正是这项研究的亮点之一。训练时使用的是Llama-3.1-8B模型,但实验证明,不经过任何针对性调整,同一个压缩器就能直接用于DeepSeek、MiniMax、GPT-OSS等完全不同家族的大模型,准确率损失很小。这意味着压缩器训练一次就能广泛适配多种目标模型,大大降低了实际部署成本。





京公网安备 11011402013531号