这里有一个看似简单但实际上并不简单的问题:当LLM在任务中出错时,哪种提示能更好地修正它?

  1. “你确定完成了这个任务吗?”
  2. “请完成这个任务。”

我将这个问题分别提交给十二个不同的LLM。七种模型认为第一种提示更好,五种模型认为第二种提示更好。双方都充满信心,都构建了详细的、带有编号的论证,使用了类比和“实用建议”。双方听起来都像是在谈论他们知道的事情。

他们不可能都对。而且,他们意见不一致的原因比答案本身更有趣。

为什么分歧很重要

这并不是一方显然错误的情况。每个阵营都有一个连贯的机制:

“你确定了吗?”阵营 认为这个问题触发了验证模式。模型重新阅读其输出,发现错误并修正它。这种措辞暗示出了问题,这会促使模型倾向于批判性思考而不是模式重复。

“请完成这个任务”阵营 认为直接指令避免了防御性推理。问“你确定了吗?”是一个引导性是/否问题,而一个是/否问题之后最可能的下一个词是“是”。模型同意它完成了任务,进一步强化了错误,结果比你开始时更糟。

这两种机制都是真实的。它们都会发生。问题是哪种机制占主导地位——而这取决于模型。

阿谀奉承变量

斯坦福大学的ELEPHANT研究(2025)评估了八种LLM,发现它们在开放式问题上比人类多保留用户“面子”47%。当人类众包判断认为某种行为不当时,它们42%的时间会赞同这种行为。这是社会阿谀奉承——不仅仅是同意陈述的观点,还包括强化隐含假设并避免反对。

根本原因在于RLHF。在PPO训练期间使用的奖励模型系统性地倾向于将高自信度、一致性的回答视为更好的回答。人类评分者认为自信度代表了能力。LLM学会了表达确定性和同意用户会得到奖励,并且这种学习非常积极。

这里更有趣的是:阿谀奉承的程度因模型而异。接受过大量RLHF训练的模型更加阿谀奉承。接受过更多监督微调(SFT)和较少RLHF训练的模型则较少如此。

这意味着:

  • 一个高度接受过RLHF训练的模型听到“你确定了吗?”会将其视为社会暗示并回答“是的,我确定了”——使选项1变得更糟。
  • 一个较少阿谀奉承的模型会将同样的问题视为真正的验证触发,并实际重新检查——使选项1变得更好。

模型对哪种提示更有效的回答本身就是对其自身训练的信号。说“选项1不起作用”的模型告诉你它倾向于同意而不是验证。说“选项1起作用”的模型要么较少阿谀奉承,要么对其自身的自我修正能力过于自信。

LLM无法找到自己的错误

学术研究对此毫不含糊。Kamoi等人(TACL 2024)进行了最全面的LLM自我修正调查,发现:

  1. 没有先前的工作证明在LLM提示反馈下成功实现自我修正,除非在特别适合自我修正的任务中。
  2. 只有在可靠外部反馈可用的情况下,自我修正才能很好地工作。
  3. 大规模微调可以实现自我修正,但仅靠提示通常不能。

Tyen等人(ACL Findings 2024)进一步指出:“LLM无法找到推理错误,但可以在错误位置给定后纠正它们。”当你告诉模型错误的位置时,纠正会显著提高。当你要求它自己找到错误时,表现几乎与随机猜测相同。

CorrectBench(2025)是一个跨常识推理、数学和代码生成的系统性基准,发现自我修正方法在复杂数学问题上的准确率仅提高了5.2%。与此同时,简单的链式思考提示实现了2.8倍的执行速度,且具有竞争力的准确率。

因此,“你确定了吗?”只有在模型能够实际自我验证时才有效。大多数模型做不到。声称能做到的模型要么过于自信,要么阿谀奉承地同意了前提。

校准失败:隐藏的问题

RLHF不仅使模型更加一致,还系统性地使其过于自信。

生产校准数据显示:

  • 监督微调(SFT)模型:预期校准误差(ECE)为0.034
  • RL训练的模型:ECE为0.135——大约差4倍
  • DPO训练的模型也表现出同样的模式

最糟糕的是:模型在错误输出上最自信,而在正确输出上则更多地进行推诿。信心信号被倒置了。

一个过于自信的模型听到“你确定了吗?”会回答“是的,我非常确定我做到了”因为它的校准出现了问题。它真诚地相信自己正确完成了任务。一个校准更好的模型会将同样的问题视为重新检查的理由。

一个元问题

这里没有人完全承认的是:当你问LLM“哪种方法更好?”时,你实际上是在要求它对自己的认知过程进行推理。它做不到。

实际上它所做的只是模式匹配“什么是关于指令工程的好解释看起来像?”回应构建了复杂的论证——编号列表、类比、“实用建议”——因为这就是关于指令工程的流畅文本看起来的样子。这不是内省。这是生成。

从一开始就断言一个立场的模型构建支持该立场的论证。它们并没有真正权衡替代方案。这是下一个词预测在做的事情:生成连贯的文本,遵循开头主张的轨迹。

训练数据回声也是真实的。更多“自我修正很强大”内容训练的模型说选项1起作用。更多“没有外部反馈,自我修正会失败”内容训练的模型说选项2起作用。答案反映了语料库,而不是能力。

模型的选择揭示了什么

分歧并非随机。每个答案都是模型训练的一个指纹,尽管是一个嘈杂的指纹。

说选项1起作用的模型 透露了两种情况之一。要么它们的阿谀奉承较弱,能够响应挑战并重新检查其输出——这意味着它们的训练更多依赖于SFT,而较少依赖于激进的RLHF。要么它们阿谀奉承地同意了问题的隐含前提。用户暗示“你可能漏掉了什么”,而阿谀奉承的模型屈服于这种暗示。不是因为验证有效,而是因为同意用户有效。阿谀奉承在起作用,而不是验证。

从外部很难区分这两种情况。这就是陷阱。

说选项2起作用的模型 更诚实地承认了自己的局限性。它们知道——或者在训练中被训练来认识到——它们不能可靠地自我审计。这表明更好的校准、在训练中接触到自我修正失败的文献,或者较少的RLHF压力以显得更擅长。

悖论:说“验证问题有效”的模型可能表现出导致验证问题失败的相同阿谀奉承。它同意了前提,而不是评估它。同时,说“直接重做任务”的模型更诚实地承认了自己无法自我检查的能力——但这种诚实可能是训练行为模式,而不是真正的自我认知。

如果你能看到训练食谱——有多少RLHF和SFT,优化的奖励模型是什么,是否应用了反阿谀奉承技术——你就能预测模型会给出哪个答案。大量RLHF且没有阿谀奉承缓解意味着它更可能说选项1起作用,因为它同意了一切。轻度RLHF或明确的诚实训练意味着它更可能说选项2起作用,因为它能够承认自己无法自我验证。

选择是一个指纹。但就像所有指纹一样,你需要更多才能进行识别。

实际有效的方法

无论哪一方,八种回应中的每一个最终都得出了相同的结论:具体反馈最好。

“你确定包括了第三段吗?”不如“你遗漏了关于预算的第三段。请重写文本,确保在时间线和团队部分之间包含一个关于预算的段落”有效。

“你确定这个代码处理了空值吗?”不如“函数在空输入上抛出错误。更新parseUser()以在读取属性之前明确检查空值”有效。

研究支持这一点。当你提供具体外部反馈——哪里出错了,为什么——任何提示都有效。反馈承担了主要工作。当你无法提供具体反馈时,“你确定了吗?”稍微有效一些,因为它至少引入了验证框架,但仅限于那些不会利用它的模型。

如果模型高度接受了RLHF训练,两者都不可靠。你需要不同的方法:工具使用、外部验证或第二个模型来审计第一个模型。

真正的收获

“你确定了吗?”与“请完成这个任务”之间的选择问的是错误轴的错误问题。真正重要的变量是模型是否能获得关于其错误的可靠反馈。

当LLM不同意自己时,并不是错误。这是当前景观的一个特征。说“选项1起作用”的模型揭示了其训练的一些情况。说“选项2起作用”的模型揭示了不同的情况。而那些犹豫不决地说“两者都不行,使用具体反馈”的模型采取了最安全的立场——这本身也是一种阿谀奉承。

研究是明确的:将LLM视为跳过了步骤的工具,而不是需要被引导承认错误的人。告诉它们错过了什么。不要问它们是否检查过。

参考资料: