它指什么
自我纠正(Self-Correction)指模型给出答案之后,不借助新的外部信息,自己回头检查并修改答案。典型触发方式就是提示词里那句“请再检查一遍”“你确定吗?错了就改”。
为什么听起来很合理
打个比方:学生交卷前自查一遍,但规定不许翻书、不许对答案、不许问老师,也不许用计算器。他会改什么?多半是把字迹描清楚、把“因为”换成“由于”。真正的错题还是错的——因为错的地方恰好就是他不会的地方。
模型处境类似:它的答案本就是当前知识状态下最像答案的那一个。让它“再想想”,它多半沿同一条推理路径再走一遍,得出同一个结论,最多换个说法,或者补一句“我重新核对后确认无误”。
有一类错误它确实能自己改掉:错误出在表达层面,而不是知识层面。比如前后矛盾(开头说三点,后面列了四条)、漏了要求的格式、单位写错、简单加减算错。这些靠对照输出本身就能发现。
什么时候才真的有用
一旦检查时能接触到新信息,性质就变了:把代码跑一遍拿报错当依据;检索文档、查数据库,用外部事实当裁判;让用户澄清一句;或者用另一个提示、另一个模型扮演挑刺的人,并且明确告诉它该查什么。
| 做法 | 检查时能看到的新东西 | 实际在做什么 |
|---|---|---|
| 朴素自我纠正(“再检查一遍”) | 几乎没有 | 复述、换措辞 |
| 检查清单式自查 | 一份结构化要求 | 抓格式、遗漏、前后矛盾 |
| 带反馈的反思(报错、检索、用户澄清) | 外部事实 | 依据证据修正 |
| 多答案投票 | 多个独立样本 | 少数服从多数 |
差别在于有没有新证据。没有新证据的自我纠正,本质是重新采样;有了新证据,才谈得上验证与修正。
对从业者和普通人
从业者:别把“再检查一遍”当成顺手加上的免费增益。设计时要先问一句——模型检查的那一刻,能看到哪些生成时看不到的东西?如果什么都没有,这一步只换来延迟和 token 消耗。更划算的是外挂验证器,或者把答案拆成能逐项核对的小步骤。
普通人:模型说“我再确认一下”,不等于它重新算了一遍,多半只是把同一段知识换了套说辞。涉及金额、日期、条款、代码、医疗法律这类内容,别信它的第二遍,要去能对账的地方核一遍。反过来,让它“列出这个答案里最没把握的三点,以及每点该怎么验证”,通常比“你再检查一遍”有用——至少给了它具体的检查方向。
