> For the complete documentation index, see [llms.txt](https://yeasy.gitbook.io/llm_internals/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yeasy.gitbook.io/llm_internals/di-er-bu-fen-xun-lian-pian/08_alignment/summary.md).

# 本章小结

本章沿着后训练的流水线展开：先让基础模型学会应答，再把人类偏好变成训练信号，然后把更新范围压到低秩增量。最后两节转向验收：这些做法各自会在哪里坏掉，以及用来判断好坏的分数本身是怎么算出来的。

**SFT** 在指令-回答数据上继续训练，损失函数与预训练同形，区别只在一个掩码：只有被预测的词元属于回答时才计损失，分母是掩码之和而不是序列长度，EOS 必须计入。学习率之所以必须小，不是因为要训得慢，而是因为 SFT 见到的词元比预训练少四到五个数量级；把它理解成“接上预训练余弦调度的末端”比“比峰值小两个数量级”更可迁移。真正起作用的是数据的质量与**提示词多样性**，而不是条数，LIMA 的收益递减结论原本就带着“不同时扩大多样性”这个前提。

**RLHF** 用成对比较训练奖励模型，再用 PPO 优化策略。奖励模型只是把 LM head 换成标量头、用 Bradley-Terry 损失拟合排序，损失曲线从 $\ln 2 = 0.693$ 起步，准确率上限由标注者一致率决定。奖励模型只在末位给一个标量，中间各位的奖励由 KL 惩罚拼出，再经 GAE 折成优势，最后进裁剪目标；裁剪的行为不对称，沿优势方向越界时梯度置零，反方向越界时梯度保留。四个模型同时参与训练，7B 规模合计 252 GB，其中价值模型占 112 GB，这笔账同时是 GRPO 与 DPO 的动机。优化得越远，代理奖励与真实奖励越分道，该监控的是 KL 而不是步数。

**RLVR** 把奖励来源从奖励模型换成可自动验证的规则，算法骨架不变。GRPO 用组内相对分数替掉价值网络，它的两个分母各带来一类偏差：$1/|o\_i|$ 是长度偏差的来源，组内标准差是难度偏差的来源，标准差为零则整组零梯度。熵坍缩、零梯度组、长度爆炸、过长截断四种病理各有对策，排查顺序是先看熵、再看有效样本比例、再看长度与 reward 的联合走势、最后才怀疑数值。

**DPO** 把 KL 约束下的最优策略反解成奖励，代入 Bradley-Terry 后配分函数相消，得到一个成对分类损失。省下的是奖励模型、rollout 与价值网络，7B 下从 252 GB 降到 126 GB。代价是隐式奖励在数据分布外无约束，失效形态是似然位移、长度偏好放大与确定性偏好下 KL 约束失效；学习率要比 SFT 再低约一个数量级。IPO、SimPO、KTO、ORPO、GSPO 各改了损失里的一项，Constitutional AI 换的则是偏好标签的来源。

**参数高效微调**冻结基座、只训练低秩增量。$d = 4096$、$r = 8$ 时可训练参数是 6.5 万，原矩阵 1,678 万，占 0.39%；压缩倍数是 $d/(2r)$，常用的 $r = 16$ 只有 128 倍。省下的是梯度与优化器状态那 14 字节，**激活一点也不省**。QLoRA 的 NF4 加双重量化把有效位宽压到 4.127 比特，65B 基座因此是 33.5 GB，刚好进得了 48 GB 单卡。LoRA 的学习率比全参数微调高约一个数量级。低秩增量擅长重新组织已有能力，不擅长注入新事实，这条判据同时解释了“加在哪些层”和“什么时候该换回全参数微调”。

**四种失败模式**——灾难性遗忘、对齐税、只学到风格、自造的数据污染——共享同一个性质：训练损失曲线看不见它们中的任何一条。遗忘量随可训练参数与步数按平移幂律增长，没有安全区；连纯良性数据微调一轮都能把 Llama-2-7b-Chat 的有害率从 0.3% 推到 16.1%，所以安全拒答必须进验收清单。对齐税靠把宽分布数据拌回训练来缓解，单纯调大 KL 系数修不好。要看见这些，就必须在训练集与目标域验证集之外，再备一份在微调开始前就固定下来的通用能力回归集，并按配对方式比较：500 道配对题的精度约等于 1,750 道独立题。停在哪里由交换比决定，不由经验轮数决定。

**后训练评测**本身是一条会改变分数的流水线。对数似然打分给每个选项各算一次序列对数概率，随机基线是 $1/C$，主要噪声来自选项长度与归一化口径；生成式打分贴近真实用法，主要噪声来自解码设置与答案抽取。基座与指令模型常用两套口径，两组分数不可直接相比。要让两次评测可比，题目集合、打分方式、提示模板、解码设置、抽取规则、批大小都得钉死。污染检测分三层：$n$-gram 重叠、嵌入检索加 LLM 判定、换一套没人见过的新题，强度与代价同步递增。

至此，第二部分“训练篇”结束。全章都把“生成”当成现成的一步（8.2 里 rollout 直接交给推理引擎），从未说明对齐后的权重每一步给出的词元概率，究竟怎么变成用户看到的那句话。

***

> 📝 **发现错误或有改进建议？** 欢迎提交 [Issue](https://github.com/yeasy/llm_internals/issues) 或 [PR](https://github.com/yeasy/llm_internals/pulls)。
