外观
A5 对齐:从模仿答案到利用可验证奖励
预训练 loss 衡量模型预测文本的能力,未必直接衡量它能否正确解题。A5 2025 选择数学推理作为试验场:先建立 Qwen2.5-Math-1.5B 的 zero-shot 基线,再使用更强模型的推理样本做 SFT,接着做 Expert Iteration 与 GRPO。这里沿用这条顺序。它换用了已有能力的基础模型,不是把 A1 小语言模型直接训练成可靠数学系统。
先把评测器固定下来
同一模型换 prompt、答案提取规则、最大生成长度或 temperature,成绩可能改变。基线应固定模型与 tokenizer 版本、题目划分、prompt 模板、采样参数、终止条件和评分器。保存问题 ID、原始输出、提取答案、格式是否有效、答案是否正确;只保存总准确率会隐藏格式失败。
数学结果可能有等价写法,评分器要区分解析失败与数学错误。不要为了提高分数反复在测试集上调模板;也不要把模型输出当程序直接无约束执行。小实验可以选择整数算术等可可靠验证的任务,先确保 reward 实现本身通过测试。奖励正确性是强化学习系统的规格,不是最后补上的细节。
SFT:监督哪些 token
把 prompt 与 response 连接后继续用下一 token 预测,但 loss 通常只覆盖 response。若 [题,问,答1,答2] 的目标序列已经左移一位,mask 也必须对齐“被预测的目标”而非原输入位置。首个 response token 由 prompt 的最后位置预测,不能被漏掉。
本地 masked_sft_loss 实现此 token 平均目标,并测试:改变 prompt 位置的 logits 不改变 loss;prompt 位置梯度为零;全零 mask 报错。真实 tokenizer 可能在拼接边界合并 token,因此不能简单用字符串字符数当边界。应由实际编码序列、模板约定与 offset 生成 mask,并打印若干样本人工检查。
SFT 模仿已有高质量输出,不直接观察模型自己犯的错。推理过程样本可能提升风格和解题能力,但错误推理也会被学习;训练 NLL 降低不能替代独立解题准确率。比较数据量与训练步数时,记录每题答案长度,避免长答案仅因 token 更多而占据更大权重。
Expert Iteration:采样、筛选、再模仿
对每道训练题从当前策略采样多份答案,用验证器保留正确答案,再在这些答案上做 SFT,重复若干轮。这把模型偶尔成功的解法转化成稳定行为,属于简单直接的改进循环。没有成功样本的题无法凭空提供正例,因此初始能力与采样覆盖很关键。
flowchart LR Q[训练题目] --> S[当前模型采样多个解答] S --> R[验证答案并保留成功样本] R --> D[去重与构造新 SFT 数据] D --> U[训练更新模型] U --> S U --> E[固定独立评测]
查看流程图文本
flowchart LR Q[训练题目] --> S[当前模型采样多个解答] S --> R[验证答案并保留成功样本] R --> D[去重与构造新 SFT 数据] D --> U[训练更新模型] U --> S U --> E[固定独立评测]
若只保留容易题的成功样本,下一轮数据分布会越来越偏。应记录每题成功数、保留率、长度与题型分布,必要时限制每题样本数。模型产生看似正确的最终答案不代表推理过程可靠;验证器只能奖励自己检查得到的部分。
从策略梯度到组相对优势
策略
同一问题采样
group_advantages 使用总体标准差(ddof=0),作为本地明确约定。实现官方适配器时要按固定 handout/test 处理标准差和归一化,不要默认所有框架的 std 默认参数一致。组均值包含自身样本,与纯粹状态基线的无偏性论证并不完全相同;这里是具体的经验目标,不应把理想 REINFORCE 的性质直接套过来。
GRPO 的概率比与 clipping
回答由旧策略生成。更新当前策略时,逐 token 概率比为
PPO 风格截断目标取
2025 A5 主线是带验证奖励的简化 GRPO,明确没有 KL 项;更广义 GRPO/RLHF 可能有参考策略 KL 正则,不能把它混写为本版必做要求。response mask 排除 prompt 与 padding;按序列平均、按 token 平均或按固定常数归一化会形成不同的长度偏好。clipped_policy_objective 明确采用全批有效 token 平均,作为公式小实验,不声称与每个官方实验设置逐项相同。
真实训练还要协调 rollout 与 learner:策略更新后,采样服务是否加载了新权重?同一旧样本用了多少次?clip fraction、熵、reward、回答长度和独立准确率怎样变化?只盯 reward 可能错过模板钻空子、答案重复或分布崩塌。对不确定的数值结果,先检查 log-prob 的移位与 mask,再怀疑算法理论。
选做:DPO 与偏好数据
给定 prompt、偏好回答
这些是 response 整段的 log-prob 求和,不是只取最后一个 token。参考策略固定;np.logaddexp(0,-margin) 稳定计算,并测试提高 chosen 的相对概率会降低 loss。DPO 在 2025 中属于可选的人类偏好对齐材料,不能替代必做的推理 RL 过程。
自测与实验边界
reward 上升而数学准确率不升,先查什么?
检查 reward 是否混入格式奖励、是否统计训练题、答案提取与终止规则是否一致、是否只是输出更长或反复列举候选。对同一份原始输出同时跑冻结的评测器,抽查失败与高奖励样本,区分模型变化和评分器变化。
本地只运行了 mask、优势、clipping 和 DPO 数值测试,没有运行 Qwen SFT、Expert Iteration 或 GRPO 训练。这些是后续 GPU 实验;应先复现基线,再逐项比较,不能用 tiny 语料 loss 作为 A5 成绩。
来源:A5 2025 固定讲义、DeepSeekMath/GRPO、PPO、DPO。下一章:实验手册。