EvoThink:教推理模型学会顿悟,而不是把同一道题验算八遍

# EvoThink:教推理模型学会"顿悟",而不是把同一道题验算八遍 ## 一、考试快结束了,你还在第三题上...

EvoThink:教推理模型学会”顿悟”,而不是把同一道题验算八遍

一、考试快结束了,你还在第三题上反复检查

你大概有过这种经历:数学考试时间过半,你卡在第三题。算完一遍,不放心,换个方法再算一遍。还是不放心,把第一种方法从头到尾又捋一遍。监考老师提醒还有十五分钟,你后面还有五道题没动。

你慌了。不是因为不会,而是因为你把时间全花在了”验算同一道题”上。

这就是 DeepSeek-R1 这类大型推理模型(Large Reasoning Model, LRM)每天都在干的事。论文作者把推理过程拆成一个个”原子推理单元”——每段是一个自包含的推理步骤,得出一个局部结论。然后他们统计:超过 65% 的 token 花在了冗余验证上。模型算完一遍,说”等等我再检查一下”,换个方法又算到同一个结论,再说”让我确认一下”,又来一遍。

这不是深思熟虑,这是强迫症。

更糟的是,这些重复验算不仅没帮助,有时候反而有害——噪声累积,越算越乱。模型变长了,但没变聪明。

二、现有的两种”治强迫症”方案,都不太行

学术界已经注意到了这个问题,主要有两条路线:

第一条:快慢思维切换。给模型一个开关,简单题走”快模式”直接出答案,难题走”慢模式”深度推理。听起来合理,但问题在于——这个开关本身就是一个二元分类器。万一判断错了呢?简单题走了慢模式浪费算力,难题走了快模式直接翻车。错误会传播。

第二条:推理轨迹压缩。用各种方法让模型说短一点,比如在强化学习奖励里加长度惩罚,或者构造偏好数据集训练模型匹配问题难度。这类方法确实能让输出变短,但它们有一个致命缺陷:不区分”有用的验证”和”无用的重复”

打个比方,你在写一篇论文,导师让你删字数。你把”这个结果很有趣,让我再验证一下”这种有价值的反思删了,也把”我刚才算的是 5,再算一遍还是 5,还是 5″这种废话删了。一刀切,该删的不该删的全删了。模型推理能力因此受损。

EvoThink 的作者来自东南大学 Ark Lab,他们提出了一个更精细的方案:别一刀切,先把冗余的挑出来,只删冗余的;然后把删完的简洁推理路径拿来训练模型,让模型学会”不重复自己”。更进一步,从失败中提炼”顿悟时刻”,让模型学会从错误路径跳到正确路径。

三、原子推理单元:给思维流分段

EvoThink 的第一个概念是”原子推理单元”(Atomic Reasoning Unit)。

什么是原子推理单元?作者让模型把自己的推理轨迹分解成一段段自包含的文本片段,每段包含一个完整的推理步骤,最终得出一个局部结论。比如:

– 单元 1:”设 x = 3,代入方程得到 y = 6″ – 单元 2:”验证:将 x=3, y=6 代入原方程,6 = 2×3 成立” – 单元 3:”等等,让我再验证一次,x=3 代入得到 y=2×3=6,确认 y=6″

单元 1 和单元 2 的局部结论都是”y=6″,单元 3 的结论还是”y=6″。单元 2 相对单元 1 是有益验证(第一次确认),但单元 3 相对单元 2 就是冗余了(重复确认同一个结论)。

怎么自动识别冗余?作者让模型比较相邻单元的局部结论。如果新单元的结论和上一个一样,而且没有探索新的解空间,就标记为冗余,删掉。

这个分解和识别过程由模型自己完成,不需要人工标注。这就是”自剪枝”(Self-Pruning)的由来。

四、自剪枝训练:让模型学会”别重复自己”

Self-Pruning Training(SPT) 的流程是:

1. 让模型生成初始推理轨迹 2. 分解成原子推理单元 3. 识别并删除冗余单元 4. 把删完的简洁轨迹作为训练数据,微调模型自己 5. 用新模型重复以上过程,直到推理长度降幅小于 10%

这个流程有几个精妙之处:

第一,完全无监督。不需要标准答案,不需要更强模型的标注。模型自己生成、自己剪枝、自己训练自己。只需要少量数据(每轮 100 条),几轮迭代就能稳定。

第二,它教的是”过程”不是”结果”。模型不是在记住”这道题答案是 42″,而是在内化”推理时不要重复验算同一个结论”这个习惯。作者发现,SPT 训练后,模型的推理长度和局部结论数量之间出现了单调递增关系——结论越多,推理越长,而不是像原来那样,一个结论能写出一大堆重复验证。

第三,它处理三种情况: – 正确结论被反复验证 → 剪掉重复,让模型学会”到了就停” – 错误结论被反复尝试 → 剪掉重复,让模型学会”别钻同一个牛角尖” – 模型在错误和正确之间反复横跳最终找到答案 → 剪掉前面的无效尝试,让”顿悟”来得更快

第三种情况尤其重要——它直接引出了 EvoThink 的第二个核心组件。

五、顿悟时刻偏好优化:从最有价值的失败中学习

Aha-Moment Preference Optimization(AMPO) 是 EvoThink 最有创意的部分。

传统的训练方式是:模型做对了,奖励;做错了,惩罚。但作者注意到了一个被忽视的资源——失败本身

不是所有失败都一样有价值。有些失败是模型在同一个错误结论上反复打转(低多样性),有些失败是模型尝试了好几个不同的中间结论(高多样性)。后者显然更有价值——它意味着模型在积极探索解空间,只是最后没走通。

AMPO 的设计灵感来自遗传算法。流程如下:

第一步:找难题。用 SPT 训练后的模型对每个问题生成 K=6 个回答。如果 6 个全错,这个问题就是”难题”——它标记了模型当前的推理边界。

第二步:计算适应度。对每条错误的推理轨迹,分解成原子推理单元,提取每段的局部结论,计算不同结论的数量。结论越多样,适应度越高。比如一条轨迹有 6 个单元,得出了 5 个不同的中间结论,另一条也有 6 个单元但只有 2 个不同结论——前者的适应度更高。

第三步:合成突变数据。选适应度最高的那条错误轨迹,保留它的错误推理前缀,然后在转折点插入一句话:”But is this correct? I think I missed something.”(这真的对吗?我觉得我漏掉了什么。)接着让模型从这句话开始转向正确答案。

这就构造出了一个”从错到对”的转折——一个合成的顿悟时刻。

第四步:DPO 训练。把合成的顿悟轨迹作为”被选中的”(chosen),原始错误轨迹作为”被拒绝的”(rejected),用直接偏好优化(DPO)训练模型。

为什么这个方法比直接用标准答案训练更好?作者的解释是:人类写的标准答案是高度浓缩的最终结果,和模型自身的推理风格差异太大,模型学不会——就像让一个初中生直接读博士论文,字都认识,但思路接不上。而”从错到对”的合成轨迹起点在模型的错误分布里,终点在正确答案分布里,中间有一座桥。模型沿着这座桥走,能真正学会”怎么从自己犯的错误里跳出来”。

六、数据说话:不只是短了,还更聪明了

EvoThink 在四个基准上测试了三个模型(DeepScaleR-1.5B、Distill-Qwen-1.5B、QwQ-32B),涵盖数学推理和代码生成。

几个最亮眼的数据点:

QwQ-32B 在 AIME24(美国数学竞赛)上:原始模型 Pass@1 为 46.7%,EvoThink SPT+AMPO 提升到 52.5%,同时 token 从 7290 降到 6299。如果只用 AMPO(不剪枝),更是飙到 55.8%——比原始模型高 9.1 个百分点。这意味着 AMPO 不只是提效,它实质性地提升了推理能力。

迁移学习测试是最有说服力的证据。作者只在 MATH 数据集上训练,然后在 AIME24/25 上测试(模型从没见过 AIME 题目):

方法AIME24 Pass@1AIME25 Pass@1
原始模型29.2%30.8%
SFT(标准答案微调)4.2%3.3%
DPO(标准答案偏好)5.4%4.6%
EvoThink AMPO30.0%31.3%
EvoThink SPT+AMPO28.8%30.8%

SFT 和 DPO 在迁移设置下灾难性崩溃——从 29% 掉到 4%。直接用人类标准答案训练的模型,换个题型就全完了。而 EvoThink AMPO 不仅没掉,还略有提升。

这张表是整篇论文最重要的一张表。它证明了一件事:学习”怎么从错误中顿悟”比学习”标准答案”更具有泛化能力。前者学的是推理策略,后者学的是答案记忆。

七、为什么”从错到对”比”直接学对的”更有效

这个发现有一个反直觉的深层原因。

人类标准答案是专家思维的终态——所有中间步骤都被压缩、跳过、省略了。模型试图模仿这种终态,就像一个初学者试图模仿大师的”灵感”——你看到大师说”显然如此”,但你不知道大师是怎么走到”显然”的。模型记住了答案的形状,但没学会推理的路径。

而”从错到对”的合成数据保留了模型自己的错误前缀——这是模型原生推理分布的一部分。转折点的”But is this correct?”不是随机插入的,它是在模型最有可能走偏的地方,提供了一条转向正确路径的示范。模型不需要从头学起,它只需要学会”在什么时候质疑自己、怎么切换方向”。

这和人类学习心理学的发现高度一致。认知科学研究显示,专家和新手的区别不在于知识量,而在于”元认知监控”——专家能在推理过程中识别出”这里可能有问题”,然后主动切换策略。AMPO 本质上是在教模型元认知。

另一个关键发现:高多样性的失败比低多样性的失败更有价值。作者对比了选最高适应度 vs 最低适应度的失败轨迹做训练数据,前者性能提升显著大于后者。这就像两个学生都做错了一道题,但一个学生尝试了五种不同思路都没走通,另一个学生在同一个错误思路上反复验算——前者的失败信息量远高于后者。探索性的失败比重复性的失败更值得学习。

八、工程启示:这对你意味着什么

如果你在做推理模型的工程落地,EvoThink 提供了几个可操作的洞察:

1. 过thinking 的诊断颗粒度应该到”原子推理单元”级别。不是所有长推理都是问题,问题是冗余的原子单元。监控模型输出时,不要只看总长度,要看中间结论的多样性——如果长度很长但不同结论很少,那就是冗余验证。

2. 无监督剪枝可以替代部分标注数据。SPT 不需要标准答案,只需要模型自己生成、自己剪枝、自己训练。对于缺乏标注数据的垂直领域(比如代码推理、逻辑推理),这是一个低成本提效路径。

3. 失败是比成功更好的训练素材——前提是失败有多样性。如果你有 1000 条模型生成的错误轨迹,先按中间结论多样性排序,选 top 10% 做突变数据,比直接用 100 条标准答案训练更有泛化能力。

4. “从错到对”的合成数据构造方式可以复用。保留错误前缀 + 转折提示 + 正确后续,这个模板不限于数学推理,任何有”探索-纠错”结构的任务都可以用——代码调试、逻辑推理、多步规划。

九、个人思考:顿悟是可以被合成的

这篇论文让我想到一个更深的哲学问题:顿悟时刻是可以被工程化合成的

传统上我们认为”啊哈时刻”是灵感——不可预测、不可控、只可等待。AMPO 的做法是:找到模型最有可能走偏的地方,在那里手动插入一个”But is this correct?”,然后接上正确路径。这不是等待灵感,这是制造灵感。

这和认知科学里的”元认知训练”异曲同工。心理学家已经发现,教学生”But is this correct? Let me reconsider”这类自我提问,能显著提升解题能力。AMPO 把这个心理学发现搬到了 LLM 训练里——不是教模型更多的知识,而是教模型一个”质疑自己”的习惯。

更有趣的是,这个习惯不是通过规则注入的(”每 100 token 检查一次”),而是通过偏好优化让模型自己内化的。模型在 DPO 训练中看到:在转折点质疑自己并切换路径 > 沿着错误路径继续走。训练结束后,模型自发地会在类似位置产生类似的质疑。

这让我想起一个关于学习本质的观察:最有效的学习不是学正确答案,而是学会从错误中恢复。EvoTalk 用一个具体的算法实现了这个抽象原则。

最后,关于”原子推理单元”这个概念——我认为它会被更多人采用。在此之前,推理模型的输出是一整条不可分割的 token 流,你只能评价整体好坏。有了原子单元的概念,推理过程变成了可分段、可分析、可操作的结构化数据。这就像把一段代码从一个 main() 函数拆成了一组小函数——突然之间你能定位哪里有问题、哪里可以优化、哪里是冗余。给思维流分段,是所有后续优化的前提

论文:EvoThink: Evolving Thinking in Large Reasoning Models via Self-Pruning and Aha-Moment Preference Optimization arXiv2607.19962 作者:Xinbang Dai 等,东南大学 Ark Lab 资助:国家自然科学基金 No. 62476058

发表回复

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网 🐾 智柴网 沪ICP备2024052574号-1