返回 M01~M90 教材库
M48 · 预习教材教材已备 ≠ 学习已完成

M48:可选探索:TRL 小例或 DPO / GRPO 数学回看

今天可以跟随一个极小工具示例,也可以只回看一条公式;目标是确认数据到损失的映射,不是完成真实 RL 训练。

2026-10-10trl、dpo、grpo、reward-composition、optional

内容类型:预习教材(不代表已完成)
日期:2026-10-10
阶段:P1 · AI Model Engineering 90
周次:W7 · Preference、DPO、GRPO/RLVR 与奖励科学
节奏:周六可选探索 / 补课
状态:教材已备;学习未完成
标签:trl、dpo、grpo、reward-composition、optional

一句话定义

今天可以跟随一个极小工具示例,也可以只回看一条公式;目标是确认数据到损失的映射,不是完成真实 RL 训练。

学习目标

  1. 能在工具调用中认出 policy、reference、chosen/rejected 或 group reward。
  2. 能用 toy 数值检查损失方向。
  3. 坚持资源和时间边界,不因框架复杂度扩大任务。

核心知识

TRL 等框架封装了 tokenization、参考模型、采样、loss 和日志。便利的代价是关键边界可能被默认值隐藏:chat template、max length、padding side、只训练回答 token 还是整段、reference 是否冻结、奖励函数接收什么文本。学习时优先展开一条样例,而不是先调 Trainer 参数。

DPO 的最小检查是:chosen 相对 reference 的提升应比 rejected 更大;GRPO 的最小检查是:同一 prompt 内奖励不同才产生相对优势。真实 RL 还需要采样、策略更新、KL 控制和稳定性,不适合作为本日硬任务。

机制/推导

可以用四个 log probability 构造 DPO margin:

m=(logπθ(yw)-logπref(yw))-(logπθ(yl)-logπref(yl))

m 增大,-logσ(βm) 下降。注意这只检查方向,不足以验证框架实现全部正确。

GRPO 可用四个手写奖励计算组均值与标准化优势,再检查奖励完全相同时优势应接近零。若 reward function 解析失败却返回默认高分,会成为严重捷径。

最小练习或观察步骤

任选一项,45 分钟到点即停:

  1. 跟随一个可本机运行的 TRL toy 例,打印一条处理后的 prompt/chosen/rejected 与 mask。
  2. 用纸笔为两组 log probability 计算 DPO margin 和 loss 方向。
  3. 用 4 个奖励手算 group-relative advantage,并加入“全相同”边界。
  4. 设计一个由正确性、格式组成的 reward function,列出解析失败的处理方式,不必训练。

常见误区

  • 工具成功启动就认为理解了算法。
  • 下载大型模型超出本机资源,只为复现教程输出。
  • 将单步 loss 变化当作策略能力变化。
  • reward parser 异常时静默给零或高分,却不记录失败率。

金融 / Web3 / 文档场景连接

若用合约测试或文档字段验证作 reward,先单独测试 verifier 的假阳性和解析失败;不要让训练框架异常被误记为业务失败或成功。

自检问题

  1. DPO margin 由哪四个 log probability 构成?
  2. 同组奖励全相同时,GRPO 有什么有效排序信号?
  3. 工具默认值中哪三项最值得先检查?

专业课程对齐

  • 必读 HF TRL Quickstart 中 DPOTrainer 或 GRPOTrainer 的一条最小路径,只展开一条数据经 chat template、tokenization、mask 到 loss/reward 的变化。
  • 精读 ARENA 的 RLHF 数学相关练习,用 toy logits 回看 log-softmax、DPO margin、standardized advantage 和 KL。
  • 选读 PyTorch Tutorials 的 autograd 与 numerical accuracy 主题,用于检查手算和 tensor 实现的符号与稳定性。

深入学习提示

顺序为纸笔计算→ARENA toy 练习→TRL 高层 API,45 分钟到点即停。DPO 手算要保留 policy/reference×chosen/rejected 四个 log probability,检查 margin 增大时 -logσ(βm) 下降;GRPO 则检查 reward 全相同时 advantage 为零附近。代码上打印一条完整 mask,确认 padding/prompt token 是否进入损失;资源上只记参考模型与 generation 是否被启动。反例是 parser 失败后返回默认高 reward,却被正常平均值掩盖。

学后填写区

  • 今日选择(工具 / 手算 / 补课 / 休息):
  • 检查的一条样例或公式:
  • 一个隐藏默认值:
  • 停止位置与待办:
学完后,请把自己的理解、练习结果和仍不确定的问题写入文末“学后填写区”,再到唯一进度账本更新状态。预先阅读后续教材不会自动增加完成数。