LLMs 无法发现推理错误,但可以纠正它们
大型语言模型经常无法检测自己的推理错误,但在被告知存在错误或错误位置时,通常可以“修正”答案。评论者将这种行为与真正的逻辑推理进行对比,争论模型究竟只是模式匹配还是在思考,并探讨了多草稿、模型集成和提示工程等提高可靠性的策略。这场讨论既凸显了当代 LLM 令人印象深刻的表面能力,也暴露了它们在稳健的自我错误检查和形式化推理方面持续存在的弱点。
论文主张的范围
- 讨论串一致认为,这篇论文表明:当前 LLM 往往无法定位自身的推理错误,但当满足以下条件时,通常能改进答案:
- 它们被告知存在一个错误,并且
- 它们被给出(或被强烈暗示)错误的位置。
- 几位评论者认为,这更接近“在约束下再试一次”,而不是真正的自我纠正或推理。
LLM 真的会推理吗?
- 许多评论者坚持认为,LLM 并不真正“推理”;它们是在对训练数据做模式匹配,并生成看起来像推理的文本。
- 也有人指出,从行为上看,LLM 能在许多例子中沿着逻辑链条前进,甚至能进行 stream-of-thought,所以“模式匹配”和“推理”之间的界限很模糊。
- 强烈怀疑者认为:LLM 无法在多个相互依赖的从句或数学步骤之间持续保持逻辑一致;当被纠正时,它们往往只是以新的方式失败。
- 对“推理”的定义存在分歧;有些人希望采用形式化、基于逻辑的定义,另一些人则接受更启发式、更像人类的概念。
错误检测 vs 错误纠正
- 一个关键区别是:判断答案是错的,与在被提示后给出更好的替代答案。
- 几位评论者指出,LLM 很容易被说服去改动甚至正确的答案(“缺乏自信”),这主要归因于 alignment/RLHF 以及讨好用户的倾向。
- 有观察认为,LLM 有时在只被告知“这是错的”而没有细节时也会自我纠正,但它们也会在并不存在错误时照样“修正”。
自我批评、视角与训练数据
- 一种假设是:模型可能更擅长批评“别人的”答案,而不是“自己的”,因为训练数据中人们纠正别人错误的例子远多于纠正自己错误的例子。
- 一个建议的技巧是:把模型先前的输出当作是另一个人写的,从而提升找错能力。
- 讨论焦点在于,这究竟是在拟人化,还是只是在利用高度类人的训练数据中的模式。
多模型与多样本方法
- 讨论的想法包括:
- 用一个模型来评估或攻击另一个模型的输出。
- 运行多个生成结果(
n个样本),再用一个更小的选择器模型挑出最佳结果。 - 类似 GAN 的设置,其中专门训练一个“验证器”模型来找错误。
- 好处:更好的错误率和“第二次机会”。
- 代价/限制:更高的算力开销,可能与流式接口不兼容,且仍然无法解决根本性的推理局限。
提示词、风格与实际使用
- 更高质量、更明确的提示词(良好的语法、清晰的约束、“认真思考”指令)能明显提升结果。
- 有些人会先用另一个 LLM 把杂乱的提示词改写成更干净、更“规范”的输入,再交给主模型。
- 观察到一种“上下文污染”:长时间交互会累积幻觉;重启后用“这里有一些坏代码,请修复它”往往能得到更好的纠正结果。
可解释性与理解
- 大家一致认为,我们理解训练算法和代码,但并不理解把权重与概念、类推理行为联系起来的详细内部表征。
- 可类比为:我们知道如何运行优化过程,但不知道由此得到的庞大参数集合是如何“实现”特定类认知能力的。