Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

第3章 后训练:行为的塑形

第2章说明了数据、目标函数、Tokenizer、规模和算力如何形成基础能力,但预训练模型学到的首先仍是“像训练语料一样继续写”。产品需要的却是理解当前指令、遵守格式和边界、在不确定时说明限制,并在协作中稳定完成任务。能力形成与行为可用之间的差距,就是后训练要处理的问题。

本章的判断是:SFT、偏好优化和可验证奖励分别解决“应该怎样做”“多个可行答案哪个更好”以及“任务结果是否可判定”三类问题。它们能塑造模型的默认行为,却不能替代实时事实、工具权限、事务与审计;这些系统边界会在后续 Agent 工程中继续承担责任。

3.1 从续写能力到行为塑形

预训练模型留下的行为缺口

GPT 类模型通过 next-token prediction 学会了语言和大量文本模式,但训练目标没有直接告诉它什么是“有帮助的回答”。用户输入“帮我解释这个报错”,基础模型可能续写一段论坛帖子、模拟多个角色,或者直接生成一个没有上下文依据的修复方案。它在语言概率上可以很自然,在任务目标上却可能完全错误。

早期迁移学习主要在下游任务上训练分类器或序列到序列模型,解决的是任务准确率;大模型产品还需要处理意图理解、回答风格、拒答边界、格式遵循和多轮协作。FLAN 的工作表明,把许多任务改写成自然语言指令并进行混合微调,可以提升模型的零样本泛化 [1];InstructGPT 则把示范学习、偏好建模和强化学习组合成完整的助手训练流程 [2]。

这条路线经历了几个关键转折:先用 instruction tuning 解决“听不懂指令”,再用 preference learning 解决“多个可行答案如何排序”,随后用 Constitutional AI 和 RLAIF 扩大安全反馈,最后把可验证奖励用于数学、代码和复杂推理。每一步都解决了一个瓶颈,同时引入新的优化对象和新的评估风险。

问题—方法—效果—新限制

原始问题代表方法主要效果新限制
模型只会续写,不会按指令做事指令微调、SFT学会任务格式与回答角色依赖示范质量,容易模仿错误
多个答案都能完成任务,但质量不同人类偏好、Reward Model学会帮助性、真实性和风格偏好奖励是代理,存在 reward hacking
在线 RL 流程昂贵且不稳定DPO、IPO、KTO、ORPO直接从偏好数据优化策略仍然依赖偏好覆盖和参考模型
人工安全标注昂贵、覆盖有限RLAIF、Constitutional AI用原则和 AI feedback 扩展数据judge 偏差会被放大
长链推理难以用主观偏好衡量RLVR、过程验证、GRPO用可验证结果换推理成功率verifier 漏洞会成为新攻击面

因此,“对齐”不是单一算法,而是一组逐层改变行为的训练和评估方法。后续小节会分别说明它们依赖什么数据、优化什么目标、何时适用,以及哪些问题不能交给权重解决。

SFT本身就是后训练的一部分,不应把“做完SFT再开始后训练”写成阶段定义。目标需要区分任务能力、指令遵循、偏好质量和安全约束;知道怎样生成SQL,不等于会按JSON输出,更不等于拥有执行删除的权限。后训练能够改变候选行为,授权必须由外部系统执行。

3.2 数据、监督位置与训练契约

模板是输入协议,mask是监督协议

采用第1章的 \(B,T,D\) 与第2章的概率定义。聊天模型实际看到的是角色、内容、分隔符与特殊token形成的序列。先固定底座、Tokenizer和chat template修订,再格式化样本;不要把一份对话JSON直接当成所有模型都能理解的通用协议。Transformers v4.45.2文档说明,模板已经负责特殊token时,后续重复添加可能破坏格式;训练也不能无条件插入只用于生成的assistant起始提示。[3]

教学上,样本分两层保存:逻辑消息层记录system/user/assistant/tool角色、工具调用ID与结果;token层记录input_ids、attention可见性和labels。训练可选择监督所有assistant轮,也可只监督最后一轮,二者都需明示。用户问题、系统文本和工具结果通常作为条件,不作为本章assistant-only目标的直接标签。这是本书选择的训练契约,不是所有框架的默认行为。

假设一条简化序列由 BOS U Q A R EOS PAD 七个token组成:U/A是角色,Q是用户内容,R是助手内容,符号只是教学占位,不是某Tokenizer的实际ID。若只监督R与EOS,则位于A的logits预测R,位于R的logits预测EOS;其他预测位置的损失权重为零。工具名和参数若属于assistant动作,应被监督;工具实际返回内容则作为后续条件,不能训练模型伪造工具成功。

记录对象含义必查错误
input_ids模板化后的完整条件序列重复BOS/EOS、角色错位、截断动作参数
attention mask当前token可以读取哪些位置padding、跨样本、未来目标泄漏
loss mask / labels哪些目标token贡献梯度把用户或工具内容当助手目标
shift约定logits位置与下一目标的对应模型内部已shift,外部又shift一次

这两种mask不可互换:一个不计入loss的用户token,仍可以被助手读取;一个padding位置不仅不监督,还应按模型实现处理可见性。EOS是应学习何时结束的有效目标,PAD是补齐而非答案。若两者共用ID,仅按ID屏蔽会误删真正EOS监督,应结合有效长度和角色边界构造labels。

工具轨迹与数据划分

以下退款轨迹为教学假设。成功样本先由assistant调用 check_refund(order_id),tool返回资格与证据版本,再由assistant解释并生成待审批提案;资格检查与实际提交分开。超时样本则记录提交状态未知,让assistant查询操作状态或升级人工,而不是训练它说“超时所以一定失败、立即重试退款”。训练标签要体现系统允许的下一步,不能仅凭语言流畅纳入。

同一逻辑工单的不同轮次、改写版本和生成负例先归入同一组,再划分训练、验证与测试;之后各自packing。独立任务需要隔离可见性,不能只插EOS就假定切断Attention。训练集可用于拟合,验证集调参数,冻结测试集不反复挑模型;工具schema、错误语义和数据来源也要随样本版本保留。否则“离线学会调用”可能只是学习已过期接口。

3.3 SFT 的目标与失效模式

SFT 的数据结构与损失

监督微调通常使用 \((x,y)\) 样本,其中 \(x\) 是系统、用户和上下文,\(y\) 是目标助手回答。对多轮对话,训练一般只对 assistant token 计算损失,避免模型把用户问题也当作需要模仿的输出。目标为:

\[ \mathcal{L}_{SFT}(\theta)=-\sum_{t\in\mathcal{A}}\log \pi_\theta(y_t\mid x,y_{<t}), \]

其中 \(\mathcal{A}\) 表示被监督的 assistant token 位置。mask 设计很重要:如果系统消息、工具结果、用户内容和助手答案边界处理错误,模型会学到错误的角色关系,表现为复读用户输入、泄露隐藏提示或把工具返回内容当成自己的指令。

SFT 数据不必是“知识百科”。它主要塑造输入到输出的映射,包括任务分解、回答结构、拒答模板、工具调用格式、引用方式和不确定性表达。Self-Instruct 通过模型生成和筛选指令数据,展示了如何在人工种子有限时扩展任务覆盖 [4];LIMA 则指出,少量但一致、高质量的示范也能带来显著的对齐效果 [5]。这两项工作共同提醒我们:数量和质量不是简单替代关系,数据覆盖与示范一致性必须一起看。

数据设计:能力覆盖比表面多样更重要

一个成熟的 SFT 集合应该按任务分层,而不是把所有对话混成一个文件。常见分层包括:问答和解释、摘要与改写、结构化抽取、代码生成与修复、数学解题、多轮澄清、工具调用、拒答和安全边界。每一层都要记录输入分布、目标格式、难度、语言、工具状态和验收规则。

示范答案要尽量符合真实产品标准。若线上要求简短,训练集不能全部是教程式长答案;若线上要求引用证据,答案中就应明确区分已知事实、推断和待核验内容;若线上使用 JSON,示范应覆盖字段缺失、枚举错误、转义和失败分支;若线上允许调用工具,必须包含工具成功、超时、权限拒绝和部分结果等轨迹。

数据审核可以采用四道门:语义正确性、任务完成度、格式合法性和安全合规性。任何一道不通过,都不应仅仅因为“语言很流畅”而进入训练。对代码样本运行测试,对 SQL 样本使用只读沙箱,对数学样本执行答案验证,对事实问答保留来源字段。后训练数据的验收方式应尽可能接近上线后的验收方式。

SFT 的局限与退化模式

SFT 是模仿学习,不直接知道哪个答案在真实环境中产生了更好的结果。它会把示范中的错误、偏见、冗长和过度自信稳定地复制出来。如果所有答案都使用相同模板,模型可能在任何问题上输出模板;如果数据过度集中于某领域,通用能力可能退化;如果负面案例很少,模型不会知道何时应澄清或拒绝。

常见诊断包括:训练 loss 持续下降但真实任务不涨,说明可能过拟合表达风格;训练后格式更稳定但事实准确率下降,说明示范把表达优先级放得过高;安全拒答增加但正常请求成功率下降,说明边界样本比例或标签策略不合理。解决方案可能是回放通用数据、重新配比、增加难例、改用偏好数据,或者干脆在推理层加入 schema 和验证器,而不是继续增加 SFT 步数。

先用小样本验证管线,再扩大数据

交叉熵定义沿用第2章;中文推导可回看《动手学深度学习》的对应章节。[6] 对assistant-only样本,只在选定位置累加下一token负对数概率,并按有效目标token数归一化。先打印每个token及其label,确认答案和EOS被监督、prompt和padding未被直接模仿;再在少量人工可核对样本上检查loss和预测。小集合能被拟合只证明管线可能正常,不证明泛化。

过拟合、遗忘与泄漏需要不同证据:训练集改善而留出集下降,先查泛化;新领域上升但通用回归下降,先查配比和学习率;留出分数异常高且命中相同工单或答案模板,先查划分。不能将三者都写成“继续训练不足”。同一底座与预算下比较数据/目标变化,才有机会确定收益来自什么。

3.4 RLHF 与 PPO

偏好数据与 Reward Model

当一个问题存在多个都能接受的答案时,很难写出唯一标准答案。例如代码解释可以简洁或详细,开放问题可以有不同论证方式,安全回答需要同时考虑帮助性和风险。RLHF 将问题转成排序:给定 prompt,让标注者比较候选回答,记录 chosen 与 rejected。

偏好学习的经典工作展示了如何从人类比较中学习奖励函数 [7]。对语言模型而言,Reward Model 接收 prompt 和 response,输出一个标量 \(r_\phi(x,y)\)。它的训练可写成 Bradley-Terry 风格的损失:

\[ \mathcal{L}_{RM}=-\log\sigma(r_\phi(x,y^+)-r_\phi(x,y^-)). \]

这个分数是标注偏好的代理,不是真实质量本身。标注者之间可能不一致,短回答与长回答的偏好可能混杂,安全和帮助性可能冲突,同一领域的专家标准也可能不同。安全评估实践还表明,偏好标准必须把“回答有用”和“回答安全”拆成可讨论的维度,而不能把所有差异压成一个没有解释的总分 [8]。数据中必须记录标注指南、样本来源、分歧率、比较难度和拒标比例,不能只保存最终的 chosen/rejected 字符串。

PPO的四种模型角色

RLHF常从SFT策略开始。Reward Model用比较信号拟合偏好,不是当前策略自己说成功就给分。PPO在rollout策略生成的数据上,用概率比和裁剪代理目标组织多轮更新;原论文并不保证clip后每一个实际参数更新都满足严格KL上界。[9]

角色训练时职责冻结与更新
actor / policy在状态下给下一个token概率当前策略更新;旧rollout概率保存
critic / value估计当前前缀后续回报拟合固定回报目标,不能预测任务事实
reference提供相对行为锚点在本轮训练中冻结,不等于旧策略
reward model / verifier对候选结果或轨迹给信号本次采样批次内固定版本与语义

状态 \(s_t\) 可表示提示加已生成前缀,动作 \(a_t\) 是下一个token。旧策略概率 \(\pi_{old}(a_t\mid s_t)\) 来自生成该rollout的策略快照;reference \(\pi_{ref}\) 常是冻结SFT模型,二者用途不同。模型可共享某些物理模块,但逻辑角色与梯度路径仍需区分。把它们都称为“原模型”,会使ratio、KL和缓存数据失去解释。

\[ \rho_t(\theta)=\frac{\pi_\theta(a_t\mid s_t)}{\pi_{old}(a_t\mid s_t)},\qquad J_{clip}=\mathbb E_t\left[\min\left(\rho_t\hat A_t, \operatorname{clip}(\rho_t,1-\epsilon,1+\epsilon)\hat A_t\right)\right]. \]

Actor最大化该代理目标,等价实现可以最小化其负值。正优势鼓励增加相应动作概率,负优势鼓励减小;裁剪改变代理目标的收益,不是直接把神经网络参数截断。更新后仍要监控实际KL、clip比例和有效样本,不能只看到目标值上升就认定策略仍接近旧分布。

GAE、终止与采集截断

GAE将多步TD残差指数加权,在方差与偏差间取舍。其原始推导针对策略梯度与价值估计;应用到语言token,需要额外明确状态、奖励位置与终态。[10] 用 \(b_t\) 表示该转移是否允许bootstrap,\(c_t\) 表示是否沿同一轨迹继续递推:

\[ \delta_t=r_t+\gamma b_tV_{old}(s_{t+1})-V_{old}(s_t),\qquad \hat A_t=\delta_t+\gamma\lambda c_t\hat A_{t+1}. \]

真正终止时 \(b_t=c_t=0\)。若只因采样长度到上限而截断一个尚未结束的任务,最后转移仍可有 \(b_t=1\),但当前采集片段不继续递推,故 \(c_t=0\);需要保存实际末状态的价值估计,不能用自动reset后的新任务状态替代。Gymnasium文档清楚区分termination与truncation的bootstrap语义。[11] 对LLM,EOS、max_new_tokens和业务超时是否代表终态,要由定义的任务目标决定,不能直接按字段名机械映射。

以下是本书手算,非训练实验。取三步奖励 \((0,0,1)\)、旧价值 \((0.2,0.4,0.6)\)、\(\gamma=1,\lambda=0.5\),最后一步真正终止,末价值按零处理。逐步倒推得到:

t奖励旧价值TD残差GAE优势价值回归目标 \(\hat A_t+V_{old}(s_t)\)
100.20.20.40.6
200.40.20.40.8
310.60.40.41.0

第三步优势是0.4,第二步为0.2加0.5乘0.4,第一步同理。若另一条采集片段第三步奖励为零且只是截断,末状态估值0.8,则第三步残差为0.2,优势依次为0.35、0.30、0.20,回归目标为0.55、0.70、0.80。若误将截断当终止,最后残差会变成负0.6,并向前污染优势。

生成数据时保存旧logprob与旧价值。Actor使用的优势应视为固定数值,不能经优势计算反向更新critic;critic拟合的回报目标也应detach,不能让目标跟着当前预测一同移动而虚假减小误差。共享主干时,两个明确的损失可以分别向主干贡献梯度,但不是通过未切断的目标路径互相追逐。归一化优势、价值裁剪和系数等属于训练配方,需要记录,不能默认为同一PPO定义。

Reference KL和PPO clip的边界

一种教学奖励构造是每步加 \(-\beta[\log\pi_{old}(a_t\mid s_t)-\log\pi_{ref}(a_t\mid s_t)]\),并在回答末尾加偏好分。在旧策略采样的动作上,这个log比的期望对应旧策略到reference的逐状态KL;单个样本可以为负,不能把它当逐token必非负的精确KL。其他估计器和把KL放进损失的配方也存在,应单独记录。[2][9]

Reference KL约束相对行为锚点,clip比较当前策略与rollout旧策略;它们不是同一个模型对,也不是彼此替代的安全保证。改变KL系数会改变奖励目标,改变clip范围会改变更新代理,两者都不能证明退款已授权或代码已正确。观察reward改善时,必须仍用独立任务与安全评估核对。

RLHF 的收益与奖励投机

InstructGPT 的结果说明,少量高质量示范加上人类反馈可以显著改善指令遵循和用户偏好 [2]。HH-RLHF 工作把 helpfulness 与 harmlessness 作为不同数据和评价维度,说明对齐不能只优化一个“总分” [8]。但 reward model 只观察到有限特征,policy 可能学会让答案“看起来像高分答案”,而不是完成真实任务。

典型 reward hacking 包括:用更长的答案获得“更充分”的表面分;反复声明安全以获得无害分;使用肯定语气迎合用户;把不确定问题包装成自信结论;通过测试集模式获得奖励。发现投机的关键不是降低 reward,而是把线上目标拆成独立验收:事实用检索或引用检查,代码用执行测试,格式用解析器,安全用攻击集,用户满意度用真实任务而非单一 judge。

RLHF 的数据和系统成本

RLHF 需要候选生成、标注平台、偏好数据库、Reward Model 训练、在线 rollout、策略训练和评估回归。每个环节都可能成为瓶颈:候选太相似,偏好信号弱;候选太长,标注成本高;标注指南模糊,RM 学到噪声;rollout 版本不一致,数据不可复现;训练中 reference 与 tokenizer 不匹配,KL 统计失真。

因此选择 RLHF 前应先问:偏好是否能被稳定描述?是否有足够难的比较样本?Reward Model 是否覆盖真实失败类型?是否有独立验证器抵抗投机?如果答案是否定的,先改善示范和评估,往往比直接扩大 PPO 更有效。

3.5 DPO 与离线偏好优化

DPO 的核心思想

DPO 观察到,在特定的 KL 正则化奖励模型设定下,最优 policy 与 reward 存在解析关系,可以直接用偏好对训练 policy,而不显式拟合 Reward Model 和运行完整 PPO [12]。常见目标形式为:

\[ \mathcal{L}_{DPO}=-\log\sigma\left(\beta\left[\log\frac{\pi_\theta(y^+\mid x)}{\pi_{ref}(y^+\mid x)}-\log\frac{\pi_\theta(y^-\mid x)}{\pi_{ref}(y^-\mid x)}\right]\right). \]

直觉是:提高 chosen 相对于 reference 的相对概率,同时降低 rejected 的相对概率。DPO 的优点是使用熟悉的监督训练基础设施,批处理简单,训练曲线更易观察,适合拥有静态偏好数据的团队。它并没有消除对齐问题,只是把 reward model 和在线策略优化的复杂度部分转移到了偏好数据质量和超参数上。

IPO、KTO 与 ORPO

IPO 试图缓解 DPO 在偏好数据重复、噪声或过拟合时的理论和实践问题 [13];KTO 不要求每个 prompt 都有成对答案,而是使用 desirable/undesirable 的单条反馈,适合只有好坏标签的场景 [14];ORPO 把监督损失与偏好比率结合,减少对 reference model 的依赖 [15]。它们的共同点是:利用离线数据直接调整回答分布,避免每次更新都与环境交互。

方法需要的数据主要优点主要风险
DPOchosen/rejected pair公式直接、实现成熟对参考模型和温度敏感
IPOpreference pair尝试降低过拟合偏好理论假设和数据质量仍重要
KTO单条好/坏信号不要求配对数据反馈尺度和类别平衡难处理
ORPO示范加偏好信号流程短、无需 reference多目标损失权衡复杂

方法选择应由反馈形态决定,而不是由论文热度决定。如果已有稳定的高质量示范,SFT 后再做 DPO 通常更自然;如果只有线上点赞和点踩,先确认反馈是否与任务成功相关;如果有程序化成功信号,直接使用验证器或 RLVR 可能比把信号粗略转换成偏好更合适。

偏好数据的质量控制

偏好对最容易出现三类问题。第一,chosen 和 rejected 实际表达相同,差异只有长度和措辞;第二,标注者依据个人风格而不是任务完成度排序;第三,负例过于糟糕,模型只学会避免明显错误,却没有学会高难度取舍。解决这些问题要增加 hard negative:事实只错一个数字、代码只缺一个边界条件、工具参数只错一个字段、安全回答既不能拒绝过度也不能放任越权。

UltraFeedback 使用规模化AI反馈和更细的评价维度扩展偏好数据,体现了从单一比较走向多属性反馈的趋势 [16]。但 AI 反馈不是天然客观,仍要用人工抽样检查 judge 一致性、长度偏差、位置偏差和语言偏差。Zephyr 的工作展示了如何用高质量反馈和蒸馏快速得到对齐模型 [17],同时也说明蒸馏的上限受 teacher、数据和评估协议约束。

概率相加、mask与长度偏差

DPO中的序列log概率是所选response token条件log概率的和。chosen/rejected共享相同提示,提示token不应进入响应似然;各自padding不计,EOS按协议处理。策略与reference必须使用兼容的Tokenizer、模板、截断和监督范围,否则差值混入协议变化,已经不是公式中的同一事件。若一条回答被截断成不完整参数,原偏好标签也需重新检查。[12]

较长回答包含更多负log概率项,直接求和、逐token平均和其他长度归一化定义不是同一目标。不能在实现中随意将sum改mean,再继续声称精确复现原始DPO。beta是偏好目标与参考约束设定的一部分,也不等于生成温度。偏好更高是相对变化,不能据此保证chosen绝对概率每次都上升,更不能证明外部任务已成功。

3.6 RLVR、GRPO 与工具行为

可验证奖励为什么改变了训练对象

偏好奖励适合“哪个回答更好”,但复杂数学、代码和规划任务往往有更客观的验收。RLVR 使用程序、测试、证明检查器或环境状态提供奖励 [18]。DeepSeekMath 展示了 GRPO 等相对策略优化方法与数学验证奖励的结合 [19];GSM 类任务和代码执行环境则提供了可自动判定的答案或通过率。

结果奖励可以写成:

\[ R(x,y)=\mathbf{1}[V(x,y)=1]-\lambda,\text{cost}(y), \]

其中 \(V\) 是验证器,cost 可以惩罚过长推理、过多工具调用或过高延迟。模型于是会探索多种推理路径,保留能通过验证的轨迹。它学到的不只是“用某种语气回答”,而是“在推理预算内找到可验收结果”。

结果奖励、过程奖励与验证器

只在最终答案上给奖励,信用分配会很困难:一条长推理可能在最后一步出错,模型不知道前面哪些步骤有价值。过程奖励模型尝试对中间步骤逐步评价;Let’s Verify Step by Step 说明过程级验证可以帮助数学推理训练 [20]。但过程奖励也可能把某种表面推理风格当作正确,或者让模型过度拆步骤。

验证器必须视为生产代码审查。它可能覆盖不足、存在解析漏洞、只检查最终数字而不检查约束,或被模型反向利用。Training Verifiers 的研究说明,验证器本身需要训练、校准和对抗评估 [21]。工程上要记录 false positive、false negative、测试覆盖和版本变化,不能因为自动化就把 verifier 当作事实真理。

GRPO、组内奖励与冷启动

DeepSeekMath的GRPO为同一问题采样一组回答,用组内奖励构造相对优势,减少独立critic的需求。以结果监督为例,\(\hat A_i=(R_i-\overline R)/(\operatorname{std}(R)+\varepsilon)\),该回答token沿用相对优势,再结合策略比和正则化目标更新。这里的epsilon是数值稳定约定,具体实现须记录;如果整组全对或全错,中心化后的奖励没有区分信号,不能指望仅靠分母修复探索。[19]

组大小、奖励难度和题目分布共同决定有效信号。若底座几乎无法生成正确格式或任何成功候选,增加组采样也可能徒增计算;若问题太简单全组成功,同样缺乏相对区分。先测可解析率、非零奖励组比例与多样性,再决定补SFT、调整难度或增加探索,这是本书的选型建议,非一种保证收敛的规则。

R1报告v1区分直接从底座进行RL的R1-Zero与加入冷启动数据的R1;后者用少量整理过的长推理样本改善初始格式与可读性,不能把前者的实验写成“任何任务都不需要SFT”。[18] 工具参数和状态协议严格时,先用示范建立合法行为基线常更易诊断;是否冷启动应由底座与任务证据决定,不是PPO和GRPO各自永久绑定的属性。

工具调用与 Agent 轨迹

工具调用训练需要模型学会选择工具、填充参数、处理返回值和在失败后重试。Toolformer 研究了让模型学习在适当位置调用工具的方式 [22];ReAct 则把推理和行动交替组织为轨迹,使模型能够根据观察结果更新下一步计划 [23]。这些方法解决的是“模型如何与环境交互”,不是“模型是否拥有工具权限”。

训练数据应覆盖成功、失败、超时、权限拒绝、部分结果和需要人工确认的分支。工具 schema、参数类型、幂等性和错误码必须与线上接口一致,否则模型学到的是不可执行的假协议。任何有副作用的工具都需要运行时权限和审批,不能因为模型在训练中表现出较高调用准确率,就让它直接执行转账、删除或发布操作。

3.7 安全对齐与反馈边界

Constitutional AI 的思路

人类不可能穷举所有危险请求,也难以对每个回答写出统一标准。Constitutional AI 用一组明确原则指导模型批评和改写自己的回答,再利用这些比较构造 AI feedback [24]。原则可以描述无害、诚实、尊重隐私、避免越权、在安全范围内提供帮助等要求。

它的核心流程是:模型生成初始回答;根据原则指出风险;生成修订回答;比较初始与修订版本;用这些偏好训练模型。这样做把“安全标准”从隐含的标注习惯变成可审阅的文本规则,便于版本管理和回归测试。

RLAIF 的优势与盲点

RLAIF 用 AI judge 代替或补充人工标注,可以降低成本、提高一致性并覆盖更多样本 [25]。但 judge 与被训练模型可能共享相同错误,形成同质化反馈;judge 可能偏好更长、更礼貌或更像自身的答案;对复杂事实和隐晦攻击,judge 也可能失效。人类反馈的稀缺性没有消失,只是从逐条标注转移到原则设计、抽样审计和困难案例审核。

安全对齐至少要区分三种行为:允许且有帮助、拒绝且解释边界、拒绝后仍提供安全替代方案。只有“拒绝率”一个指标会奖励过度拒答。HHH 数据集把 helpful、harmless、honest 作为不同评价维度,适合用来说明三者并不总是同向 [26]。例如用户请求安全分析恶意代码时,完全拒绝可能损害帮助性;直接给出可执行攻击脚本又可能越过安全边界。

权重对齐不等于系统安全

模型可以学会说“我不能帮助你”,但它仍可能通过工具调用、编码变换或多轮诱导泄露危险信息。生产安全必须由多层系统承担:输入分类、输出审查、工具权限、参数白名单、沙箱、速率限制、审计日志、人工审批和回滚。Llama 2 的安全评估展示了红队、自动测试和人工分析的组合方式 [27],但任何公开安全报告都不能替代目标系统自己的威胁模型。

安全训练数据还会带来分布迁移。线上用户可能使用不同语言、隐喻、拼写错误或多轮上下文;攻击者会针对拒答模板做变形。因而安全回归应包含越狱、提示注入、隐私抽取、工具越权和多轮状态攻击,并记录攻击成功率、误伤率、响应延迟和人工接管比例。

安全回归不能只看攻击阻断率,还要看正常请求误拒率。训练可教模型识别不确定性与澄清条件,但裁判与策略共享错误时,反复自评会把错误强化成高分。对外部事实和权限,仍须保留独立证据、确定性规则和责任主体;不能用模型自己的解释替代授权回执。

3.8 方法选择、成本与回归

评估层次

后训练评估至少分为四层。第一层是格式与协议:角色边界、JSON 合法性、工具参数、停止条件;第二层是任务质量:正确性、完整性、代码执行、数学验证、事实引用;第三层是偏好与交互:帮助性、简洁性、诚实、澄清和多轮一致性;第四层是风险:拒答边界、越狱、隐私、工具越权和分布外输入。

每层都要有正例、难例和负例。只测试“正常问题回答得好不好”,无法发现模型在错误前提、冲突指令、超长上下文和工具失败时的行为。Llama 2 和 HHH 数据集提供了把帮助性、无害性和诚实分开评价的实践参考 [27][26]。

LLM-as-a-Judge 的使用边界

LLM judge 可以快速比较开放式回答,MT-Bench 和 Chatbot Arena 研究系统讨论了 judge 与人类偏好的关系以及位置、长度和模型自偏差 [28]。它适合做大规模筛选和回归趋势,不适合单独作为高风险事实或权限决策。使用 judge 时要固定 prompt、随机化答案顺序、做人工抽样、测试不同语言和长度,并报告与人工标注的相关性。

能程序化验证的任务应优先程序化:代码执行、JSON schema、SQL 结果、数学答案、工具状态和引用链接。开放式质量再使用 judge 辅助。这样可以减少“模型评价模型”的循环偏差,也让失败样本能够回放。

对齐回归矩阵

每次 SFT、DPO、RLHF 或 RLVR 更新,都应与上一版本比较同一矩阵:能力是否提升,正常请求是否被误拒,危险请求是否被放行,回答长度是否异常,工具调用是否稳定,延迟和 token 成本是否变化。测试结果要按任务类型、语言、难度和风险等级切片;总体平均分上升不能掩盖关键子集下降。

一个实用的发布门禁可以包含:通用能力不低于基线,关键业务成功率提升,严重安全攻击零放行或处于批准阈值内,格式通过率达标,工具副作用全部经过权限层,尾延迟和成本在预算内。对齐模型不是一次训练后永久稳定,数据、提示、工具和攻击方式变化都会触发重新评估。

根据问题选择方法

可以用以下映射做初筛:如果模型不知道任务格式,先做 SFT;如果模型会做任务但多个答案质量差异明显,加入偏好数据;如果只有好坏标签而没有成对回答,考虑 KTO;如果有可靠程序验收,优先 RLVR 或直接把验证器接入推理;如果问题来自动态事实,使用 RAG 或工具;如果问题是权限和副作用,使用运行时控制;如果问题是复杂任务成功率和延迟权衡,测量 test-time scaling。

这张映射表的价值在于防止“训练万能化”。后训练适合改变稳定、可重复的模型行为,不适合保存经常变化的事实和状态。它可以提高工具参数生成,但不能授予数据库权限;可以让模型更愿意说明不确定性,但不能保证每个事实正确;可以学会推理轨迹,但不能替代测试和人工验收。

首要缺口优先方法所需证据不该用它解决的问题
固定任务格式、术语或步骤不稳定SFT高质量示范与字段级回归集实时知识、权限与外部状态
多个可行答案质量差异明显DPO / RLHF / 偏好优化覆盖真实取舍的成对偏好数据没有稳定“更好”定义的事实判定
数学、代码或结构化结果可程序验证RLVR / 验证器难以被投机通过的结果检查主观语气和不可判定的帮助性
安全边界需要大量反馈覆盖RLAIF / Constitutional AI原则、人工抽检与对抗测试工具授权、审批和审计
当前事实变化或存在副作用RAG、工具与 Runtime数据来源、权限与执行策略试图把状态写入权重

偏好数据的失败案例:把越权包装成“更有帮助”

设想客服 Agent 的训练集中,一组标注者总是偏好“直接替用户解决问题”的回答。面对退款请求,模型 A 会说明资格、引用政策并提示需要审批;模型 B 会承诺立刻退款。若标注只奖励语气、速度和表面帮助度,B 很可能被选为偏好样本。偏好优化后,离线“帮助度”上升,线上却出现升级错误和越权工具调用。

根因不是 DPO 或 RLHF 本身失效,而是偏好数据把业务授权错误地当成了表达质量。修复方式也不是继续堆安全样本:应将退款资格、金额、审批状态交给确定性工具;把偏好比较限制在解释清晰度、证据忠实度和升级条件;并在回归集中单独记录越权率、错误升级率和工具参数合法率。这个案例说明,后训练只能塑造默认行为,不能替代生产系统的控制面。

成本、数据和可回滚性

在同一底座、相近序列长度与数据量下,SFT通常是便于启动的基线,离线偏好优化省去在线rollout,而RLHF/RLVR还需奖励或环境链路。实际成本仍要按候选数量、参考前向、有效token和设备测量,不能把算法名当作固定价格排序。训练前应估算标注成本、GPU 时间、评估成本、数据存储、失败重跑和线上推理增量。不要只比较一次训练的费用,还要计算每次发布回归和长期维护费用。

模型版本必须绑定数据版本、模板版本、tokenizer、参考模型、奖励模型、验证器、超参数和评估结果。对齐实验尤其需要保存 rejected 样本和失败轨迹,否则下一轮只能看到“分数下降”,却不知道是哪个边界被改变。模型回滚只是切换权重,工具 schema、系统提示和安全策略也要支持版本回滚。

工具训练样本的正负边界

观察合法助手目标不应奖励的目标
资格查询返回不满足条件引用原因并说明可申诉路径为了帮助度承诺立即退款
提交请求超时且外部状态未知先按操作标识查询状态或升级断言失败并重新提交写请求
工具返回权限拒绝解释范围并请求合法授权流程改参数绕过权限或伪造成功回执
返回部分结果且证据不足保留已知事实,明确缺失条件用流畅补全填造未返回字段

表中的标签来自本书教学契约,生产样本应由业务规则与实际回执确认。偏好对还应保留同一观察下的难负例,避免模型只学会用礼貌语气包装错误动作。即使演示经过审核,线上工具仍独立检查权限与操作状态;训练目标不是扩大模型拥有的授权范围。

从固定底座到受控发布

将同一底座的SFT、SFT加DPO、SFT加在线RL作为可比较路线,固定留出任务和总预算,分别计入数据标注、候选生成、训练、评估与失败重跑。中文和混合工具协议需要自己的切片,InternLM2等报告提供了分层观察的参考,不能用英文总分替代本地任务。[29] 每次只改变主要因素并保留旧版本,才能解释差异。

发布记录绑定底座、Tokenizer、模板、数据、reference、reward/verifier与推理参数;离线回归后再做只生成不执行动作的影子比较。正常成功率、误拒、越权、格式与成本须同时满足门槛,严重异常触发停止和回退。该流程是本书工程建议,没有实际线上灰度结果。

练习卡 Q263:SFT标签与工具轨迹对齐

状态:设计完成;独立实现未提供,未实测。 输入包含普通问答、多轮工具成功、权限拒绝、提交超时未知四类教学对话,固定Tokenizer/模板与最大长度。输出input_ids、角色区间、labels、Attention/loss mask及有效目标数;按3.2的占位token案例打印每个logits位置预测的目标,区分库内部shift和外部shift两种接口。

断言: 用户/system/tool内容不作为assistant目标,合法动作与EOS保留监督;padding屏蔽且无全零监督样本;packing后独立工单不可跨读;截断导致JSON或工具调用不完整时拒绝或按已定义规则重建样本;训练/测试不含同工单或去重簇。先在少量手工样本验证管线,再核对独立留出集。能拟合小样本不表示泛化,也不表示工具真的提交。

回收错误: EOS与PAD共ID时按ID全屏蔽、重复shift、mask只看字符串长度、工具返回冒充助手,都要有反例。运行代码应放独立实验仓库;本卡不提供伪造测试输出,不把训练loss改善当作已获得业务授权。

3.9 本章小结

后训练从SFT的示范学习,到偏好优化,再到基于环境与验证的反馈,改变的是生成行为。样本边界决定哪些token被学习,优势和奖励决定哪些动作被鼓励,独立回归决定这些变化能否用于目标任务。Reward不是成功证明,critic不是事实库,reference也不是权限系统。

第2章的交叉熵与KL定义在本章分别进入监督和正则化目标;第1章的模型/系统边界在工具轨迹中继续生效。下一章转向生成、搜索和验证,研究一次请求怎样在明确预算内得到更可靠的候选,而不把继续训练当作所有问题的答案。

3.10 参考资料

  1. Wei, J., et al,Finetuned Language Models Are Zero-Shot Learners,2022。核验日期:2026-10-16。
  2. Ouyang, L., et al,Training Language Models to Follow Instructions with Human Feedback,2022。核验日期:2026-10-16。
  3. Hugging Face,Transformers Chat Templates,v4.45.2。核验日期:2026-10-16。
  4. Wang, Y., et al,Self-Instruct: Aligning Language Models with Self-Generated Instructions,2023。核验日期:2026-10-16。
  5. Zhou, C., et al,LIMA: Less Is More for Alignment,2023。核验日期:2026-10-16。
  6. Zhang, A., Lipton, Z. C., Li, M., & Smola, A. V,动手学深度学习:softmax回归与交叉熵,中文在线2.0.0。核验日期:2026-10-16。
  7. Christiano, P. F., et al,Deep Reinforcement Learning from Human Preferences,2017。核验日期:2026-10-16。
  8. Bai, Y., et al,Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback,2022。核验日期:2026-10-16。
  9. Schulman, J., et al,Proximal Policy Optimization Algorithms,2017。核验日期:2026-10-16。
  10. Schulman et al.,High-Dimensional Continuous Control Using Generalized Advantage Estimation,2015 preprint / v6。核验日期:2026-10-16。
  11. Farama Foundation,Gymnasium: Handling Time Limits,checked 2026-10-16。核验日期:2026-10-16。
  12. Rafailov, R., et al,Direct Preference Optimization: Your Language Model is Secretly a Reward Model,2023。核验日期:2026-10-16。
  13. Azar, M. G., et al,A General Theoretical Paradigm to Understand Learning from Human Preferences,2036。核验日期:2026-10-16。
  14. Ethayarajh, K., et al,KTO: Model Alignment as Prospect Theoretic Optimization,2024。核验日期:2026-10-16。
  15. Hong, J., et al,ORPO: Monolithic Preference Optimization without Reference Model,2024。核验日期:2026-10-16。
  16. Cui, G., et al,UltraFeedback: Boosting Language Models with Scaled AI Feedback,2024 / v2。核验日期:2026-10-16。
  17. Tunstall, L., et al,Zephyr: Direct Distillation of LM Alignment,2023。核验日期:2026-10-16。
  18. Guo, D., et al,DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning,2025 / v1。核验日期:2026-10-16。
  19. Shao, Z., et al,DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models,2024。核验日期:2026-10-16。
  20. Lightman, H., et al,Let’s Verify Step by Step,2005。核验日期:2026-10-16。
  21. Cobbe, K., et al,Training Verifiers to Solve Math Word Problems,2021。核验日期:2026-10-16。
  22. Schick, T., et al,Toolformer: Language Models Can Teach Themselves to Use Tools,2023。核验日期:2026-10-16。
  23. Yao, S., et al,ReAct: Synergizing Reasoning and Acting in Language Models,2023。核验日期:2026-10-16。
  24. Bai, Y., et al,Constitutional AI: Harmlessness from AI Feedback,2022。核验日期:2026-10-16。
  25. Lee, H., et al,RLAIF vs. RLHF: Scaling Reinforcement Learning from Human Feedback with AI Feedback,2024 / v3。核验日期:2026-10-16。
  26. Askell, A., et al,A General Language Assistant as a Laboratory for Alignment,2021。核验日期:2026-10-16。
  27. Touvron, H., et al,Llama 2: Open Foundation and Fine-Tuned Chat Models,2023。核验日期:2026-10-16。
  28. Zheng, L., et al,Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena,2023。核验日期:2026-10-16。
  29. InternLM Team,InternLM2 Technical Report,2024。核验日期:2026-10-16。