
这项由南方科技大学与微软联合开展的研究,以预印本形式于2026年4月发布,论文编号为arXiv:2604.17761,感兴趣的读者可通过该编号查询完整原文。研究团队来自南方科技大学计算机系以及微软研究院,两个团队的合作结合了学术界对可解释性方法的深入探索与工业界对大规模语言模型实际调试需求的深刻理解。
当你和一个大语言模型对话,它给出了一个错误答案,你会怎么想?大多数人的第一反应可能是"这个模型不够聪明",然后换一个问法重试。但研究团队问了一个更有意思的问题:这个错误到底是怎么发生的?模型在那一刻的脑子里发生了什么?
这个问题比看起来要困难得多。以前的研究者大多只是在模型外部观察:给它各种各样的题目,看它答对还是答错,统计错误率,分析哪类题更容易出错。这就像一位医生只通过观察病人的外部行为来判断病因,却从不做任何检查。这种方法能发现"什么出了错",但很难回答"为什么出错"。
研究团队决定做一件更难的事:打开模型内部,亲眼看看错误是如何一步步形成的。他们开发了一套工具,能够追踪模型在预测每一个词时,究竟是哪些输入信息影响了最终决策,影响程度有多大,以及这些影响是如何在模型的数十个内部层级之间传播的。更重要的是,他们把这套工具用在了真实的、复杂的任务上,而不是专门为测试设计的简单例题。
一、AI的"犯错时刻":从侦探视角看语言模型如何选词
要理解这项研究做了什么,先要理解大语言模型是怎么工作的。每当模型需要生成下一个词,它其实是在做一道选择题:从整个词汇表里,选出"在当前上下文之后最可能出现的词"。这个选择过程背后是一套复杂的数学运算,涉及模型内部几十层的处理流程。
研究团队把"找出错误原因"这件事重新定义为一道对比题。具体来说,他们关注的不是"模型选了什么词",而是"模型为什么偏偏选了这个错词,而不是那个正确词"。这就像审讯一个嫌疑人,不光要问"你去哪儿了",更要问"你为什么没去案发现场"——通过对比来锁定关键差异。
技术上,这种方法叫做"对比归因"。对于每一个失败案例,研究团队都会找出两个词:一个是模型实际选择的错误词(比如"逗号"这个符号),另一个是应该选择的正确词(比如"and"这个连词)。然后计算这两个词的"得分差值"——模型有多偏向于选错误答案,偏向程度有多强烈。
接下来是关键步骤:把这个"偏向错误答案的程度"追溯到输入文本的每一个词上。哪些输入词促使了这个错误决策?哪些词其实在试图纠正它?这就像在一起案件中,追查每个证人的证词对最终判决产生了多大影响,是推向错误方向还是指向真相。
实现这个追溯过程的数学工具,是一种叫做"层间相关性传播"(LRP)的方法,可以简单理解为:从结果倒推原因,一层一层往回追,看每一层的每一个计算节点对最终错误贡献了多少"功劳"。研究团队选择了这类方法中经过验证效果最好的变体——AttnLRP,因为它在忠实反映模型真实决策过程方面表现最为突出。
二、解剖长文本:一项让追溯变得可行的效率突破
在实际使用中,有一个严峻的工程挑战摆在面前。对于每一次模型决策,追溯过程需要知道每个内部节点如何影响了其他节点,节点数量巨大,而且随着输入文本越来越长,计算量会急剧膨胀。
打个比方,这就像要追查一个谣言在公司里的传播路径。如果公司只有10个人,你可以逐一询问每个人"你是从谁那听说的"。但如果公司有一万名员工,而且每个人都同时和几百个人沟通,这个任务就变得几乎不可能完成。
以前的方法处理这个问题时,需要对每一个中间节点单独进行一次反向计算,节点有多少就要计算多少次。对于有着数千个词的长文本,这意味着要进行数百万次独立计算,耗时极长,在实际应用中根本不现实。
研究团队想出了一个巧妙的解决方案,利用了现代GPU(图形处理单元)的一个特性:GPU特别擅长同时处理大量并行计算任务。他们把原本需要一个个依次完成的追溯任务打包成一个批次,让GPU同时处理所有任务。这就像把一万份调查问卷同时发出去,而不是挨个登门拜访——工作量没变,但时间大幅缩短。
具体效果有多好?从实验数据来看,在处理63个词的短文本时,将批处理大小从1提升到16,计算时间从0.26秒缩短到0.02秒,快了约13倍。即便是处理1500个词左右的较长文本,这种批处理方法也能保持在可接受的计算时间内。对于需要处理超过一万个词的复杂任务(比如多步骤代理任务),这种效率提升尤为关键。
通过这个技术突破,研究团队得以为每个失败案例构建出一张"归因图"——可以把它想象成一张显示谣言传播路径的关系网络图,图中每个节点代表模型某一层某个词的内部状态,每条边代表信息传递的方向和强度,正向边(红色)代表推向错误答案的力量,负向边(蓝色)代表试图阻止错误答案的力量。
三、研究的测试场地:四种真实任务,数百个失败案例
为了让研究结论具有实际意义,研究团队刻意选择了真实世界中广泛使用的基准测试,而非专为研究设计的简化版本。他们涵盖了四个完全不同的任务领域。
第一个是IFEval,测试模型是否能精确遵循各种细节指令,比如"不要使用逗号"、"用莎士比亚风格写作"。第二个是GAIA2,这是一个测试AI代理执行复杂多步骤任务的基准,涉及使用各种工具、处理动态环境,单次任务的上下文文本平均超过一万两千个词,是四个测试中最复杂的。第三个是MATH,专门测试数学推理能力,涵盖代数、几何、概率等各类题目。第四个是EvalPlus,专门测试代码生成能力。
研究团队选择了Qwen3系列开源模型作为主要实验对象,并专门在最小的0.6B版本上收集了大量失败案例,这样更容易观察到模型的局限性。此外,他们还使用了Olmo-3-7B-Think模型系列的多个训练检查点,以便研究模型在训练过程中的变化规律。
从每个任务中收集的失败案例来看,IFEval收集了265个,GAIA2收集了300个,MATH收集了91个,EvalPlus收集了270个。但并非所有失败案例都能直接进行对比分析——研究团队制定了严格的筛选标准。
筛选过程分两步:第一步是找出"犯错的那个词",即模型生成的第一个偏离正确轨道的词。这个定位工作本身就不容易,研究团队动用了四个独立的大语言模型分别给出判断,然后再由人工标注者验证结果。四个模型在放宽3个词的容差范围内,一致性达到了86%以上,人工验证通过率同样超过86%,说明这个定位过程相当可靠。
第二步是找出对应的"正确替代词",而且这个替代词必须满足一个苛刻条件:把它替换进去之后,模型必须真的能走向正确答案,而不仅仅是看起来更好。这个"严格恢复标准"导致大量案例被过滤掉——IFEval约有67%的案例因为找不到满足条件的替代词而被排除。
经过所有筛选后,最终用于深入分析的"干净案例"占比分别为:IFEval 20.8%,GAIA2 17.0%,MATH 40.7%,EvalPlus 19.6%。研究团队还额外要求两个词之间的分数差距超过1分(相当于模型选择错误答案的概率至少是正确答案的2.7倍),以确保分析的是真实的、有意义的偏向,而非随机噪声。
四、解剖结果:错误的三种面目
拿到这些高质量的对比案例后,研究团队对每一个案例进行了详细的归因分析,并将结果分成三类。
第一类称为"输入归因直接可见",意思是只要看一眼输入文本的重要性热力图,错误原因就一目了然。热力图会把每个词染上颜色,红色代表这个词在推动错误决策,蓝色代表这个词在试图阻止错误决策,颜色越深影响越强。对于IFEval、GAIA2和EvalPlus这三个任务,大多数失败案例都属于这一类。
第二类称为"输入归因看不出,但归因图可以揭示"。这类案例中,光看输入文本的颜色分布说明不了什么问题,但当追踪信息在模型各层之间如何传播的完整路径图时,问题才浮出水面。
第三类称为"两种方法都无法解释"。这类案例主要集中在MATH任务中,说明当前方法对数学推理类错误的解释力度还有明显不足。原因在于,数学推理中的错误往往需要追踪到模型内部非常具体的计算神经元层面,而研究团队目前的方法在这个精细程度上还不够充分。
在可以解释的案例中,研究团队进一步总结出两种主要的错误模式。第一种叫"低估关键信息",模型对于原本应当重点关注的输入词给予了不足够的重视。以一个IFEval案例为例,用户要求"不要使用逗号",但0.6B版本的模型对"commas"(逗号)这个关键词几乎没有赋予任何抑制权重,最终还是输出了逗号。而换成4B版本的模型,对同一个词赋予了明显的负向权重,最终正确遵守了指令。
第二种叫"高估无关信息",模型把注意力过度集中在了与正确答案无关甚至有误导性的词上。在一个EvalPlus代码生成案例中,0.6B版本的模型对函数定义中一个叫"(a"的词赋予了极高权重,这个词对于正确完成任务根本没有帮助,而更大版本的8B模型对同一个词的权重则低得多。
在GAIA2和EvalPlus中,这两种错误模式经常同时出现,即模型同时高估了无关词又低估了关键词。而在MATH中,几乎清一色是"低估关键信息",很少见到高估无关信息的情况。四个任务中,"低估关键信息"始终是最主要的错误模式。
五、一个需要"看里面才能明白"的案例
研究团队展示了一个格外有说服力的例子,能够清楚地说明为什么有时候光看输入文本的热力图还不够。
这个案例来自IFEval任务。用户要求模型"先原封不动地重复一遍你的请求,然后再给出回答,开头使用双尖括号格式"。模型已经原封不动地重复了请求,按理说下一个词应该是"《"(双尖括号的开头),但它却错误地输出了"First"(首先)。
从输入文本热力图来看,"《"和"brackets"(括号)这两个词确实显示出了一定的蓝色(抑制错误方向),而"First"这个词显示出强烈的红色(推动错误方向)。但奇怪的是,分数差值高达5.25,模型以极大的信心选择了错误答案,仅凭热力图很难解释这个强烈的偏向从何而来。
研究团队于是构建了完整的归因图,追踪信息在模型28个层级之间的传播路径。追踪结果揭示了一个有趣的内部博弈过程:在早期层级,"First"和"《"两个词竞争激烈,对最终预测位置的影响势均力敌。到了第16层,"《"突然获得了大量来自"brackets such as"这些上下文词的支持,其影响力一度超过了"First"。然而,在随后的第18、20、23层,"First"接连向最终预测位置输送了几波强大的正向影响,而"《"只在第22、24层有两次较大贡献。最终,"First"的累计影响力总量超过了"《",导致了错误结果。
这个案例清楚地说明:有些错误不是由某个特定的输入词"一锤定音"造成的,而是模型内部各层之间复杂的动态博弈的结果。输入热力图捕捉不到这种层间动态,但归因图可以。
六、更大的模型能自我纠正吗?归因分析的扩展用法
研究做到这里,有一个自然而然的延伸问题:当我们用更大的模型来处理这些失败案例时,会发生什么?大模型真的是以正确的方式变好的,还是只是碰巧答对了?
研究团队把Qwen3-0.6B的失败案例原封不动地交给了1.7B和4B版本处理,并比较三个版本对同样错误词和正确词的分数差值。从散点图来看,绝大多数数据点都落在对角线以下,意味着更大的模型普遍给错误词打出了更低的分,给正确词打出了更高的分——换句话说,更大的模型倾向于纠正小模型的错误。
但光有这个行为层面的结论还不够。研究团队进一步对三个版本的模型做了输入归因分析,将输入文本划分为三个区域:指令区(包含约束性要求,如"不要使用逗号"这类规定)、问题区(任务描述本身)和回答区(模型已经生成的内容)。
结果相当有说服力。随着模型规模从0.6B增长到1.7B再到4B,三个区域的归因分数整体上都在向更负的方向移动,说明更大的模型整体上更倾向于抑制错误词。特别值得注意的是,指令区在0.6B版本中几乎是中性的(即模型几乎没有把指令要求当回事),但在1.7B和4B版本中变成了明显的负值,说明更大的模型确实更认真地在处理指令约束。
更精彩的是,当研究团队把"被纠正的案例"和"未被纠正的案例"分开来看,两类案例呈现出截然不同的归因模式。对于被纠正的案例,三个区域的归因分数全部变负,说明纠正发生时,模型在输入文本的各个层面都做出了系统性的调整。而对于未被纠正的案例,大小模型之间的归因分布几乎没有区别——这说明那些仍然答错的案例,并不是因为更大的模型还没来得及纠正,而是因为在这些案例上,大小模型表现出了相似的处理方式,模型规模的扩大没有带来实质性的内部改变。
七、训练过程的指纹:在学习路上追踪进步
研究的最后一个实验把时间维度引入了分析。这次,研究团队不是比较不同大小的模型,而是比较同一个模型在不同训练阶段的状态。
实验对象是Olmo-3-7B-Think模型,这个模型的训练过程被细分为多个阶段:首先是监督微调(SFT,相当于"跟着例题学"的阶段),包含了从第1000步到第43000步的多个检查点;然后是直接偏好优化(DPO,相当于"学会判断哪种回答更好"的阶段);最后是强化学习阶段(RLVR,相当于"通过反复做题来强化能力"的阶段)。
研究团队在最早的SFT_1000检查点上收集了IFEval的失败案例,提取了对应的对比词对,然后把同样的对比任务在所有后续检查点上重新运行,观察分数差值如何随训练进展而变化。
从图表上看,随着训练步骤增加,分数差值整体呈下降趋势,说明模型越来越不偏向于选择错误答案——虽然过程不是完全单调的,有时候会有小幅波动,但总体趋势清晰。
分区域的归因分析则揭示了更细腻的训练动态。训练初期(SFT_1000到SFT_2000之间)发生了最大幅度的变化,主要体现在问题区和回答区的归因分数急剧下降。这表明早期监督微调的主要作用是让模型学会更认真地对待任务本身的语义要求,同时减少对已经生成内容的简单延续。
训练中期(SFT_8000到SFT_10000)又出现了一次明显的变化。而指令区(也就是约束性要求部分)的变化相对缓慢,在整个训练过程中呈稳步下降。
DPO阶段的分析结果也很有趣——对比SFT末期和DPO完成后的状态,三个区域的归因分数都进一步向负值移动,说明偏好优化训练确实在已有基础上进一步强化了模型对指令约束的关注。
相比之下,RLVR阶段带来的归因变化幅度较小。研究团队分析了两个可能的原因:一方面,IFEval测试的指令遵循能力本来就是SFT更直接针对的目标,而RLVR主要强化多步骤推理;另一方面,到了RLVR阶段,模型在IFEval上的很多失败模式已经被SFT和DPO修正得差不多了,剩下的空间本来就不大。
八、这套工具能用来做什么?三个实际应用方向
研究团队在论文结尾专门讨论了这套工具的实际价值,归纳出了三个比较具体的应用方向。
第一个应用方向是针对性的提示优化。实验表明,平均只需遮蔽2个左右关键的高影响词,就能让模型从错误答案翻转到正确答案。这个发现有很强的实用价值:与其大面积修改提示词,不如先用归因热力图定位到最关键的问题词,然后精准修改那几个词,既高效又可解释。
第二个应用方向是训练过程中的监控诊断。研究结果显示,归因模式的变化与模型性能的改善高度吻合,这意味着归因分析可以作为一种监控工具,在模型训练过程中实时检测模型是否在以正确的方式学习。如果归因模式在训练过程中朝着错误方向演变(比如模型开始高度依赖不相关词),这就是一个早期预警信号,提示训练可能出现了偏差。
第三个应用方向是为对齐训练提供词级别的重要性信号。目前主流的对齐训练方法(比如DPO)在处理模型回答时,把所有词视为同等重要。但归因分数天然地告诉我们,哪些词是真正导致错误的关键词,哪些词只是无关紧要的填充。把归因分数作为权重融入训练,理论上能让模型更集中地学习真正重要的地方,提高训练效率和效果。近期已有独立研究团队沿着类似思路探索了基于词重要性的偏好优化,初步结果显示确实有助于提升对齐训练的稳定性。
归根结底,这套方法最重要的价值或许不在于某一个具体的发现,而在于提供了一种新的"提问方式"。以前我们只能问"模型答错了吗",现在我们还能问"模型答错是因为没看到关键信息,还是因为被无关信息带偏了,还是因为内部某几层的计算走了弯路"。这三种错误有着完全不同的成因,自然也需要完全不同的解决策略。
不过,研究团队对这套方法的局限性也保持了清醒。对于数学推理类错误,当前方法的解释力明显不足,因为数学计算涉及的错误往往需要追踪到神经元级别,而现有的归因图还停留在较粗粒度的隐藏状态层面。此外,目前的分析是在单个词层面展开的,但很多真实世界的错误是由一系列步骤累积而成的,单个词的归因捕捉不到这种跨步骤的累积效应。如何把这套方法扩展到短语级别或推理步骤级别,是研究团队明确提出的未来方向。
对于想深入了解这项研究所有技术细节的读者,包括批处理归因图构建的完整算法、图剪枝策略、标注一致性统计以及所有基准测试的完整数据,均可通过arXiv编号2604.17761查阅原始论文。
Q&A
Q1:"对比归因"方法是怎么判断AI犯错原因的?
A:对比归因方法会找出模型实际选择的错误词和应该选择的正确词,计算两者的分数差值,然后把这个差值反向追踪到输入文本的每个词上,判断哪些词推动了错误决策、哪些词试图纠正它。最终形成一张热力图,红色词代表"帮凶",蓝色词代表"证人",让错误原因直观可见。
Q2:大语言模型规模越大就真的越好吗?归因分析有没有发现例外?
A:从这项研究的结果来看,更大的模型确实普遍能纠正较小模型的错误,而且纠正是通过系统性地调整对输入各区域信息的权重来实现的,并非偶然。但也存在例外——有一部分案例,大模型和小模型的内部归因分布几乎一模一样,说明对这些案例来说,单纯靠扩大规模解决不了问题,需要其他干预手段。
Q3:这套方法对普通用户优化AI提示词有帮助吗?
A:理论上有帮助。研究发现,平均只需修改约两个关键的高影响输入词,就能把模型从错误答案翻转到正确答案。这意味着用归因热力图定位问题词后,可以对提示词进行精准修改,效率远高于大面积重写提示词。不过目前这套工具还需要一定的技术门槛才能使用,尚未转化为普通用户可直接操作的产品形态。