Self-Contrast: Better Reflection Through Inconsistent Solving Perspectives
研究问题
这篇论文关注的是一个经常被高估的能力:LLM 在没有外部反馈时,是否真的擅长“自我反思”。
很多 post-hoc prompting 方法,例如 Reflexion、Self-Refine,默认模型可以先评估自己的回答,再根据反馈修正输出。但问题在于,模型生成的自评反馈本身并不可靠。论文认为,真正的瓶颈不是“模型不会改”,而是“模型先前给自己的反馈质量很差”。
本文总结了两类典型失败:
overconfidence:模型固执地认为原答案没问题,不愿修改。inconsistency:模型对同一个初始答案重复自评时,反馈高度随机、前后不一致。
因此,论文试图解决的问题是:在没有外部监督或评审器的前提下,怎样让 LLM 产出更稳定、更有用的反思信号。
核心思路
本文提出 Self-Contrast。它不让模型直接评价“我之前的答案对不对”,而是先构造多个不同视角下的候选解,再利用这些候选解之间的差异来触发反思。
其基本判断是:
- 直接自评容易陷入单一路径上的偏见。
- 如果模型能从不同视角得到若干不一致解法,这些差异本身就暴露了潜在错误或不确定点。
- 与其问“我对吗”,不如问“这些解为什么不一致,它们差在哪里”。
这相当于把反思从“单答案自我裁判”改成“多答案对比后再归纳检查项”。
方法结构
论文将 Self-Contrast 分为三个步骤。
1. Create Diverse Perspectives
模型先针对同一请求,自行生成多个不同的 prompt 视角。本文称之为 self-curated prompt 过程。
这些视角可以体现在:
- 不同思维方式
- 不同角色或身份
- 不同关注重点
- 不同推理路径
重要的是,这些视角不是人工预设固定模板,而是由模型针对当前任务动态生成。论文强调,这种做法比单纯多次采样更能制造“有意义的差异”,因为它是显式换视角,而不是只靠温度带来的随机扰动。
2. Contrast Inter-Perspective Discrepancies
拿到多个候选答案后,方法不会把它们全部直接送进投票,而是先过滤掉过于相似的结果,再对差异明显的结果做两两对比。
对比过程中,模型需要回答几类问题:
- 两个结果是否真的不同
- 差异具体出现在哪些步骤或表达上
- 这些差异背后的原因是什么
论文在实现上使用聚类与选择机制,从候选结果中保留“差得足够开”的样本,以增强 contrast 的有效性。
3. Eliminate Discrepancies
最后一步不是直接在多个答案里选一个,而是把前一步发现的差异总结成 checklist,再用这份 checklist 去指导重新审视和修订。
这个 checklist 的作用有两个:
- 把“差异”转写为可操作的检查指令。
- 让模型把注意力放在真正存在冲突或不确定的局部,而不是泛泛重写。
因此,Self-Contrast 的关键中间产物不是“最佳答案”,而是“可用于复查的结构化检查清单”。
论文的主要证据
1. 先证明传统自反思为何不稳定
论文先分析了无外部反馈场景中的自反思失败模式。对于无效反思样本,大多数失败来自:
- 过度自信
- 反馈高度不一致
在 PDF 中的统计里,Invalid Reflection 大多由这两类问题主导,其中过度自信和高度不一致合计构成主要原因 - 直接自评并不是一个稳定的反馈来源。
2. 对比式反思比直接自评更稳定
用 top-2 结果进行实验,比较“直接自评”和“先对比再反思”。结果显示,Self-Contrast 不只是平均提升更高,还显著改善了统计显著性,说明它减少了自评过程中的随机性。
论文据此提出一个更强的判断:contrast 比 direct self-evaluation 更适合作为无监督反思的触发机制。
3. 数学推理任务上整体更强
在数学推理实验中,论文报告 Self-Contrast 相比基础 CoT 的平均提升约为 +7.2%,而原始 self-reflection 没有表现出稳定增益,平均变化约为 -0.51%。
与下列方法比较:
ExpertPromptSelf-ReflectionSelf-Consistency及其变体Multi-Agent DebateHint-Prompt
Self-Contrast 在多个模型上都表现出更稳定的收益,尤其比直接 self-reflection 更可靠。
4. 创意翻译任务上也有泛化
这篇论文不只验证数学推理,还把方法扩展到 creative translation。这里的价值在于:很多基于投票的 self-consistency 方法对非数值任务并不自然,而 Self-Contrast 依然适用。
论文给出的一个代表性结果是:
- 在 creative translation 上,
GPT-3.5从69.1提升到70.7 Llama-70B从63.2提升到66.7
这个方法并不依赖“最终答案可投票”这一前提,而是更依赖“候选结果之间是否存在可解释的差异”。
5. 关键增益来自“自策划视角”,而不只是多采样
本文比较了两种做法:
- 直接多采样多个回答
- 通过 self-curated prompt 先生成不同视角,再得到候选回答
结果显示,多采样虽然也会随候选数增加而提升表现,但仍弱于 self-curated prompt 方案。论文在 GSM8K 上给出的对比中:
Self-Reflection为75.8Self-Contrast为84.4
这说明真正起作用的不只是“答案变多”,而是“视角真正变多”。
与常见反思方法的区别
- 与
Self-Reflection / Self-Refine相比,Self-Contrast 不把单次自评当成核心反馈源,而是把多视角差异当成反馈源。 - 与
Self-Consistency相比,它不是投票选择多数答案,而是把分歧转译成检查清单,因此更容易扩展到翻译等非投票任务。 - 与
Multi-Agent Debate相比,它更像一种轻量级、结构化的内部对比机制,不需要预设多个固定 agent 角色,也减少了调用开销。
因此,这个方法可以被理解为一种“显式制造分歧,再结构化消解分歧”的反思框架。
可复用启发
- 如果任务缺乏外部 verifier,直接让模型自评往往不够可靠,应该优先想办法制造可比较的候选解。
- 多样性不应只依赖温度采样,最好显式改变 prompt 视角、推理路径或关注重点。
- 在 reflection 场景里,中间产物可以不是最终答案,而是
checklist、错误清单或复查指令。 - 对开放生成任务,基于差异的反思往往比基于投票的选择更自然。
局限与边界
- 这篇方法仍然依赖基础模型本身具备生成多视角和理解差异的能力,如果底模太弱,contrast 质量也会受限。
- 额外生成多个视角、多个候选解以及差异对比,意味着推理调用成本会增加。
- 论文证明了该方法在推理和翻译任务上的效果,但并不等于它在代码、长规划或真实 agent 执行任务上必然同样有效。
结论
Self-Contrast 的关键贡献,在于把“反思”从单路径自评改造成多路径对比。它不再要求模型直接判断自己是否正确,而是先制造几个不一致的解决视角,再把这些不一致压缩成可执行的检查清单。这样做既缓解了过度自信,也减轻了随机自评带来的不稳定性。对于没有外部反馈器的任务,这是一种比传统自反思更稳妥的 prompting 思路。
来源:[[Self-Contrast_Better Reflection Through Inconsistent Solving Perspectives]]