← 返回博客列表
论文 ACL'24

Self-Contrast: Better Reflection Through Inconsistent Solving Perspectives

日期:2024/01/02 作者:Wenqi Zhang, Yongliang Shen, Linjuan Wu, et al.

研究问题

这篇论文关注的是一个经常被高估的能力:LLM 在没有外部反馈时,是否真的擅长“自我反思”。

很多 post-hoc prompting 方法,例如 ReflexionSelf-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 不只是平均提升更高,还显著改善了统计显著性,说明它减少了自评过程中的随机性。

论文据此提出一个更强的判断:contrastdirect self-evaluation 更适合作为无监督反思的触发机制。

3. 数学推理任务上整体更强

在数学推理实验中,论文报告 Self-Contrast 相比基础 CoT 的平均提升约为 +7.2%,而原始 self-reflection 没有表现出稳定增益,平均变化约为 -0.51%

与下列方法比较:

  • ExpertPrompt
  • Self-Reflection
  • Self-Consistency 及其变体
  • Multi-Agent Debate
  • Hint-Prompt

Self-Contrast 在多个模型上都表现出更稳定的收益,尤其比直接 self-reflection 更可靠。

4. 创意翻译任务上也有泛化

这篇论文不只验证数学推理,还把方法扩展到 creative translation。这里的价值在于:很多基于投票的 self-consistency 方法对非数值任务并不自然,而 Self-Contrast 依然适用。

论文给出的一个代表性结果是:

  • 在 creative translation 上,GPT-3.569.1 提升到 70.7
  • Llama-70B63.2 提升到 66.7

这个方法并不依赖“最终答案可投票”这一前提,而是更依赖“候选结果之间是否存在可解释的差异”。

5. 关键增益来自“自策划视角”,而不只是多采样

本文比较了两种做法:

  • 直接多采样多个回答
  • 通过 self-curated prompt 先生成不同视角,再得到候选回答

结果显示,多采样虽然也会随候选数增加而提升表现,但仍弱于 self-curated prompt 方案。论文在 GSM8K 上给出的对比中:

  • Self-Reflection75.8
  • Self-Contrast84.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]]