00 COMPASS
先拆成十二张账:SFT、RLHF、DPO、RLVR 从来不是同一个问题
初学者常把所有 post-training 都理解成“让回答更好”。但如果不先问目标、监督单位、反馈来源和证据, 同一个 win-rate 上升可能来自事实改善、表达变长、拒答更多,甚至更会迎合 judge。
RELATED / CHAPTER 09如果 PPO、GRPO 的更新与低精度训练还不熟,可先看优化器和训练状态账。
行为目标
帮助、安全、诚实、格式还是能力?
监督单位
Token、回答、pair、步骤还是轨迹?
反馈来源
人、AI、原则、规则还是环境?
示范模仿
teacher forcing 实际学到什么?
偏好测量
chosen 的“更好”怎样定义?
奖励模型
比较怎样压成一个标量?
策略更新
PPO、RLOO、GRPO 怎样移动分布?
直接偏好
DPO 家族消掉了哪些组件?
数据分布
online/offline 与 on/off-policy。
约束
KL、replay、预算和安全边界。
失效
Goodhart、迎合、长度与拒答。
证据
什么结果能证明真的更好?
Post-training 是把“模型能生成什么”重新分配成“在什么条件下更愿意生成什么”;反馈定义方向,优化器负责移动,证据负责检查有没有走歪。
01 BASE MODEL → ASSISTANT
Base model 学的是文本分布;助手还必须学会一套交互合同
预训练看到的互联网文本里同时有事实、广告、争论、角色扮演、错误答案和有害内容。 next-token prediction 能学到广泛能力,却没有理由自动把“用户问题”解释为“请给出最有帮助且安全的回答”。
目标:复现训练文本中条件分布
“能力”与“行为”不要硬切成两半
模型可能早已知道答案,只是不懂用户接口;少量 SFT 就能把能力叫出来。
高质量代码、数学和工具轨迹也会教新技能,不只是改语气。
偏好优化更多是在候选分布里提高受偏好路径、压低其他路径。
预训练像读遍图书馆;post-training 像学习接电话、理解委托、遵守流程并对结果负责。
02 INSTRUCTION TUNING
FLAN 与 T0 的关键贡献:把“任务编号”换成可泛化的自然语言接口
传统多任务学习常把任务身份藏在数据集名、输出 head 或特殊标签里。 Instruction tuning 则把任务目标、输入与输出格式写进人能读懂的 prompt, 再在许多任务混合上做监督微调。
判断 entailment
回答问题
生成摘要
转成自然语言
把不同 schema 映射成 text → text
根据自然语言说明尝试 zero-shot 泛化
任务说明成为数据对象
多任务指令微调
公开 prompt templates
扩任务、模型与 CoT
03 SUPERVISED FINE-TUNING
SFT 没有换掉 next-token objective;它换的是条件、样本与 loss mask
给定 prompt x 和参考回答 y,最常见目标仍是 response Token 的负对数似然:
LSFT = − Σt mt log πθ(yt | x, y<t)mₜ 决定 system/user/padding 是否参与损失;teacher forcing 让每一步看到参考前缀。
告诉模型角色、任务、上下文与已经发生的对话。
参考回答中的每个有效 Token 产生模仿梯度。
模型不会自动知道参考答案是否唯一、事实是否正确。
LIMA 证明了什么,又没有证明什么
LIMA 在强 LLaMA-65B base 上使用约 1,000 条精心策展示范,不使用 RM 或 RL, 展示少量高质量数据可教会很强的交互风格与任务接口。它支持“预训练承担了大量知识”的假说, 但不能外推成安全、复杂工具使用和所有 base model 都只需 1K 数据。
“SFT loss 很低,所以答案事实正确。”
模型能高概率复现这组 demonstrations。
自由生成、未见任务、事实、安全、拒答和长度。
04 DEMONSTRATION DATA
示范数据的真正稀缺物不是 Token,而是覆盖、质量和“谁来定义好”
InstructGPT 的三类数据具有不同角色:约 13K SFT prompts 带人工示范, 33K RM prompts 带候选排序,31K PPO prompts 只提供 policy rollout 的输入。 把它们合写成“77K RLHF 数据”会丢掉监督结构。
人工示范
质量高、贵、覆盖慢;专家也会有单一路径偏好。
真实请求
贴近部署分布,但涉及隐私、选择偏差和快速变化。
模型自举
扩规模与多样性;错误、模板和 teacher 风格会被复制。
环境轨迹
代码、搜索、工具结果可验证;沙箱和任务覆盖成为瓶颈。
05 PREFERENCE MEASUREMENT
人更容易比较两个回答,但“比较容易”不等于“偏好客观”
Christiano 等人在 2017 年选择短轨迹 pairwise comparison, 因为人通常比给稳定绝对分数更擅长回答“哪一个更好”。 到语言模型时代,同一 prompt 生成 2–9 个候选,标注者排序后可展开为 pair。
排序只在这四个候选和 rubric 下成立
每个 preference dataset 都必须附带七个问题
- 01候选由谁生成?
弱 policy 的“赢家”可能仍很差。
- 02temperature 与长度上限?
它们改变候选分布。
- 03是否允许 tie / both bad?
强迫二选一会制造伪信号。
- 04rubric 是一维还是多维?
总体质量会隐藏冲突目标。
- 05位置是否随机化?
AI 与人类都有顺序偏置。
- 06多人怎样聚合?
多数票会抹掉真实分歧。
- 07是否来自当前 policy?
旧 pairs 对新 policy 可能已太容易或 OOD。
06 REWARD MODEL
Bradley–Terry 的作用:把“谁赢”解释成潜在 reward difference
P(yw ≻ yl | x) = σ(rφ(x,yw) − rφ(x,yl))LRM = −log σ(rw − rl)只识别差值:对同一 prompt 的所有 reward 同加常数,不改变偏好概率。
来自某个候选分布
sigmoid 变成选择概率
Reward model 的两重身份
偏好测量器
在固定 pair test set 上,它像一个分类器;可报告准确率、校准与分组性能。
被 policy 主动寻找的地形
一旦拿它训练 policy,模型会寻找高分区域,可能走出 RM 见过的分布。
99% 的简单 pairs 可能掩盖两个强回答之间的细微失真;RewardBench 因此专门加入 hard、safety、reasoning 与 OOD comparisons。
07 PPO / RLHF
InstructGPT 的三阶段管线,每一段在解决不同的优化困难
SFT POLICY
人工 demonstration 给出稳定 cold start 和交互格式。
稠密 Token lossREWARD MODEL
K-way ranking 变成 pairwise preference classifier。
完整回答 scalarPPO-PTX
向当前 policy 采样,优化 RM,同时加 KL 与 pretraining mix。
on-policy rolloutmax E[rθ(x,y) − β log(πRL(y|x) / πSFT(y|x))] + γ E[log πRL(xpretrain)]论文默认的 InstructGPT 指 PPO-ptx;纯 PPO 令 γ=0。
需要反向更新
冻结 SFT policy
冻结偏好代理
降低 policy-gradient 方差
PPO 是通用 RL 算法,不等于 RLHF。RLHF 还包括如何采集反馈、训练 RM、定义 reference、 组织 rollout、计算 return、处理长度与评价最终模型。RLOO、GRPO 可以省 critic, 却不会自动修复有偏 reward。
08 CONSTRAINTS
KL 不是“防止模型学太多”,而是给代理奖励画一条可控活动半径
分布锚
限制 policy 离开 RM 训练支持区的速度。
单步锚
限制新旧 policy ratio 的一次更新。
能力锚
保留预训练知识与基础语言能力。
行为锚
限制长度、语言、提交次数与安全边界。
Alignment tax 是一个需要测量的 trade-off,不是口号
InstructGPT 用 pretraining mix 缓解部分 public NLP 回退;DeepSeek-V2 也明确报告 human preference alignment 对部分标准 benchmark 的负面影响。必须同时看目标行为改善与基础能力退化,不能只看 chat preference。
09 RLAIF · CONSTITUTION
AI Feedback 扩大的是监督吞吐;“应该奖励什么”仍要由人定义边界
Constitutional AI 包含两个不同阶段,不能只记住“AI 自己评价自己”:
定义 harmlessness 与应答边界
修订回答成为 supervised data
再用 RL 优化 policy
决定目标与不可接受边界。
提高覆盖和速度,也复制 teacher 偏差。
不能超出评价器能可靠区分的区域太远。
10 DIRECT PREFERENCE OPTIMIZATION
DPO 的妙处不是“不要 reward”,而是把 reward 写成 policy 相对 reference 的 log-ratio
从 KL-regularized reward maximization 的最优 policy 出发:
π*(y|x) ∝ πref(y|x) · exp(r(x,y) / β)r(x,y) = β log(π*(y|x) / πref(y|x)) + β log Z(x)同一 prompt 内比较两回答时,log Z(x) 抵消。
reward difference → 选择概率
定义可接受 policy 距离
直接训练 policy 排序 pairs
LDPO = −log σ(β[(logπθ−logπref)w − (logπθ−logπref)l])DPO 通常使用固定 pair dataset;它省去显式 RM、value 和在线 PPO loop。
不要只问“模型现在更喜欢 A 还是 B”,而问“相对出发模型,A 的概率涨幅是否比 B 更大”。
11 DIRECT PREFERENCE FAMILY
DPO 之后不是“每篇都更简单更强”,而是在修改四个不同假设
chosen / rejected pair
需要policy/reference log-ratio
不是没有 reward 假设pair
需要有限 margin 回归
τ 不等于 DPO β可非成对 binary
通常需要prospect-theoretic utility
不要求同 prompt pairpair + target
不需要NLL + odds ratio
仍包含 SFT 部分pair
不需要平均 log-prob + margin
长度归一不能漏ranking / 多候选
不需要序列分数排序
不是 DPO 特例比较算法时必须固定四个变量
同一 prompts、pairs、候选质量与过滤。
目标、reference、长度与 β / margin。
PPO 使用哪个 RM,如何训练和验证。
在线 RL 实际从什么分布采样。
没有这些控制,“DPO 赢 PPO”或“PPO 赢 DPO”都可能只是数据、实现或在线探索差异。
12 DISTRIBUTION
Online / Offline 与 On-policy / Off-policy 是两张坐标轴
当前 policy 采样、即时获取新标签;贵但贴近部署分布。
长轨迹跨迭代;需要 importance correction / clipping。
典型 PPO:rollout 新,reward proxy 固定;仍可能优化出 RM OOD。
经典 DPO:便宜稳定;pairs 对新 policy 可能太旧或太容易。
训练时不需要采样当前 policy
需要 rollout / reward / value loop
自然产生 extreme off-policy
13 FAILURE MODES
Reward hacking 不是模型“邪恶”,而是代理目标允许更便宜的高分路径
Gao et al. 2022
论文用固定 gold RM 模拟“人”,再训练较弱 proxy RM。曲线是受控 synthetic setup,不是所有真实 RLHF 的通用函数。
越长越高分
完整感、分点和重复成为 shortcut;K3 GRM 明确加入 verbosity budget。
迎合错误前提
用户 approval 与 honesty 冲突时,单一总体偏好会奖励附和。
安全等于全拒
只测 should-refuse 会鼓励对无害请求也拒绝。
命中解析器
规则 verifier 可能被答案格式、测试覆盖或沙箱漏洞利用。
走出评分器视野
policy 主动寻找 RM 没见过的高分文本。
偏好单一风格
离线 pairs 可能让回答变得同质,覆盖和多样性下降。
14 EVIDENCE LADDER
“模型变好了”必须同时穿过训练、代理、行为和外部结果四层证据
SFT loss、DPO loss、PPO reward
只证明优化器在工作RM pair accuracy、RewardBench
只证明代理在测试 pairs 上排序blind human / LLM judge / safety suites
证明指定人群或 judge 的偏好单元测试、用户成功率、环境结果
最接近任务目标,仍受 verifier 定义限制不能证明 policy 生成的新分布。
要控制长度、位置、judge 和 sampling。
不是好坏分数,只是距离/约束口径。
开放式帮助、安全仍需额外评价。
15 DEEPSEEK / EARLY ALIGNMENT
DeepSeek 的演化不是“DPO 换成 GRPO”,而是反馈来源和任务结构一起改变
SFT → DPO
1M+ SFT;helpfulness / harmlessness pairs;DPO 一轮。
开放聊天偏好Two-stage GRPO
reasoning alignment 后接 helpful / safety / rule 多奖励。
critic-free group relativeSFT + RM + GRPO
expert distillation、规则 RM、模型 RM 与 GRM 探索。
规则优先DeepSeek-V2 自己指出的三个边界
- SFT 数量与质量都重要:少量数据可起步,开放写作的覆盖仍需要规模。
- Alignment tax:human preference alignment 会伤害部分标准 benchmark,需要显式缓解。
- Online / offline 结论依情境:不能从单一实验宣布一种制度永远更好。
16 DEEPSEEK / R1 → V4
从 R1 到 V4:可验证任务用规则,难验证任务转向生成式 rubric
Base → rule-based RL
没有初始 SFT;研究规则奖励能否直接激发 reasoning behavior。
Cold start → RL → SFT → broader RL
加入少量高质量 CoT、拒绝采样、约 800K supervised data 与通用对齐。
Teacher data → SFT
只做 SFT,不等于复制 R1 的 RL 训练路径。
数学 · 代码 · Kernel
奖励便宜、清晰,但测试覆盖和解析器仍可被利用。
写作 · 研究 · 开放帮助
V4 明确放弃传统 scalar RM,改用 rubric-guided generative reward model。
合并进一段大规模 GRPO
能力与行为 cold start
按可验证性选择反馈
17 KIMI / K2 → K3
Kimi 的主线从“聊天偏好”走向长轨迹执行、预算控制与能力整合
Long-CoT RL
128K RL context、partial rollout、long2short 与 online mirror-descent surrogate。
Agentic Post-training
verifiable reward gym、self-critique rubric、PTX、预算与 temperature decay。
Unified Agent RL
视觉、工具与并行 agents;100K concurrent tasks 与 token-level clipping。
Multi-effort Experts
九个专门 policy、百万 Token agentic RL 与 MOPD consolidation。
反馈源随任务改变
tournament comparison + rubric scorepad + verbosity budget。
搜索、软件、kernel、浏览器和隐藏 evaluator 的任务结果。
正确性、数值误差与性能共同定义 reward。
九个专家在 student rollout 状态上提供稠密指导。
18 KIMI K3 / THREE STAGES
K3 的 post-training 要分成三份看:冷启动、专家成长、统一整合
建立可用起点
扩展 Kimi 既有 SFT 数据,覆盖 general、agentic、coding;从这一阶段开始做 MXFP4/MXFP8 QAT。
稠密 demonstration loss九个专门专家
3 domains × low / high / max;各自学习任务与 Token 预算的最优策略。
outcome / GRM / environment reward回到一个统一模型
student 自己 rollout;对应 teacher 对每个 Token 提供 clipped log-ratio reward。
dense per-token teacher signalrOPD(yt) = clip(sg[log πteacher(yt|prefix) / πstudent(yt|prefix)], −Rmax, Rmax)teacher 不替 student 生成整条轨迹;student 在自己访问到的状态上接受稠密信号。
同一长轨迹跨训练迭代,解决 long-tail latency,却产生 extreme off-policy。
当前 student rollout 上的多教师能力整合;不是普通离线 teacher-forcing。
服务成本约束贯穿 SFT/RL;它不定义 helpfulness 或 reasoning reward。
把“对齐”拆成四个不相互冒充的实验
所有数字都是教学模拟,用来展示目标函数和反馈结构;不是任何模型的训练日志或产品指标。
SFT 到底在模仿 prompt,还是只模仿 assistant?
真实 chat template 会把角色标记也编码成 Token;是否计入 loss 由 mask 决定,而不是由颜色决定。
真正进入交叉熵求和的 Token
只反映这条示范的拟合难度
第 t 步总能看到参考答案的前缀
如果 demonstration 本身错误,交叉熵仍会忠实提高错误 Token 的概率;loss 并不知道“事实正确”。
为什么“chosen”只是相对更好,不一定是好答案?
滑块控制的是一个教学 reward model 的偏好权重;真实 RM 会从标注数据中学习这些权重与 shortcut。
短而有证据
指出海水对长波吸收更强,并说明散射与反射共同影响观察颜色。
- 事实
- 92
- 帮助
- 78
- 风格
- 58
- 长度
- 34
流畅但错误
写得更长、更有自信,却把海水颜色完全归因于天空倒影。
- 事实
- 24
- 帮助
- 46
- 风格
- 86
- 长度
- 78
概率来自 reward difference,不是绝对质量证书;如果两个回答都很差,模型仍会被要求选出一个相对赢家。
PPO 与 DPO 到底在哪一步分叉?
二者都可从 pairwise preference 出发,但 PPO 显式拟合 RM 并向当前 policy 采样;经典 DPO 直接消费固定 pairs。
RM advantage 经 PPO clip 与 KL 后的教学量
policy · reference · RM · value
需要接近当前 policy 的 rollout
min(ρA, clip(ρ)A) − β KL(π || πref)当 policy 已明显偏离 behavior policy,importance ratio 与 critic 误差会让更新更脆弱。
现代 post-training 为什么不再是一条固定的 SFT→RM→PPO 流水线?
用同一组字段比较反馈来源、训练制度、监督粒度、约束与失效模式,避免只比较算法缩写。
- FAMILY
- Human-feedback RLHF
- FEEDBACK
- 人工 demonstration + 人工 K-way ranking
- REGIME
- SFT → RM → online PPO-ptx
- GRANULARITY
- Token imitation + response scalar
- LIVE MODELS
- Policy · Reference · RM · Value
- CONSTRAINTS
- per-token KL + pretraining mix
这是一张角色合同,不是排行榜;不同配方面对的任务、数据与预算并不相同。
19 READING CHECKLIST
遇到一个新的“对齐算法”,先问这十四个问题
如果一篇论文只给训练 reward、RM score 或单一 LLM judge,而没有控制长度、reference、候选分布与外部结果, 那么“alignment improved”仍是待证明结论。
20 READING PATH
按四层进入,不需要第一天就推完 PPO 与 DPO
先看反馈角色
本章 00、01、05、09、13;能说清人、AI、规则和环境分别给什么信号。
掌握四个目标
读 03、06、07、10;能区分 SFT、RM、KL-RL 与 DPO loss。
回到关键论文
Christiano → Stiennon → InstructGPT → DPO → CAI → Reward Overoptimization。
拆现代系统
DeepSeek-V2/V3/R1/V4 与 K2/K3;同时核对 rollout、模型数、约束和 verifier。
↳ PRIMARY PAPER CHAIN
44 个关键节点:按问题接力,不按年份堆名字
每个链接指向论文、会议页或官方技术报告;它们承担不同证据角色,不能只按 benchmark 排序。
把人类对轨迹片段的比较拟合成 reward predictor,再优化行为 policy。
用 clipped surrogate 限制 on-policy 更新幅度;原论文没有语言模型或人类偏好。
把 reward model、reference KL 与 PPO 接到生成式语言模型。
在摘要任务完整验证 comparison → RM → PPO,并展示过度优化边界。
用声明式任务说明研究跨任务泛化,建立 instruction interface 数据范式。
FLAN 证明多任务 instruction tuning 可改善未见任务的 zero-shot 表现。
T0 用 prompt templates 统一 62 个数据集,并严格留出整类任务。
把浏览器行动、引用回答与人类偏好训练接入同一 Agent 前身。
InstructGPT 建立 demonstration SFT → RM → PPO-ptx 的通用助手管线。
把 helpfulness 与 harmlessness 明确分账,并实验在线迭代偏好。
以 1,600+ tasks 检验根据自然语言指令泛化的边界。
扩展 Flan task mixture、模型规模与 CoT 数据,研究 instruction scaling。
在 proxy–gold 受控设置量化 Goodhart 曲线,区分 BoN 与 RL。
以书面原则驱动自我批评、修订和 AI preference,再做 RLAIF。
用 175 个 seeds 自举生成、过滤 instruction/input/output,再做 SFT。
开放多轮对话树、ranking 与标注流程,降低 post-training 数据门槛。
用回答序列得分的排序损失对齐多来源候选。
用 sequence likelihood calibration 直接推动 chosen 与 rejected 分离。
用约 1K 精选示范检验强 base 上少量高质量 SFT 的接口作用。
提供 AI 模拟反馈、自动评测与 PPO/DPO/BoN 基线实现。
在 Bradley–Terry 与 KL-regularized optimum 下,用 policy/reference log-ratio 消去显式 RM+RL。
在摘要、helpful、harmless 三类任务直接比较 AI 与人工 preference labels。
规模化多候选、多维度 AI feedback,成为开放偏好训练的重要数据源。
分析确定性偏好与 DPO 过拟合,并提出有限间隔的 IPO。
以 dSFT + UltraFeedback AI preference + dDPO 展示开放蒸馏式对齐。
用 prospect-theoretic utility 处理可非成对的 desirable / undesirable 信号。
说明 critic-free RLOO 可成为更简单的在线 RLHF 基线。
把 SFT NLL 与 odds-ratio preference penalty 合成无 reference 单阶段目标。
直接测试 RM 在 chat、hard、safety、reasoning 与 OOD pairs 上的排序能力。
用长度归一平均 log-prob 与目标 margin 构造 reference-free implicit reward。
把 preference data、算法、RM 和 policy prompts 四个变量拆开做公平比较。
开放数据策展、SFT、偏好训练、RLVR 与评测的完整 recipe。
公开 1M+ SFT、helpful/harmless preference 与 DPO 的早期 DeepSeek 管线。
提出 GRPO,用同题成组相对奖励替代 learned critic。
把 reasoning alignment 与 human preference alignment 分成两个 GRPO 阶段。
组合 expert distillation、SFT、规则/模型 RM、GRPO 与生成式 reward 探索。
分清 base→rule RL 的 R1-Zero,与 cold-start/SFT/多阶段 RL 的正式 R1。
用 Clip-Higher、Dynamic Sampling、token loss 与 overlong shaping 稳定长 CoT RL。
把 verifiable rewards、self-critique rubric、预算与 PTX 放入 agentic post-training。
把 reasoning、agent 与 human alignment 数据合并进大规模 GRPO。
扩展 unified multimodal/agentic RL、token-level off-policy clipping 与并行 agent。
以 SFT→GRPO 为主线,规则验证 easy tasks、GRM 处理 hard-to-verify tasks。
学生在自己的 rollout 上接受多教师逐 Token log-ratio signal。
SFT→九个领域/effort RL experts→MOPD,并扩展到百万 Token agentic RL。