跳到主要内容

A2.2 反思:自己当自己的审稿人

模型默认不回头​

你写完一篇作文会回头读一遍,顺手改掉三个错别字。这个动作太自然了,以至于你可能没意识到:模型默认不会这么做。

它一路向前生成,写完就交——这是自回归的天性(上篇 3.5 节的循环:一次吐一个 token,每个 token 落笔无悔,没有「回退键」)。第 3 句里算错的数字,会被后面 50 句安然继承。

反思做的事,就是把「回头读一遍」变成流程里的一步:

反思的基本形态

生成 → 自查 → 修订 →(必要时再来一轮)

自查不是泛泛地「再看看」,而是对着清单挑毛病:事实对吗?约束满足了吗?代码跑得过测试吗?上一节 PlannerCompare 实验里策略③每步执行后的「预算检查」「时间检查」,就是把这份清单钉进了循环。

为什么有效:挑毛病比写对容易​

反思乍看很可疑——同一个模型,写的时候不会,检查的时候就会了?

会的,而且有结构性原因:生成和检查是两种不同的任务姿态。生成是「顺着写」——在几万个可能的下一词里连续做几百次选择,错一步就偏航;检查是「挑毛病」——面对一份已经存在的答案,逐条对照标准做判断题。判断题比连续创作容易得多。

这个不对称你在上篇见过:5.3 节里 RLHF 的全部杠杆就是「判断比创作容易」——人类写不出完美回答,但能一眼看出两个回答哪个好。反思是同一根杠杆,只是这次做判断的不是人,是模型自己。

关键区分:有依据的反思 vs 空想的反思​

反思的效果天差地别,分界线在于手里有没有新证据:

  • 有依据的反思:拿着工具返回的硬事实回头看——测试的报错信息、搜索到的资料、执行的异常栈。模型对照证据能精确定位问题,改进立竿见影。写代码的智能体「跑测试 → 读报错 → 改代码」循环如此有效,就是因为每一轮反思都有报错信息当依据;
  • 空想的反思:没有任何新信息,只是把模型的答案还给它问「你确定吗?再想想」。提升有限,甚至可能越改越错——模型会在你的质疑压力下把对的改成错的(上篇 5.6 谄媚问题的另一种发作)。

这是 2023-2024 年多篇研究反复确认的共识,反思范式的代表作 Reflexion(2023)的核心设计也正是「拿环境反馈反思」,而不是闭眼冥想。一句话记住:反思的质量取决于证据的质量。

反思的账单​

反思不是免费的:每轮自查和修订都是一次完整的生成成本。上一节的实验里,带反思的策略③花了约 4200 token,是一把梭(约 800)的 5 倍多——换来 3 条约束全中。什么任务值得付这笔钱,A0.2 的光谱思维依然适用:错不起的任务多反思,错得起的任务少反思。

反思不是万灵药

三个边界要心里有数:盲区自查不出——模型不知道自己不知道的事,知识性错误往往反思十轮也发现不了(所以要靠外部证据);收益快速递减——经验上反思超过 2-3 轮,改进近乎停滞,账单却线性上涨;偏差是共享的——「评估者」和「生成者」是同一个模型时,它们带着同一套偏见,自己批改自己的卷子总有盲点。请另一个模型当审稿人,正是 A5 章多智能体的动机之一。

小结​

本节要点
  • 模型默认一路向前不回头;反思把「生成 → 自查 → 修订」钉进流程。
  • 有效的原因:挑毛病比写对容易——与 RLHF「判断比创作容易」同一根杠杆。
  • 反思的质量取决于证据的质量:拿测试报错、搜索结果反思有效;空想的「你确定吗」可能越改越错。
  • 反思按轮计费、收益递减,按任务风险决定投入几轮。
📝 动手自测0/3
1. 为什么「自己生成的答案自己检查」不是自相矛盾?
2. 以下哪种做法属于「有依据的反思」?
3. 一个智能体已经对同一份草稿反思了 5 轮,还想继续。最应该提醒它的是?

延伸阅读​

  • Reflexion 论文(2023)——「拿环境反馈反思」的代表作。
  • 上篇 5.3 RLHF——「判断比创作容易」这根杠杆的第一次登场。
  • 下一章预告 A4 · 编排模式:evaluator-optimizer 会作为五种工作流积木之一正式亮相。