
你有没有想过这样一个问题:当一个大语言模型解题解错了,它到底是哪一步"想歪了"?
如果你去问 ChatGPT 或者其他大模型,它会写出一长串思维链,一步一步推理,最后给出答案。这套"思维链"(Chain-of-Thought,简称 CoT,一种让模型把中间推理过程用文字写出来的提示方法)确实好用,谷歌的研究者在 2022 年就发现,只要让模型"一步一步想",很多原本做不对的数学题就能做对了。
但这里有个问题很少有人细想:模型写出来的那些文字,真的是它"脑子里"发生的事情吗?
还是说,那些文字只是一个门面,模型内部真正的计算过程,其实完全是另一回事?
这篇来自北京通用人工智能研究院(BIGAI)等机构的论文,就是冲着这个问题去的。他们不满足于让模型"多写点字"来提升推理能力,而是想办法直接钻进模型内部,去优化那些看不见摸不着的隐藏状态,也就是所谓的"潜在推理"(latent reasoning,用连续的数值向量而不是文字token来承载推理过程的方法)。
这事儿听起来有点玄乎,但请耐心往下看,因为里面藏着一个非常实际的工程难题,以及一个挺巧妙的解法。
问题出在哪:测试时优化的"传话游戏"
先说说背景。
近两年出现了一类新方法,叫"测试时优化"(Test-Time Optimization),核心思路是:模型参数不用动,但在回答具体某个问题的时候,允许模型在推理阶段做一些"临时调整",等回答完这道题,调整的痕迹就清空,下一题重新开始。
> 测试时优化:模型权重全程冻结,只在推理阶段针对当前这道题做局部调整,目的是不用重新训练就能提升单次回答质量。
这类方法里比较有代表性的是 LatentSeek(2025 年提出),它的做法是这样的:先给模型一小段可以调节的"潜在变量",把这些变量解码成一小段文字前缀,然后让模型接着往下生成完整答案,用一个奖励模型给这个答案打分,再根据分数去调整那些潜在变量,如此反复迭代,直到答案被判定为正确。
这个思路本身没毛病,问题出在"怎么把奖励信号传回潜在变量"这一步。
LatentSeek 的做法是:潜在变量先被解码成具体的词(token),然后模型基于这些词继续往后生成。等生成完了,打分反馈要往回传的时候,只能沿着这几个被解码出来的词的对数概率往回传,因为潜在变量和后面几百个token之间,唯一的桥梁就是这几个初始词。
这就好比你在公司里想给项目组的核心决策者提意见,但组织架构规定你只能把意见写在一张纸条上,塞给刚入职的实习生,实习生再凭自己的理解转述给决策者。如果最后项目效果不好,你想复盘"到底是哪个环节出了问题",你会发现根本没法追溯,因为你的原始意见早就在实习生那层被压缩、扭曲、甚至丢失了信息。你能做的调整,也只能是改写你写给实习生的纸条内容,至于实习生怎么理解、决策者最终怎么执行,你完全够不着。
如果不解决这个问题会怎样?
论文里指出了两个具体后果:一是"间接优化",解码这个动作在潜在变量和它实际产生的效果之间造出了一个信息瓶颈,优化信号变得又绕又混;二是"潜在动态不透明",你压根说不清楚某个具体的潜在变量到底是怎么影响后面推理的,这对于想理解和调试模型行为的人来说,几乎是一个黑箱中的黑箱。
GradCuit 的解法:让梯度直接走"电路"
论文提出的方法叫 GradCuit(gradient through circuit,意为"通过电路的梯度"),核心改动其实说起来很简洁:**别把潜在变量放在模型输出层去解码成词,而是直接把它插进 Transformer 内部某一层的隐藏状态空间里。**
这句话信息量很大,拆开讲。
> Transformer:目前几乎所有主流大语言模型都基于的神经网络架构,核心机制是自注意力(self-attention),让序列里的每个位置都能"看到"并加权关注其他位置的信息。
> 自注意力(Self-Attention):Transformer 内部让每个 token 都能计算出"我应该多大程度关注前面每一个 token"的机制,是模型理解上下文关系的核心引擎。
具体来说,假设模型总共有 M 层(比如 LLaMA-3.2-3B 是 28 层),研究者选定某一层,比如第 14 层,作为"手术位置"。他们先把提示词(prompt)过一遍模型的前 14 层,拿到对应的隐藏表示;再插入一组可优化的潜在状态,把它们和提示词的隐藏表示、以及后续生成词的隐藏表示,一起拼接成一个序列,送进剩下的 14 层继续计算,最后得到下一个词的概率分布。
这样一改,会发生一件很关键的事:因为自注意力的机制是"任何一个位置都能看到它前面所有位置",所以后面生成的每一个词,都能直接"注意"到前面插入的所有潜在状态。这意味着,从任何一个生成词的对数概率往回求梯度,都可以一路顺着自注意力连接,直接传到每一个潜在变量身上,中间不再需要经过解码这道关卡。
这就好比原本那个"纸条传实习生"的场景,现在变成了什么?变成了你直接坐进了会议室,决策者做的每一个后续决定,你都能实时看到、实时插话调整,不需要通过任何中间人转述。如果决策最后出了问题,你能精确知道是哪句话的哪个措辞导致了偏差,因为信息流通的路径是全程可见、可微分的。
论文里管这个设计思路叫"电路"(circuit),这个说法其实借用了 Anthropic 团队 2021 年提出的"Transformer 电路"(Transformer Circuits)视角,把自注意力网络看成一张由交互构成的计算电路图。GradCuit 这个名字,就是"gradient"(梯度)加上"circuit"(电路)拼出来的,意思是梯度沿着这个电路结构直接流动。
用数学语言讲,这个新的生成概率分解写成:
π(x | z, c) = ∏ π(xt | x<t, z, c)
对比原来 LatentSeek 那种"先解码潜在变量成词,再让模型自回归生成"的两段式分解,GradCuit 的这个公式里没有"潜变量到token"这个中间解码步骤,每个生成词的概率都直接、显式地依赖同一组潜在状态 z。
具体的优化更新规则是策略梯度式的:
z ← z + η?z J(z)
其中每个潜在变量收到的梯度,是把所有后续生成token的对数概率梯度,按奖励值加权求和之后聚合出来的结果。也就是说,一个潜在变量最终收到的"修改建议",来自整段生成文本的整体反馈,而不只是它自己对应的那一个词。
> 策略梯度(Policy Gradient):强化学习里的一种优化方法,核心思路是根据获得的奖励,调整让"好结果更容易出现、坏结果更不容易出现"的方向去更新参数或变量。
实验证据:五个模型、三个基准、六项对比
方法讲完了,接下来的问题自然是:这套改动到底管不管用?
研究者在五个主流的指令微调模型上做了测试,包括 LLaMA-3.2-3B-Instruct、LLaMA-3.1-8B-Instruct、Qwen2.5-7B-Instruct、Qwen2.5-14B-Instruct 和 Qwen3-4B-Instruct-2507,覆盖了从 3B 到 14B 不同规模的模型。测试的题目来自三个基准:GPQA-Diamond(研究生水平的科学问答,号称"谷歌都搜不出来"的难题库)、GSM8K(小学数学应用题)、MATH-500(更难的数学题)。每个基准还用两种答案格式测试,一种是常见的 \boxed{} 格式,一种是 JSON 格式。
对比的方法包括标准 CoT、自反思(Self-Reflection)、自一致性(Self-Consistency,采样多个答案投票)、自评分最优选择(Self-Scored Best-of-N)以及 LatentSeek。
结果是这样的:
| 方法 | 平均准确率 |
|---|---|
| CoT | 57.9% |
| LatentSeek | 62.1% |
| **GradCuit** | **64.5%** |
GradCuit 平均准确率比 CoT 高出 6.6 个百分点,比表现最好的竞争方法(LatentSeek)还要高出 2.4 个百分点。在三十个"模型-基准-格式"组合里,GradCuit 拿到了其中 23 个的最佳成绩。
拆到具体基准看更细致的数字。在 MATH-500 上,用 Boxed 格式时,GradCuit 达到 72.0%,而 LatentSeek 是 69.2%,CoT 只有 66.1%;用 JSON 格式时差距更大,GradCuit 是 65.0%,LatentSeek 是 56.1%,足足高了 8.9 个百分点。在 GSM8K 上,GradCuit 平均是 88.8%(Boxed)和 84.8%(JSON),也都是所有方法里最高的。
8.9 个百分点是什么概念?意味着每 100 道题里,GradCuit 比 LatentSeek 多做对了将近 9 道,接近十分之一的题目差距,这在数学推理这种"对就是对、错就是错"的严格评测里,已经是相当可观的提升。
稳不稳?两组鲁棒性实验
准确率提升是一回事,但一个方法好不好用,还得看它是不是"经不起风吹草动"。研究者做了两组专门验证稳健性的实验。
第一组是学习率敏感性测试。他们把 GradCuit 和 LatentSeek 各自的学习率,按照原始值的 40%、60%、80%、100%、120%、140%、160% 分别调整,然后看准确率波动情况。
结果显示,LatentSeek 的准确率在 47.6% 到 51.8% 之间跳动,标准差是 1.53;而 GradCuit 只在 51.4% 到 53.8% 之间波动,标准差降到了 0.82。
这个对比说明什么?说明 GradCuit 对学习率这种超参数的选择没那么"挑剔"。
这就好比调收音机频道。LatentSeek 的调频旋钮特别敏感,你稍微多拧一点点,信号就从清晰变成杂音一片;而 GradCuit 的旋钮有个更宽的"甜蜜区间",你就算手抖一下,多拧了一点或少拧了一点,声音依然清楚。对使用者来说,这意味着你不用为了找到那个"刚刚好"的学习率反复试错,省下的是实实在在的调参时间和算力成本。
第二组实验更有意思,是"去掉奖励引导"的测试。研究者把原本根据奖励计算出来的梯度,替换成随机方向(用高斯分布采样,再归一化),也就是让潜在变量做一场没有目的的"随机游走",唯一保留的是判断答案对错的验证环节,作为提前终止的依据。
按理说,没有奖励信号指路,效果应该会大打折扣。但结果是,这个"随机游走版" GradCuit 平均准确率达到 60.6%,居然还略高于使用真正奖励梯度的 LatentSeek 的 60.3%。
这个结果挺出人意料的,因为你会本能觉得,没有方向指引的优化应该是无头苍蝇乱撞。但它揭示了一个更深层的事实:GradCuit 之所以好用,一部分原因确实是奖励信号指路指得准,但另一部分原因,是它把潜在变量插入的这个"位置"本身,就是一个信息更丰富、更容易探索出有效路径的空间。哪怕是瞎撞,撞到有用答案的概率也比原来的框架高。
论文用一个具体案例说明了这种差异(原文表 4)。题目是求一个模运算下的逆元,正确答案是 17。LatentSeek 优化后的输出里出现了"that that"这种语法都不通顺的重复文字,还是给出了错误答案 20;而 GradCuit 优化后没有引入任何文字层面的混乱,隐藏状态被悄悄调整,最终把答案从原本错误的 20 改正为正确的 17。
这个案例很直观地说明了两种方法的本质区别:LatentSeek 要动的是"嘴巴说出来的话",改多了容易语无伦次;GradCuit 动的是"脑子里的想法",外在表达可以完全流畅,内在逻辑却在悄悄修正。
拆解实验:三个部件谁的功劳最大
光看整体效果还不够,研究者进一步做了消融实验(ablation study,逐一去掉某个组件看效果变化,用来确认每个部件各自的贡献),拆出三个变体做对比:去掉梯度引导(换成随机方向)、只插前缀不做任何更新、以及彻底退回到普通 CoT(连前缀都不插)。
结果显示一个层层递进的规律。平均而言,光插入一个固定的文字前缀(不做任何优化更新),能把准确率从 60.5% 提到 62.0%,但在 15 个测试设置里有 6 个反而变差了,说明单纯多写一句"让我们一步一步思考这个问题"这样的提示语,效果并不稳定,甚至可能帮倒忙。
如果在这个基础上开启随机方向的探索(不用奖励引导),准确率在 14 个设置里都超过了固定前缀版本,说明"能在选定层的潜在空间里动一动"这件事本身就有价值。
最后换成真正的奖励梯度引导,平均再提升 2.4 个百分点,达到 66.6%,在 14 个设置里超过随机探索版本,1 个打平。
这组数据说明了一件挺朴素的道理:好的架构(在哪里插、怎么插)和好的引导信号(往哪个方向调)是两件互相独立又互补的事情,缺一不可。就像盖房子,光有好地基不代表房子会自己建好,还得有施工图纸;但没有好地基,图纸画得再精细也白搭。
该往哪一层插?层位置的秘密
既然潜在变量要插进某一个 Transformer 层,那插在哪一层效果最好?
研究者用 LLaMA-3.2-3B-Instruct 做了专门测试,把插入位置分别设在词嵌入层(0% 深度)、25% 深度、50% 深度、75% 深度四个位置。
结果发现一个挺一致的规律:25% 到 50% 深度这个区间效果最好,插得太浅(词嵌入层)或太深(75%)都不如中间层。
在 MATH-500 上这个差异尤其明显:0% 位置只有 49.6% 准确率,50% 位置飙升到 53.6%,但到了 75% 位置又跌回 50.8%。GPQA-Diamond 上也是类似的趋势,25% 和 50% 位置都达到 30.3% 的最高值,比 0% 位置的 29.8% 略高,75% 位置反而跌到 28.8%,是所有位置里最差的。
为什么会这样?论文给出的解释挺合理:插得太浅,隐藏状态还没被充分"语境化",携带的信息量不够丰富,没法给出有意义的优化信号;插得太深,虽然信息足够丰富,但留给后面继续计算和传播这个调整效果的层数又不够了,来不及把改动的影响充分扩散出去。
这就像你要在一条河的某个位置投下一块石头去改变下游的水流走向。如果投在河的最上游源头附近,水流还没形成气候,这块石头能造成的偏转有限;如果投在河快要入海的地方,水流已经定型了,剩下的河道太短,来不及被这块石头真正改道。只有投在河流中段,前面积累的水量足够形成明显的推力,后面又留有足够长的河道让改道效果充分展现,才是最优的干预点。
梯度告诉你的秘密:模型在"想"什么词最重要
前面讲的是准确率提升,这一节讲一个更有意思的东西:可解释性(interpretability,指能够理解和解释模型内部决策过程的性质)。
因为 GradCuit 的梯度是直接从生成的每一个词流回潜在变量的,这意味着研究者可以反过来问:哪些词对潜在变量的影响最大?换句话说,模型的"潜在推理"到底在往哪些具体的词上使劲?
他们用 LLaMA-3.2-3B-Instruct 在三个基准上做了分析,把生成的每个词根据角色分成五类:格式符号(比如句号、逗号、井号)、推理连接词(比如 because、therefore、then、however,也就是中文里"因为""所以""然后""但是"这类词)、内容解释词(比如 compute、equation、value)、答案标记(比如 \boxed、final、answer)、答案内容本身(比如具体数字 42、选项 C)。
然后计算每一类词对应的梯度强度(用梯度的 L2 范数衡量)。
结果非常一致:在 GPQA-Diamond、GSM8K、MATH-500 三个基准上,推理连接词的梯度强度都排第一,分别是 0.308、0.303、0.256,明显高于其他四类。以 GSM8K 为例,排第二的内容解释词只有 0.104,答案内容本身只有 0.018,差了十几倍。
这个发现挺耐人寻味的。它说明模型内部那套潜在推理机制,主要的"用力点"不是具体的数字或答案本身,而是那些串联逻辑关系的连接词,"因为""所以""但是"这类看似不起眼的功能词,恰恰是决定推理走向的关键转折点。
打个比方,这就好像你去看一场辩论赛的录像回放,如果你只盯着辩手说的具体论据和数字,你可能觉得每句话都差不多重要;但如果你去看辩手说"但是""然而""因此"这些转折词出现的瞬间,你会发现整场辩论真正的胜负手,往往就藏在这几个字怎么用上。GradCuit 的梯度分析相当于给了我们一台"回放镜头切换器",让我们能精确定位到模型思考过程里那些真正的转折点,而不是被表面的数字答案分散注意力。
这个结果也呼应了论文提到的一个并行研究,Anthropic 团队 2026 年的 J-lens 项目,探索的是类似的方向,只不过他们的目标是纯粹的可解释性研究,而 GradCuit 的目标是借助这个可微分的通路直接改进推理效果本身。两者殊途同归,都在说明 Transformer 内部有一套可以被"看见"的、连贯的信息传递结构,而不是一个纯粹的黑箱。
效率账:花的力气反而更少
有一个容易被忽略但很重要的数据点:Self-Consistency 和 Self-Scored BoN 这类方法,固定要采样 5 次才能给出答案;而 GradCuit 平均迭代轮数在三十个测试设置里只有 2.42 轮,最少的情况只需要 1.32 轮,最多也不超过 4.98 轮,全程都控制在 5 轮以内。
也就是说,GradCuit 不仅准确率更高,消耗的计算资源反而更少。这打破了一个常见的默认预期,就是"效果更好通常意味着算力开销更大",但这里的情况恰恰相反,因为直接在隐藏状态层面优化的效率,比反复采样、反复生成完整答案要高得多。
写在后面
读完这篇论文,最让我意外的一点其实是那个"随机游走"实验的结果。按照常识,没有目标指引的优化应该是一场混乱的碰运气,但它的表现居然能追平甚至略超过有明确奖励引导的 LatentSeek。这说明有时候一个方法好不好用,架构设计本身占的权重,可能比我们以为的优化算法要高得多。
这让我联想到一个很不相关的领域,就是城市规划里的"路网设计"。有时候一条新修的路本身没有任何特殊标识和红绿灯优化,但只因为它连接的位置对了,车流量就是比另一条精心设计过信号灯配时的路更顺畅。位置和结构,有时候比后期的精细调优更重要。
论文里还有一个细节我觉得值得单独说一句:那个 GPQA-Diamond 案例里,模型原本的输出里明明已经写出了"这个方案包含一个不必要的额外步骤"这样的自我怀疑句子,但它还是选择了那个有问题的答案。这其实暴露了一件挺微妙的事,模型有时候"心里"已经意识到不对劲,但表达出来的最终结论却没有跟上这个怀疑。GradCuit 能做的,某种程度上正是在这种"心里犯嘀咕但嘴上说不出来"的缝隙里,直接把那个犹豫的信号放大成了一次真正的修正。
一个还没被回答的问题是:如果这套方法推广到更长的推理链条,比如需要几十步甚至上百步的复杂任务上,潜在状态需要插入的位置和数量会不会也要跟着动态调整?毕竟现在测试的题目大多是单轮问答,而真实世界里的复杂任务往往需要更长时间的持续推理。
Q&A
Q1:GradCuit是什么?
A:GradCuit是一种让大语言模型在测试阶段进行"潜在推理"优化的方法,它把可调节的潜在状态直接插入Transformer中间某一层的隐藏空间,利用自注意力机制让生成的每个词都能直接把梯度信号传回这些潜在状态,从而避免了传统方法中"先解码成词再传梯度"造成的信息损失。
Q2:GradCuit和LatentSeek有什么区别?
A:LatentSeek把潜在变量解码成具体的词,再让模型接着生成,奖励信号只能通过这几个解码词的对数概率往回传;GradCuit则把潜在状态直接放进模型中间层,让后续所有生成词都能直接对潜在状态求梯度,信号传递更直接,实验显示准确率平均高出LatentSeek约2.4个百分点,且对学习率变化更不敏感。
Q3:GradCuit的效果具体好在哪里?
A:在五个大模型、三个推理基准(GPQA-Diamond、GSM8K、MATH-500)上测试,GradCuit平均准确率达到64.5%,比标准思维链提示高6.6个百分点;同时它对学习率的鲁棒性更强,准确率标准差从LatentSeek的1.53降到0.82,而且平均迭代轮数只需2.42次,比需要采样5次的方法更省算力。
好文章,需要你的鼓励
ARCHead是一种专门压缩大语言模型输出层的方法,通过量化低秩核心与激活度量修正,将LM-head存储压缩至BF16的约25%,质量损失极小。
这项研究发现AI投票推理在多答案问题上会系统性失效,提出用因果数学规则直接验证候选答案的CALVER方法,准确率比投票提升约11至19个百分点,且差距随尝试次数持续扩大。
这项来自港科大与腾讯视频的研究提出WorldCycle框架,通过可逆动作循环构造无标注自验证奖励,将视频世界模型的长程漂移误差降低最高44%,复合动作准确率提升约四倍。
哥本哈根大学团队构建了首个同时覆盖三种引用粒度、屏蔽信息泄露、包含全量段落候选库的法律信息检索数据集LegalPincite,用于评估法律判决段落精确检索任务。