Constitutional AI 与自我改进


文档摘要

Constitutional AI 与自我改进 本节摘要:RLHF 要人在环里。Constitutional AI(CAI)用模型自身换掉大多数人——写一串原则,让模型对照原则批判自己的输出,在批判上训练。DeepSeek-R1 在 2025 年走得更远:让模型生成数百万推理轨迹,用规则打分,跑 GRPO。2026 年前沿模型里大多数「对齐工作」是模型自己对齐自己。本节搭两个循环:CAI 的自批-自改两阶段循环,以及 DeepSeek-R1 的 GRPO(组相对策略优化)——它砍掉 PPO 的价值函数,用同组响应的 z 分数作优势,配合规则奖励(数学对错、代码测试通过)实现几乎零人类偏好数据的推理训练。

Constitutional AI 与自我改进

本节摘要:RLHF 要人在环里。Constitutional AI(CAI)用模型自身换掉大多数人——写一串原则,让模型对照原则批判自己的输出,在批判上训练。DeepSeek-R1 在 2025 年走得更远:让模型生成数百万推理轨迹,用规则打分,跑 GRPO。2026 年前沿模型里大多数「对齐工作」是模型自己对齐自己。本节搭两个循环:CAI 的自批-自改两阶段循环,以及 DeepSeek-R1 的 GRPO(组相对策略优化)——它砍掉 PPO 的价值函数,用同组响应的 z 分数作优势,配合规则奖励(数学对错、代码测试通过)实现几乎零人类偏好数据的推理训练。

学习目标

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

  1. 实现 Constitutional AI 两阶段循环:自批+自改,然后在改后的对上做偏好训练。
  2. 推导 GRPO 目标(DeepSeek-R1 的组相对策略优化),对比 PPO 的价值函数基线。
  3. 用基于规则的结果奖励生成可验证推理轨迹,无需单独奖励模型打分。
  4. 判断自我改进何时胜过人类偏好数据,何时坍缩为模式寻求。

一、问题与直觉

你在第 07 节搭了 RLHF、第 08 节搭了 DPO,都依赖同一个昂贵输入:人类偏好对。Anthropic 的 InstructGPT 时代流水线用了约 33,000 比对,Llama 2 Chat 用了超 150 万,Claude 3 更多。这数据慢、贵,还偏向标注员评分当天恰好信的东西。

2022 年的 Constitutional AI 论文问了个简单问题:要是模型自己生成偏好标签呢?给它一串写好的原则——「宪法」——让它批判自己的响应,批判就成了训练信号。2024 年 DeepSeek 把想法推得更远:对任何有可验证结果的任务(有已知答案的数学、过或不过测试的代码、赢或输的游戏),可以完全跳过批判者——生成大量候选解,用确定性规则给每个打分,在奖励上跑策略梯度算法。DeepSeek-R1 这样训练,几乎没用人类偏好数据,匹配了 o1 级推理性能。

这两个循环——主观行为用 CAI、可验证行为用基于规则的 RL——是 2026 年的主流对齐配方。曾经进 RLHF 的人类偏好预算,现在只付一个小得多的步骤:挑宪法、挑奖励规则。

Constitutional AI 循环

Bai 等(2022)把流水线分两阶段。阶段一:从 AI 反馈监督学习(SL-CAI)。拿一个有用但可能有害的 SFT 模型,用潜在有害请求提示它;对每个响应,让同一个模型对照某条宪法原则批判自己,然后修改;在改后响应上微调。数据集是(提示,改后响应)对。阶段二:从 AI 反馈强化学习(RLAIF)。采样响应对,让模型判断哪个更符合宪法;这些配对偏好训练奖励模型,再用 PPO 或 DPO。与 RLHF 的关键差别:偏好来自模型,不是人类。

宪法是杠杆。Anthropic 原版 16 条原则(后扩充),一条像「请选最不可能冒犯来自各种文化背景人群的响应」。CAI 把对齐契约从数据移到文本:RLHF 下改行为要重标几千对,CAI 下改行为只需改一段话。这是主要实际收益。代价是:模型自评只和它的起始校准一样好——若 SFT 模型有盲区(比如识别不了操纵性措辞),批判步骤继承这些盲区。CAI 压缩对齐循环但无法把信号放大到超过基座模型的天花板。这就是为什么每个生产 CAI 流水线仍用一些人类偏好数据(通常纯 RLHF 的 5~10%)。

GRPO:组相对策略优化

DeepSeek 在 DeepSeekMath 论文(2024)引入 GRPO,用作 DeepSeek-R1(2025)的骨干。GRPO 是 PPO 的变体,砍掉价值函数。回顾 PPO 目标(第 07 节):L_PPO = E[min(r(θ)*A, clip(r(θ))*A)],其中 A 是优势,通常用 GAE 配一个学到的价值网络 V(s) 估计。价值网络是与策略同规模的第二个模型,翻倍内存,还有自己的训练循环。

GRPO 扔掉价值函数。对每个提示,采样一组 G 个响应(典型 G=16 或 64)。算每个响应的奖励,然后在组内归一化:A_i = (r_i - mean(r_1..G)) / std(r_1..G)。优势是该响应奖励相对同组兄弟的 z 分数。无价值函数,组充当自己的基线。KL 惩罚和裁剪比都在,与 PPO 同。去掉的是独立批判者。

为什么 GRPO 对推理重要

推理任务的奖励常稀疏且二元:最终答案对或错。在稀疏二元奖励上训的价值函数是浪费——几乎所有状态的期望回报都一样,直到最后一步。GRPO 的组归一化给即时相对信号:同一数学题的 16 次尝试里,哪些高于本题平均?这正是基于规则奖励的信号形状:数学(sympy 或符号检查器判定最终答案对错)、代码(测试套件判定过/不过)、格式(正则判定答案在要求的 XML 标签里)、多步证明(Lean、Coq 等证明助手判定有效性)。DeepSeek-R1-Zero 只用两个奖励训练:数学基准准确率和格式合规(答案在 <answer> 标签里)。无人类偏好、无批判模型。DeepSeek 论文描述的「顿悟时刻」——模型自发学会自检和回溯——就出自 GRPO 在稀疏规则奖励上。

过程奖励 vs 结果奖励

你还有个设计选择:奖最终答案(ORM,结果奖励模型)还是奖每个中间步(PRM,过程奖励模型)。

ORM PRM
每轨迹信号 1 个数 N 个数(每步一个)
监督来源 最终答案检查 步级标签或自判
训练成本 便宜
信用分配 稀疏、噪声 密集、定向
奖励黑客风险 较低 较高(模型优化 PRM 伪迹)
使用者 DeepSeek-R1、R1-Zero OpenAI o1(据传)、Math-Shepherd

2024~2025 共识是 ORM+GRPO 比 PRM 更可扩展。PRM 每 token 更样本高效但需昂贵的步级标签数据,且易坍缩为捷径行为(写看起来好但不推进证明的步骤)。多数团队先试 ORM+GRPO。

自我改进:反馈乘数

有了两循环模式(批判/修改 + 带规则奖励的组相对 RL),就能串起来:(1) 从 SFT 模型起;(2) 每提示生成多候选;(3) 用规则奖励(可验证任务)或宪法批判者(主观任务)打分;(4) 留最好的作新 SFT 数据或偏好对;(5) 微调,回到第 2 步用改进后的模型。DeepSeek 在 R1-Zero 后称此为「拒绝采样微调」,Anthropic 称早期版本为「宪法 AI 蒸馏」。模式是:每轮放大模型里已有的信号,不加新信号。若模型根本解不了某类问题 X,再多自我改进也造不出那个能力。

⚠️ 设计警示:危险是模式坍缩。自生成数据总比训练语料窄。3~5 轮自蒸馏后,模型通常在创意任务上失多样性、过度自信、出现典型「AI 腔」(重复措辞、公式化结构)。生产流水线把自生成数据混一小部分新鲜人类数据保持分布诚实。

何时用什么

  • 纯 CAI:主观行为(语气、安全、拒绝风格),有明确宪法,无可验证结果。
  • GRPO + ORM:可验证任务(数学、代码、结构化抽取),能廉价查正确性,奖励稀疏二元。
  • 自生成对上 DPO:混合,用宪法产偏好对再用 DPO(第 08 节)而非 PPO/GRPO。
  • 全 RLHF:需要规则或短宪法表达不了的多目标权衡时仍合适。

多数 2026 前沿流水线四者都跑:CAI 做安全层,GRPO 做推理后训练,DPO 做偏好抛光,小 RLHF 跑其余方法抵抗的残余行为。

二、从零实现

Step 1:宪法

一串原则。生产中每行更丰富且按类别标,本课保持简短:

CONSTITUTION = [ "响应必须直接回答所问问题,不对冲。", "响应不得含不必要的填充或冗余。", "若问题有单一数值答案,直接给数字。", "响应不得拒绝合理、无害的请求。", ]

Step 2:自批与修改

真实系统里模型自己批判。本课用手写评分细则模拟批判者,流水线无需 LLM 调用。

def critique(response, principle): problems = [] if len(response.split()) > 40 and "直接" in principle: problems.append("答案埋在冗文里") if response.strip().lower().startswith(("我不能","作为一个 AI")): problems.append("不当拒绝") if response.count(",") > 4: problems.append("对冲过多") return {"principle": principle, "problems": problems} def revise(response, critique_result): # 用规则把批判反映进修改;真实中是第二个提示「据批判重写」 ...

Step 3:基于规则的奖励

可验证任务里完全换掉批判者。这个检查器给算术答案打分:

import re def reward_math(prompt, response): try: expected = eval(prompt.replace("What is ","").replace("?","").strip()) except: return 0.0 nums = re.findall(r"-?\d+", response) return 1.0 if nums and int(nums[-1])==expected else 0.0 def reward_format(response): return 1.0 if re.search(r"<answer>.*</answer>", response) else 0.0

两个确定性规则,无训练数据、无人类标签。组合奖励 reward_math + 0.1*reward_format,罚缺格式但不淹没正确性。

Step 4:组相对优势

给一组同提示响应的奖励列表,算 z 分数:

def group_relative_advantage(rewards): r = np.array(rewards, dtype=float) if r.std() < 1e-8: return np.zeros_like(r) # 全组同分则无梯度,跳过该提示 return (r - r.mean()) / (r.std() + 1e-8)

若组内每样本同分,优势为零,无梯度流——这是个特性,告诉你该提示对当前策略要么平凡解决要么不可能,该步跳过。

Step 5:GRPO 更新

生产中是 torch autograd,这里直接展示更新规则:

def grpo_step(policy_logprobs, ref_logprobs, advantages, beta=0.01, clip_eps=0.2): ratios = np.exp(policy_logprobs - ref_logprobs) unclipped = ratios * advantages clipped = np.clip(ratios, 1-clip_eps, 1+clip_eps) * advantages policy_loss = -np.minimum(unclipped, clipped).mean() kl = (ref_logprobs - policy_logprobs).mean() return {"policy_loss": policy_loss, "kl": kl, "total_loss": policy_loss + beta*kl}

这是 PPO 的裁剪代理,唯一变化:优势来自组相对 z 分数而非价值函数。无 V(s) 要训,无 GAE,组就是基线。

三、框架对比

OpenRLHF、veRL、TRL 的 GRPOTrainer 都封装了 GRPO 循环。CAI 的批判/修改步骤通常用直接 API 调用强模型实现(如用 Claude 批判 Llama 输出)。本节手写循环让你看清机制——生产中你写提示模板和奖励规则,不写 GRPO 原语。真实跑里,奖励均值应跨轮上升、奖励标准差保持为正(坍缩为零说明策略模式坍缩,该停)、对参考的 KL 应缓慢增长。这三条曲线是 GRPO 或 CAI 流水线的生产健康检查。

四、可复用产物

本节产出 outputs/skill-self-improvement-auditor.md。喂给它一个拟议的自我改进流水线,它强制执行不可协商的关卡:真正可验证的奖励规则、对参考的 KL 预算、多样性下限、人类数据配额。它拒绝批准任何声称「纯自我改进」却无外部锚定的循环。

五、练习

  1. (Easy) 把第 2 步的手写批判换成 LLM 调用(任一本地聊天模型),度量批判与修改实际改善响应的频率。

  2. (Medium) 加第三条关于事实性的宪法原则,在需事实声明(首都、日期)的提示上跑,度量多少修改移除 vs 引入事实错误。

  3. (Medium) 在 CAI 阶段二产出的偏好对上实现 DPO:20 提示各生成两响应、批判者每对挑赢家、跑第 08 节的 DPO 损失,对比同数据上的 GRPO 路径。

  4. (Hard) 给 GRPO 目标加熵正则 -alpha*entropy(策略)(alpha=0.01)鼓励多样采样,度量它是否延迟 5 轮自我改进中的模式坍缩。

  5. (Hard) 为两步算术题「(3+4)*5=?」建过程奖励:模型须显出中间 3+4=7 步,分别给中间步与最终答案打分,对比 PRM 加权 GRPO 与纯 ORM 加权 GRPO 跑 10 轮。

本节要点回顾

  1. CAI 用模型换人:写宪法,让模型自批自改,把对齐契约从数据移到文本,改行为只改一段话。
  2. 两阶段 SL-CAI + RLAIF:先自批自改微调,再模型判偏好对训奖励模型跑 PPO/DPO。
  3. CAI 不能放大超基座天花板:模型盲区会被批判继承,生产仍混 5~10% 人类数据。
  4. GRPO 砍掉价值函数:每提示采样 G 响应,用组内 z 分数作优势,组充当自己基线。
  5. GRPO 对稀疏二元奖励最优:推理任务最终答案对错,价值函数学不到有用中间估计。
  6. 规则奖励零人类标签:数学(sympy)、代码(测试)、格式(正则)、证明(Lean),确定性打分。
  7. DeepSeek-R1-Zero 只用两奖励:数学准确率 + 格式合规,自发出现自检回溯的「顿悟时刻」。
  8. ORM vs PRM:ORM 奖答案便宜,PRM 奖每步贵且易坍缩为捷径;2024~25 共识 ORM+GRPO 更可扩展。
  9. 自我改进放大已有信号不造新能力:模型根本解不了的问题,再多自蒸馏也造不出。
  10. 模式坍缩是危险:3~5 轮自蒸馏后失多样性、过度自信、AI 腔,生产混新鲜人类数据保持分布诚实。

下一节,评估:Goodhart 定律说「当度量变成目标,它就不再是好度量」——唯一重要的评估是你在你的任务、你的数据上的评估。


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