多采几次样别反思了:Self-Refine和Reflexion在等量token下输给重复采样

# 多采几次样,别反思了:Self-Refine 和 Reflexion 在等量 token 下输给重复采样 ...

多采几次样,别反思了:Self-Refine 和 Reflexion 在等量 token 下输给重复采样

论文:Sample More, Reflect Less: Self-Refine and Reflexion Lose to Repeated Sampling at Equal Token Cost, from 1.5B to 7B arXiv: 2607.28576

一个让所有”反思派”难堪的实验

你大概听过这样的故事:让大模型自己给自己改作业——先写一版答案,再让它反思哪里不对,再改一版,如此反复几轮,效果就会更好。Self-Refine 和 Reflexion 是这条思路里最响亮的两面旗帜,被引用了成千上万次,几乎是”推理增强”领域的标配操作。

但这篇论文问了一个本该早就有人问的问题:在花掉的 token 数一样多的前提下,这种”反思迭代”真的比”直接多采几次样然后投票”更好吗?

答案是不。从 1.5B 到 7B 的模型上,在六七个基准任务上,反复采样(repeated sampling)在等量 token 预算下稳定地打败了 Self-Refine 和 Reflexion。

为什么要”等量 token”才公平

之前文献说”Self-Refine 比直接生成好”,这里藏着一个巨大的偷换:Self-Refine 要走好几轮,每轮都吃 token;直接生成只走一轮。拿一个吃五份 token 的方法和一个吃一份 token 的方法比,赢了也不光彩。

这篇论文的做法是控制变量:给两种方法相同的 token 预算。反思派用这个预算去走”生成-批评-重写”的循环;采样派用同样的预算去直接采 N 次独立答案,然后取多数票或选最好。结果:

– 在 GSM8K、GPQA、MATH 等推理任务上,重复采样稳定胜出。 – 模型越大(7B vs 1.5B),重复采样的优势越明显——因为大模型单次采样质量更高,多采几次更容易撞到对的。 – 反思方法的”改进”很多时候只是把第一次的答案改回了一个更平庸的版本——反思不是在纠错,是在抹平。

“反思”到底在做什么

论文里有一个很尖锐的观察:Self-Refine 和 Reflexion 的”改进”很多时候发生在本来答案就对的情况下——模型自己批评自己,把对的改成错的,再改回来。这种来回拉锯消耗了大量 token,净收益接近零甚至为负。

换句话说,反思方法的核心问题不是”能不能改对”,而是它不知道什么时候该改、什么时候不该改。它在所有问题上都强制走一遍”批评-重写”流程,而这个流程本身是有噪声的——模型的自我批评和它的生成一样会犯错。

重复采样则完全不同:它不需要模型”知道自己哪里错了”,只需要模型”偶尔能蒙对”。而事实证明,让模型多蒙几次然后选最好的,比让模型自己给自己找茬更靠谱

这为什么重要

这个结果对整个”推理增强”领域是一记重锤。

过去两年,”让模型反思”几乎成了一种信仰——CoT、Self-Consistency、Self-Refine、Reflexion,各种让模型”多想几步”的方法层出不穷。但这篇论文指出,这些方法中的一部分,其收益可能并不来自”反思”本身,而来自”多花了几倍 token”。一旦把 token 预算拉平,反思的光环就褪色了。

这和之前一些研究的结论遥相呼应:推理的”顿悟”很多时候不是模型真的学会了推理,而是采样次数够多撞上了。多采几次样,是穷人版的 best-of-n,是性价比最高的推理增强

一个更深的含义

论文标题里的”from 1.5B to 7B”不是随便写的。它说明这个现象不是某个模型尺寸的偶然结果,而是一个规模无关的规律。小模型如此,大模型也如此。

这暗示了一件不太舒服的事:当前大模型的”自我批评”能力,可能远比我们以为的弱。模型生成的批评和它生成的答案来自同一个分布,有着同样的偏见和盲区。让它自己批评自己,就像让一个考生自己出题自己改卷——不是完全没用,但远不如找一个独立来源(哪怕是另一个独立采样)可靠。

“反思”作为人类认知的核心能力,在当前大模型里可能并不真正存在。我们看到的”改进”,更多是 token 预算的杠杆效应,而非认知能力的跃升。

实用建议

如果你在做一个需要 LLM 推理的任务,预算有限,这篇论文的建议很直接:

1. 优先用重复采样 + 多数投票,而不是 Self-Refine 或 Reflexion。 2. token 预算相同时,采样法的实现更简单——不需要设计批评 prompt,不需要多轮对话管理,只要采 N 次取众数。 3. 如果一定要用反思方法,先做等量 token 的采样基线对比——你可能会发现自己花大力气搭的反思流水线,还不如一行 for i in range(N)

诚实的局限

论文只测了 1.5B 到 7B 的模型。在 70B+ 或 GPT-4 级别上,反思方法是否会翻盘?目前不得而知。大模型的自我批评能力可能确实更强,反思的净收益可能为正——但这需要实验证明,不能想当然。

另外,论文只比了”等量 token”,没比”等量时间”或”等量钱”。重复采样天然并行,反思天然串行——在延迟敏感场景,反思可能仍有价值。

但核心结论很硬:在 token 预算这个最常用的比较基准下,反思输给了采样。这至少说明,过去那些”Self-Refine 大幅提升性能”的论文,欠大家一个等量 token 的对照实验。

论文链接:https://arxiv.org/abs/2607.28576

相关代码:Self-Refine 原版仓库 https://github.com/madaan/self-refine (本文论文本身未提供独立代码仓库)

发表回复

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