批判循环


文档摘要

批判循环 本节摘要:第一次返「看着不错」的批判是坏的;总返「要改」的批判也是坏的。有趣的批判是会收敛的,而你得工程化收敛。本节跨五个固定维度(清晰度、新颖度、证据、方法、相关工作)给论文草稿打分,把每轮的批判作结构化修订 diff 施加(非自由重写),通过跨轮比分检测收敛(在 plateau/target/budget 停),用 max-iteration 上限封轮数使不收敛的批判不永远跑,发每轮 trace 使仪表盘或下一阶段能绘分轨迹。自由形式批判是返建议段的模型,下一轮修订把段当环境上下文,改写是否触及批评不可验,因批评从无结构。五维给框架契约:分是向量,框架跨轮盯每维;升清晰度但垮证据是证据上的回归,收敛检查看见。

批判循环

本节摘要:第一次返「看着不错」的批判是坏的;总返「要改」的批判也是坏的。有趣的批判是会收敛的,而你得工程化收敛。本节跨五个固定维度(清晰度、新颖度、证据、方法、相关工作)给论文草稿打分,把每轮的批判作结构化修订 diff 施加(非自由重写),通过跨轮比分检测收敛(在 plateau/target/budget 停),用 max-iteration 上限封轮数使不收敛的批判不永远跑,发每轮 trace 使仪表盘或下一阶段能绘分轨迹。自由形式批判是返建议段的模型,下一轮修订把段当环境上下文,改写是否触及批评不可验,因批评从无结构。五维给框架契约:分是向量,框架跨轮盯每维;升清晰度但垮证据是证据上的回归,收敛检查看见。

对应原课程:Phase 19 · Lesson 55 · critic-loop(原英文 phases/19-capstone-projects/55-critic-loop/docs/en.md)。本节属「AI Scientist」赛道第六节。

学习目标

阅读完本节,你应当能够:

  1. 跨五个固定维度给论文草稿打分:清晰度、新颖度、证据、方法、相关工作。
  2. 把每轮批判作结构化修订 diff 施加,而非自由重写。
  3. 通过跨轮比分检测收敛;在 plateau、target 达成、或预算耗尽时停。
  4. 用 max-iteration 预算上限封轮数,使不收敛的批判不永远跑。
  5. 发每轮 trace 使仪表盘或下一阶段能绘分轨迹。

一、问题与直觉

为什么五个固定维度

自由形式批判是返建议段的模型。下一轮修订把段当环境上下文,改写是否触及批评不可验,因批评从无结构。五维给框架契约:

分是向量。框架跨轮盯每维。升清晰度但垮证据的修订是证据上的回归,收敛检查看见。只有模型的批判给不了这保证。

Critique 的形状

每建议带它改进的维度、目标的节、与修订器可施加的 edit 指令。修订器也是可调用对象。本节发确定性修订器,把 edit 指令解为追加到节。模型驱动的修订器会把同字段解为提示。契约不变。

收敛规则,按序

批判循环在三条件任一触发时终止:

target 最严:五维(清晰度/新颖度/证据/方法/相关工作)都须 >= target_score(默认 8.0)才返成功。高均值但一维弱不够。plateau 检测比当前轮均值与上轮均值,改进低于 plateau_epsilon(默认 0.1)连续两轮则 plateau 退出。budget 是轮数硬上限(默认 5)退出。序要紧:target 胜 plateau 胜 budget——若第三轮同迭代既达 target 又会触发 plateau,结果是 target 非 plateau。

为什么 plateau 检测跑两轮

一轮 plateau 是噪声。真批判即便对固定草稿每迭代返略不同的分,因确定性打分仍依赖哪些建议被施加及顺序。要求连续两轮 plateau 滤掉噪声。框架报 plateau 则草稿真停改进了。

二、从零实现

本节的确定性批判器

本节不调模型。发的批判器是可调用对象,基于三信号打分:平均节正文长(清晰度)、图数与引用数(证据)、论文元数据的 originality_tag 字段(新颖度)。修订器知如何推每分上:

clarity 随平均节正文长增而长 novelty 随 originality_tag 设为 "high" 而长 evidence 随某节 figure_refs 非空而长 methodology 随存在带正文的 "Method" 节而长 related-work 随存在带正文的 "Related Work" 节而长

修订器把每建议解为目标追加。第一轮后框架可观察分上升。测试用此性质断言循环缩差距。

完整循环契约

框架拥有轮计数器、trace、收敛检查。批判器拥有分。修订器拥有 diff。三者不触他者状态。

code/main.py 定义 CritiqueSuggestionCritic 协议、Reviser 协议、CriticLoopmake_deterministic_critic_pair 工厂(返确定性批判器与匹配修订器),含最小 Paper 形状使本节独立。

class CriticLoop: def run(self, draft, max_rounds=5, target=8.0, plateau_eps=0.1): trace = [] for r in range(1, max_rounds + 1): crit = self.critic(draft, round=r) # 分向量 + 建议 draft = self.reviser(draft, crit.suggestions) # 结构化 diff trace.append(TraceEvent(r, crit.scores, len(crit.suggestions))) reason = self._converged(crit.scores, trace, target, plateau_eps) if reason: return CriticResult(draft, trace, reason) return CriticResult(draft, trace, "budget")

设计要点:trace 优先设计防坏批判——产永不改进分的建议的批判器会把循环锁进 max-iteration 上限,trace 使这可见(五轮分平、verdict budget),用户读作批判 bug 非草稿 bug;只露终稿的替代隐藏诊断。五维分向量使收敛可验:升一维垮另一维是回归,框架看见。target/plateau/budget 序要紧,边界冲突时 target 胜。

三、框架对比

真实学术批判工具(OpenReview 自动审稿、ReviewerGPT、Elicit)用 LLM 打分,但结构化分向量是共同抽象。多智能体辩论(多批判器互审)是单批判器的扩展,需仲裁。本节的 Critic/Reviser 协议使批判器与修订器可换——mock 替真 LLM,契约不变。自我修正(self-refine)文献的核心发现:结构化反馈比自由文本反馈收敛快、可测。本节确定性批判器的价值是断言单调改进——真 LLM 随机,先在 mock 上把循环契约跑通再换真模型。维度权重是扩展(研讨会论文权重新颖度高于方法,期刊反之),加权均值替简单均值,契约不变。

四、可复用产物

code/main.py + code/tests/test_critic_loop.py(覆盖第一轮后单调改进、调好草稿的 target 收敛、两轮平后的 plateau 检测、无建议改进时的 budget 耗尽、修订器施加建议、trace 形状)。CriticLoop.run(draft) 是编排器入口,返 CriticResult(终稿、trace、收敛理由)。trace 供第 54 节迭代调度器读,决定分支是否值得留。换真批判器(真 LLM 打分),循环与收敛逻辑不动。

五、练习

  1. 维度权重:给收敛检查加维度权重(研讨会重新颖度,期刊重方法),讨论对收敛的影响。
  2. 配对批判器:加第二批判器在修订器见前仲裁建议,对比单批判器的收敛速度。
  3. 真 LLM 批判:把确定性批判器换成真 LLM 打分,跑同草稿,观察分的随机性。
  4. plateau 阈值:扫 plateau_eps 从 0.05 到 0.3,观察退出轮数与最终分。
  5. 坏批判注入:让批判器产永不改进分的建议,确认 trace 露分平、verdict budget。

本节要点回顾

  1. 五维分向量:清晰度/新颖度/证据/方法/相关工作,跨轮盯每维使回归可见。
  2. 结构化修订 diff:建议带维度/目标/编辑,修订器施加非自由重写。
  3. 三收敛规则按序:target(五维都达标)> plateau(连续两轮平)> budget(轮数上限)。
  4. plateau 跑两轮:滤确定性但依赖施加顺序的单轮噪声。
  5. trace 优先防坏批判:分平 + budget verdict 露批判 bug 非草稿 bug。
  6. 批判器/修订器可换:协议使 mock 替真 LLM,循环契约不变。

下一节,我们做「迭代调度器」——假设队列喂并行实验槽,UCB 评分剪低产分支,结果扇回重排队列。


发布者: 作者: Rohit Gupta 转发
评论区 (0)
U