Reinforcement Learning for LLMs · 干货攻略

  • 链接: https://cameronrwolfe.substack.com/p/llm-rl
  • 分类: x-tips
  • 来源: X @cwolferesearch
  • 作者: Jay
  • 更新: 2026-08-28

一、这是什么

Cameron R. Wolfe(@cwolferesearch,Deep Learning Ph.D.,Netflix 高级研究科学家)于 2026 年 8 月在 Substack 发布的 20,000+ 词 RL for LLMs 终极指南,是他在该话题上所有单篇研究的系统性整合。目标读者是想从第一性原理深入理解 RL 在 LLM 训练中如何工作的工程师和研究人员。

覆盖范围: - RL 基础概念(trajectory、reward、policy、value function) - RLHF 全景(从 RLHF Book @rlhfbook.com 到 TRL @ HuggingFace) - 策略梯度算法演化:REINFORCE → PPO → DPO → GRPO - GRPO 变体与大规模 RL 训练最佳实践 - 前沿方向(RLAIF、continual learning、RL scaling laws)


二、为什么值得关注

如果你曾经对着散落在各处(Schulman notes、Spinning Up in Deep RL、Lilian Weng blog、TRL 文档)的研究碎片感到无从下手,这篇指南的价值在于:把 RL for LLMs 的完整知识地图画成一张可读的图

三个解决的核心问题:

  1. 不知道该用哪个算法:PPO / DPO / GRPO / KTO 各有什么优劣,何时用哪个?指南给出了明确选择路径——主观对齐任务(helpfulness/harmlessness)用 DPO,有可验证奖励的推理任务用 GRPO,拇指向上单向信号用 KTO。
  2. 不理解 GRPO 为什么有效:GRPO 不是拍脑袋的设计,而是 DeepSeekMath 论文中从 PPO 简化而来的——去掉 critic 后用同组采样的 reward 均值做 baseline,将内存占用减半。
  3. 缺乏一手源头梳理:指南正文穿插了所有关键一手资源的链接(RLHF Book、Sutton & Barto、John Schulman notes 等),是入口不是终点。

三、核验过程

官方来源 1 — Cameron Wolfe Substack 原帖(主来源) - URL: https://cameronrwolfe.substack.com/p/llm-rl - 读取内容:RL 基础框架、PPO/DPO/GRPO 算法对比、训练流程图、关键参考文献链接 - 关键说法摘录: - PPO 需要 4 个模型同时驻留内存(actor / critic / reference / reward model) - GRPO 通过组内相对 reward 估算 advantage,省去 critic - DPO 将 reward model 去掉,直接在偏好对(preference pairs)上做分类训练

官方来源 2 — HuggingFace TRL(算法实现对照) - URL: https://huggingface.co/docs/trl/en/index - 核验:TRL 确认支持 GRPO(GRPOTrainer)、PPO(PPOTrainer)、DPO(DPOTrainer)、KTO(KTOTrainer)、RLOO(RLOOTrainer)等,说明这些算法均有活跃的开源实现 - 原帖描述与 TRL 支持范围一致

交叉验证来源 — DeepSeekMath GRPO 论文(arXiv:2402.03300) - URL: https://arxiv.org/pdf/2402.03300 - 核验:GRPO 优势函数定义为组内 reward 归一化: Â = (r - μ) / σ 其中 μ 和 σ 来自同一 prompt 采样得到的所有输出的 reward 均值和标准差——这正是原帖"group relative"名称的来源 - 论文明确指出:GRPO 比 PPO 内存占用显著更低,同时在数学推理任务上有效

交叉验证结论: - 原帖核心说法(PPO 4 模型、DPO 去 reward model、GRPO 组内 advantage)与官方 TRL 文档和 arXiv 论文一致 - "20,000+ 词"为原帖作者自述(未直接核验全文字数),以原文实际发布版本为准


四、上手步骤

步骤 1:理解全貌(先读指南,再按图索骥)

访问 https://cameronrwolfe.substack.com/p/llm-rl ,顺着目录按需跳转到感兴趣章节。指南末尾提供了所有关键资源的直接链接。

步骤 2:用 TRL 跑一个最小化实验

HuggingFace TRL 是最活跃的 RL for LLMs 开源工具库。安装:

pip install trl transformers vllm

GRPO 训练示例(数学推理场景):

from trl import GRPOTrainer, GRPOConfig
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("deepseek-ai/DeepSeekMath-7B")
tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeekMath-7B")

# GRPO 不需要单独的 reward model
# advantage 通过采样多输出 + 组内归一化得到
training_args = GRPOConfig(
    output_dir="./grpo-math",
    num_iterations=8,          # 每轮采样的 output 数量
    num_generate=8,            # GRPO 组大小
    learning_rate=1e-6,
)

trainer = GRPOTrainer(
    model=model,
    args=training_args,
    train_dataset=math_dataset,  # 格式: {"prompt": str, "reward": float}
    processing_class=tokenizer,
)
trainer.train()

DPO 训练示例(偏好对齐场景):

from trl import DPOTrainer, DPOConfig

# DPO 不需要 reward model,在偏好对上直接优化
dpo_args = DPOConfig(
    output_dir="./dpo-align",
    beta=0.1,   # KL 惩罚系数,越大越保守
)

dpo_trainer = DPOTrainer(
    model=model,
    args=dpo_args,
    ref_model=ref_model,         # 需要 reference model
    processing_class=tokenizer,
    train_dataset=preference_dataset,  # {"chosen": str, "rejected": str}
)
dpo_trainer.train()

步骤 3:选对算法(按任务类型决策)

任务类型 推荐算法 原因
推理/数学(有可验证答案) SFT → GRPO GRPO 对 verifiable reward 效果显著优于 DPO
主观对齐(helpfulness/harmlessness) SFT → DPO DPO 稳定,适合偏好对数据丰富场景
拇指向上单向信号 KTO 不需要完整的 chosen/rejected 对
早期探索 / 对齐基础 PPO + reward model 成熟但内存开销大
资源受限 DPO(比 PPO 省显存) 不需要 critic

步骤 4:参考关键一手资源

  • RLHF Book(Nathan Lambert):https://rlhfbook.com —— RLHF 领域系统性教科书
  • Sutton & Barto RL Book:https://web.stanford.edu/class/psych209/Readings/SuttonBartoIPRLBook2ndEd.pdf —— RL 理论基础
  • John Schulman notes(KL approximation):http://joschu.net/blog/kl-approx.html —— KL 散度在 PPO 中的核心作用
  • Lilian Weng Policy Gradient:https://lilianweng.github.io/posts/2018-04-08-policy-gradient/ —— 策略梯度算法综述

五、坑与适用边界

坑 1:DPO 对数据噪声极度敏感 官方 TRL 文档和 Cameron 均指出:DPO 在偏好数据集有噪声(标注不一致)时容易过拟合,导致模型泛化能力下降。解法:先用 RewardModel 做数据清洗,或切到 PPO。

坑 2:GRPO 的组大小(num_generate)影响优势估计方差 组越大,advantage 估计越稳定,但内存和时间开销线性增长。DeepSeekMath 论文默认 G=8,Cameron 在指南中建议 8-16 之间调参。

坑 3:KTO 对 KL 系数 β 的选择高度敏感 KTO 的 unary preference 信号(只有 chosen,没有 rejected)简化了数据收集,但 β 过大模型会退化,过小则对齐效果不明显。建议从 β=0.1 开始。

适用边界: - 本指南是概念性综述,不包含可直接 productionize 的代码。生产级 RLHF 推荐看 OpenRLHF(Ray + vLLM 分布式架构,70B+ 支持)。 - GRPO 效果好仅限有可验证奖励的任务(数学、代码);开放式生成任务仍依赖 DPO 或 PPO。


六、一句话结论

Cameron Wolfe 的这篇指南是当前最完整的 RL for LLMs 知识地图——从第一性原理到 GRPO 前沿,以统一视角串联了 RLHF / DPO / GRPO 三大范式,配以 TRL 和 DeepSeekMath 论文作为可操作锚点,适合想系统打通 RL→LLM 对齐全链路的工程师精读。