
你有没有遇到过这种情况:跟同事聊完一个数学题,马上切换话题聊另一个完全无关的问题,结果发现自己脑子还转不过弯来,答题速度反而变慢了?
这个现象放在AI身上,居然也真实存在。一群来自中国人民大学和意大利摩德纳-雷焦艾米利亚大学的研究者,盯着这个看起来有点反常识的问题死磕了很久,最后写出了一篇挺有意思的论文。
**大语言模型**
大语言模型:简称LLM,就是我们常说的ChatGPT、通义千问这类能对话、能推理的AI系统。
在实际使用中很少只问一个问题。你跟它聊完数学题,接着问个物理题,再问个常识问题,整个对话窗口里堆满了之前的提问和回答。这些历史记录对AI来说不只是摆设,因为处理这段文字的时候,AI内部确实发生了一连串计算,留下了痕迹。
问题来了:这些痕迹,对解决新问题到底是帮忙还是添乱?
一个反直觉的发现:历史记录有时帮倒忙
按常理想,AI保留对话历史应该是好事,毕竟信息越多越好判断,这是我们的默认预期。研究者却发现,事情没这么简单。
他们用Qwen3-4B Instruct模型跑了MATH-500这个数学测试集,发现了一件挺让人意外的事:如果把同一道题放在对话的第一轮,正确率是95%;但如果把这道题放在第四轮,前面已经堆了三道无关的题和回答,正确率反而掉到了93.75%。
**同一道题,只是因为前面聊了别的内容,AI答对的概率都会变化。**
这还不是最奇怪的。研究者换了个模型,用Qwen3.5-4B再测GPQA-Diamond这个科学推理测试集,结果完全反过来了:第一轮正确率63.64%,到第二、三、四轮却稳定涨到了75.25%,整整高出11个百分点。
同样是"带着历史聊天",在一个模型一个任务上是拖累,换个模型换个任务却成了助力。这说明AI利用历史信息这件事,远不是"有用"或"没用"这么简单的二元判断,它更像是一个会随着具体场景变脸的隐藏变量。
这种反复无常,恰好就是这篇论文真正想啃的硬骨头:历史计算到底在AI脑子里干了什么,能不能让它变得可控,只帮忙不添乱?
历史记录是怎么"渗透"进新问题的
要回答这个问题,研究者先得搞清楚历史对话在AI内部到底留下了什么样的痕迹。
他们设计了一个很巧妙的实验,叫做交叉历史回放。简单说就是拿同一道当前问题,搭配不同的历史对话,看AI处理这道题时内部状态会怎么变化。
**注意力机制**
注意力机制:AI处理文字时用来判断"该重点看哪部分内容"的核心计算方式,每个词都会给前面出现过的词分配一个关注权重。
结果发现,AI在处理新问题的时候,确实会把一部分注意力分给前面的回答内容。在模型的第3层,AI有将近40%的注意力都落在了之前助手给出的答案上;到了第19层,这个比例虽然降到了12%左右,但依然没有完全消失。这说明历史内容不是读完就扔的,它会一路渗透到模型比较深的计算层级里。
研究者还发现一个更微妙的现象。他们把"历史造成的状态变化"拆解成三部分:一部分是跟当前问题本身有关的变化,一部分是跟具体用了哪段历史有关的变化,剩下的则是两者"搭配在一起"才会产生的独特反应,论文里管这叫交互响应。
这个交互响应虽然占总变化量的比例很小,大约只有0.7%,但它有个很稳定的特性:同一道题,换成两段完全不同的历史,这道题在交互响应空间里的"邻居"(也就是跟它最相似的其他题目)有将近一半是重合的。而如果打乱题目和历史的对应关系做对照,重合率只有12%左右。
这就好比你去不同的健身房锻炼,教练不一样、器材不一样,但你身体对运动产生的那套反应模式,其实有某种稳定的底层规律在起作用。换句话说,历史对当前问题造成的影响,不是随机噪声,而是带着某种"问题专属"的固定模式,这个模式跟具体是哪段历史没太大关系,但跟具体是哪道题密切相关。
STAIR:给AI装一个"历史阅读"的方向盘
搞清楚历史痕迹的存在方式之后,研究者就动手设计了这篇论文的核心方案,叫做STAIR。
**STAIR**
STAIR:全称Stale-Token Attention for Inter-query Reuse(陈旧词元跨问题注意力复用),一种让AI学会如何读取历史计算痕迹的轻量方法。
它的设计思路其实挺朴素的。既然历史计算留下的痕迹(专业说法叫键值对,简称K/V)本身是有用信息,那就把它单独存起来,形成一个专门的"历史银行",这个银行里的内容只读不改,不会被后续对话覆盖。
**键值对**
键值对:K/V,AI在处理每个词的时候都会生成一组"钥匙"(key)和"内容"(value),后面的词想参考前面的信息,就靠钥匙去匹配,匹配上了就取出对应的内容。
有了这个银行,接下来的关键问题是:当前问题应该怎么去"读"这个银行?读多少、读哪部分,这才是真正决定历史信息是帮忙还是添乱的开关。STAIR的做法是,给每个查询(也就是当前问题生成的"钥匙请求")学一个方向,通过一种叫豪斯霍尔德反射的数学操作,把原始查询沿着这个学到的方向翻转一下,生成一个新的查询。
**豪斯霍尔德反射**
豪斯霍尔德反射:一种几何变换,效果有点像照镜子,能把一个向量沿着某条轴线翻转过去,同时保持向量的长度不变。
原始查询和翻转后的查询,都去读同一个历史银行,得到两份不同的"读取结果"。STAIR把两者相减,得到一个差值,这个差值就代表"换个角度读历史"到底改变了什么。这个差值经过原模型里本来就有的输出投影层,加回到正常的注意力计算结果里,模型的主体权重完全不动,只有这12,288个控制翻转方向的参数是可以训练的。
这整套设计只在处理新问题的最开始阶段(也就是提示词处理阶段,论文里叫prefill)起作用,一旦开始正式生成答案,这个额外的读取通路就自动关闭了,后续生成完全走模型原本的路径。
这个设计思路很像给一辆已经造好、发动机完全不能改的汽车加装一个GPS导航模块。汽车本身的引擎、变速箱都不动,但导航会根据路况告诉司机往哪边打方向盘,走哪条岔路更快。如果没有这个导航,司机还是能开车,但遇到复杂路口大概率会凭经验乱转,有时候蒙对了,更多时候绕远路甚至开错方向,这正好对应了前面提到的"历史记录时好时坏"的现象。STAIR要做的,就是在不拆发动机的前提下,学会什么时候该往哪边看历史这条"岔路"。
训练过程也很克制。研究者让模型自己生成的真实答案去teacher forcing(也就是把标准答案文本喂回去,强制模型按这个路径走一遍),一边保证新训练出来的输出跟原模型的输出分布尽量接近,一边让这12,288个参数慢慢学会怎么调整查询方向。这种设计的好处是,哪怕训练数据有限,模型也不容易"学歪",毕竟它被反复提醒不能偏离原模型太远。
实验结果:提升是真实的,但不是万能药
数据说话最有说服力。研究者在三个不同规模的通义千问模型上做了测试,涵盖MATH-500、AIME 2025、AMC23和GPQA-Diamond四个基准。
最亮眼的结果出现在AIME 2025这个高难度数学竞赛测试集上。
| 模型 | 条件 | 平均正确率 | 相对提升 |
|---|---|---|---|
| Qwen3.5-4B | 原始模型(带历史) | 40.56% | 基准 |
| Qwen3.5-4B | **STAIR** | **52.22%** | **+11.67个百分点** |
| Qwen3.5-9B | 原始模型(带历史) | 43.33% | 基准 |
| Qwen3.5-9B | **STAIR** | **49.44%** | **+6.11个百分点** |
| Qwen3-4B Instruct | 原始模型(带历史) | 34.44% | 基准 |
| Qwen3-4B Instruct | **STAIR** | **38.06%** | **+3.61个百分点** |
11.67个百分点是什么概念?意味着原来每10道AIME题目,模型要错掉接近6道,用了STAIR之后,错的数量少了超过一道。对于AIME这种难度极高的竞赛题,这个提升幅度相当可观。
在MATH-500上,两个Qwen3.5模型用了STAIR之后,正确率甚至超过了完全没有历史、从零开始答题的Vanilla基准。这说明STAIR不只是"减少历史带来的伤害",在某些场景下,它真的能让历史信息反过来成为助力。
不过研究者也很诚实地指出了STAIR的局限。在GPQA-Diamond这个科学推理测试集上,两个Qwen3.5模型用了STAIR之后,提升效果并不明显,甚至不如原始带历史的模型。原因很可能是STAIR的训练数据全是数学题,学到的"历史阅读方向"可能更适配数学场景的查询-历史关系,碰到科学推理这种不同性质的任务,这套方向盘就没那么灵光了。
研究者还做了一系列对照实验来验证STAIR到底是不是"真的学到了东西",而不是侥幸凑巧。他们试过用随机方向替代学到的翻转方向,结果正确率只能到37.22%;他们还试过把历史银行里的内容和它对应的钥匙打乱配对,结果正确率掉到33.06%。只有保持完整的学习结果和完整的历史银行,正确率才能冲到48.33%。这组对比说明,STAIR学到的不是随便一个方向就能凑效的,它确实在学习一种有意义的"历史阅读策略"。
还有个挺有说服力的对比,是跟业界常用的轻量微调方法LoRA比。
**LoRA**
LoRA:低秩适配,一种常见的大模型微调方法,通过给模型添加少量额外的"旁路"参数来调整模型行为,不用改动原模型的全部权重。
在Qwen3-4B Instruct上,LoRA用了412万多个可训练参数,STAIR只用了1.2万多个,参数量差了336倍,但STAIR依然带来了3.61个百分点的提升。更有意思的是,当研究者把STAIR和LoRA联合训练,效果比单独用LoRA还要再提升3.89个百分点。这说明STAIR解决的问题和LoRA解决的问题不完全重叠,两者可以互补,一个负责调整模型本身怎么理解新内容,一个负责调整模型怎么读历史。
历史记录存多久、读多深,这是个成本问题
STAIR并不是存得越多就越好。研究者做了一个限制历史银行长度的实验,只让STAIR读取历史银行里前面一部分的内容。
结果显示,读前2048个词元的历史,正确率是35%;读前8192个,正确率涨到43.33%;读前32768个,反而降到了39.17%;而读取全部历史(这个场景下中位数长度约为6.3万个词元),正确率最高,达到48.33%。这个曲线不是单调上升的,说明历史信息的价值分布并不均匀,读太少漏掉了关键内容,读到某个中间长度反而没有读全更好,这背后可能跟历史内容的具体结构有关,值得进一步研究。
当然,读取更多历史不是没有代价的。研究者在A800显卡上测了一下,开启完整历史银行读取之后,相比完全不用STAIR的原始模型,每次处理新问题会多花大约0.81秒,显存峰值会多占用6.6GB左右。这个代价对于追求极致响应速度的在线应用来说,可能需要权衡。
这让我想起图书馆查资料这件事。如果你每次写论文都要把图书馆所有相关的旧书全翻一遍,确实不会漏掉任何有用信息,但你翻书花的时间可能比写论文本身还长。如果你完全不查旧书,论文质量又会打折扣。真正高效的做法是知道哪几本书最相关,直接去翻那几本,这正是STAIR想做的事情,只不过它翻书的策略是自动学出来的,而不是人工规定的。
这个思路从哪儿来,又往哪儿去
这篇论文并不是凭空冒出来的,它站在了好几条已有研究脉络的交汇点上。
早在2019年,Transformer-XL就提出了用循环机制让模型记住更长的上下文;同年还有Memorizing Transformers,通过近似最近邻搜索去检索过去存储的键值对;后来的StreamingLLM则专注于让模型在持续对话中保留开头的几个锚点词元和最近的一段内容,防止长对话把显存撑爆。这些工作共同的特点,是研究怎么让模型"记得住"更长的历史,但它们大多默认历史信息是单纯有益的,很少去深究历史在任务切换之后到底是帮忙还是添乱。
另一条脉络是Prompt Cache和CacheBlend这类工作,它们关心的是怎么复用提示词里重复出现的文本片段,省去重复计算的开销,核心目标是加速,而不是提升准确率。
STAIR跟这些前辈最大的不同,在于它第一次把"历史计算到底该不该用、该怎么用"当成一个需要专门学习的问题,而不是简单地全部保留或者全部丢弃。它借鉴了Differential Transformer(2025年提出的一种通过两个注意力图相减来提纯信号的方法)的差分思路,但应用场景完全不同,Differential Transformer关注的是单次推理内部的注意力噪声,STAIR关注的是跨越多轮对话的历史复用。
论文作者也坦诚地指出了几个还没解决的问题。比如STAIR目前只在四轮对话的场景里验证过,如果对话轮数继续增加,历史银行会越存越大,读取成本也会跟着涨,怎么做选择性保留,而不是什么都往银行里塞,这是一个开放问题。另外,STAIR的反射方向目前只在数学题上训练过,能不能通过更丰富的训练数据,让它学会适配更广泛的任务类型,这也值得继续挖。
写在后面
读完这篇论文,最让我意外的其实不是STAIR这个方法本身,而是那个最初的现象:同一道题,换个历史对话背景,AI答对的概率真的会变。这件事的反直觉程度,其实超过了大部分人对AI的默认认知,我们习惯把AI当成一个无状态的计算器,输入一样就该输出一样,但显然事情没这么简单,AI在处理连续对话的时候,确实带着"情绪包袱",只是这个包袱不是人类意义上的情绪,而是注意力机制留下的计算痕迹。
还有一个细节值得单独说一下。论文里提到,把同一道题的"交互响应"换到不同历史下去找最相似的邻居题目,重合率能到48%左右,远高于打乱对照组的12%。这说明AI对一道题的"理解方式"受历史影响时,并不是乱飘的,而是有一种相对稳定的偏移模式。这让我联想到人在不同情境下做同一件事,哪怕心情、环境变了,个人风格和习惯性思路往往还是认得出来的。AI的这种"风格一致性"是不是也在某种程度上反映了模型内部某种稳定的表征结构,这个问题我觉得比STAIR本身的工程改进更值得深挖。
一个AI模型在和你聊了三个完全不相关的话题之后,回答第四个问题时,它的"脑子"里到底还装着什么,这件事或许比我们想象的要复杂得多。
Q&A
Q1:STAIR是什么?
A:STAIR是中国人民大学等机构研究者提出的一种方法,全称Stale-Token Attention for Inter-query Reuse,它让大语言模型学会更好地利用对话历史中留下的计算痕迹,只需训练1.2万多个参数,无需改动模型主体权重。
Q2:为什么AI带着对话历史回答新问题,正确率有时会下降?
A:研究发现AI处理新问题时会把部分注意力分配给历史对话内容,这种影响因模型和任务而异,在某些场景下会干扰当前问题的判断,导致正确率比完全独立回答时更低。
Q3:STAIR和LoRA微调方法有什么区别?
A:LoRA通过给模型添加较多额外参数来调整整体行为,STAIR只用1.2万多个参数专门学习如何读取历史计算痕迹,两者可以联合使用,效果比单独使用LoRA更好。
好文章,需要你的鼓励
GeoVerse融合几何潜在扩散模型与Wan2.2视频生成先验,并引入全局空间记忆机制,实现了跨视角一致、生成质量高且推理速度快的新视角合成,在多个数据集上大幅超越现有方法GLD。
本文解读TT-VidT,一种通过分离外观锚点与动作令牌、结合Diff Compression训练目标的视频自监督方法。在24种架构目标组合的受控实验中,仅TT3D与Diff Compression搭配才能进入强动作敏感区,且计算量比同类方法降低近一半。
Q&A Q1:Imprint Reader是什么? A:Imprint Reader是上海人工智能实验室团队开发的模型,通过SMaRT训练方法学会读取另一个模型冻结的权重更新,把参数层面的变化翻译成自然语言描述,判断这次更新到底注入了什么知识或诱导了什么行为习惯。 Q2:MetaEdit能做什么? A:MetaEdit能把Reader对目标行为的梯度信号迁移到原始模型上,不需要任何目标任务的训练数据,只用一句行为描述就能定向调整模型参数,已经在安全性拒绝率调节、数学推理风格转变和工具调用能力提升上验证过效果。 Q3:Imprint Reader读权重更新的准确率高吗? A:目前还不高,知识类目标的Pass@100只有2%,行为类目标是16%,说明自由生成描述的可靠性有限,但相比原始模型完全答不出来的0%基线,已经证明了权重更新的自然语言读取是可行的。
统一多模态模型能看也能画,理论上该会自我修正。本论文提出UMM-Reflection,用整条轨迹的强化学习联合训练诊断和修图能力,GenEval提升12分,且迁移到多个未训练基准,揭示RL提升的是选择可靠性而非新能力。