2026-07-15
RL for LLMs:从零到完整训练流程
本文从基本概念开始,逐步构建 LLM 强化学习的完整图景。
一、核心概念逐个拆
Rollout
直译:展开、推出。 RL 含义:让 policy(策略,也就是当前模型)在环境中跑一遍,生成一条完整的行动轨迹(trajectory)。
类比一下:你让一个学生做一套试卷,他写下的全部答题过程就是一次 rollout。每一步(每道题)是"状态",他写下的答案是"动作",最后对答案打分就是"奖励"。
在 LLM Agent 的语境里:
Rollout = [turn₁, turn₂, ..., turnₙ]
每个 turn 包含 (observation, action, reward) 三元组。比如 Codex CLI 修复一个 bug:读文件(obs)→ 写代码(action)→ 编译通过/不通过(reward)。
Policy
模型在给定状态下选择动作的策略。LLM 的 policy 就是 P(next_token | context)——给定上文,预测下一个 token。
Reward(奖励)
对模型输出质量的标量评分。可以是:
- 二元:代码编译通过 / 不通过(0 或 1)
- 连续:测试通过率(0.0 ~ 1.0)
- 模型评分:用 reward model 打分
- 规则评分:格式正确 +5,逻辑错误 -2
Value Function(价值函数)
预测"从这个状态出发,未来能拿多少总奖励"。帮助模型判断:
- 当前这步走对了吗?
- 如果现在换一种方式,后续会不会更好?
Advantage(优势)
A(s, a) = Q(s, a) - V(s)
实际拿到的奖励比预期好多少。正优势鼓励这个动作,负优势抑制。
Trajectory(轨迹)
一次 rollout 产生的完整序列:
s₀ → a₁ → s₁ → a₂ → s₂ → ... → sₙ
是训练的基本单元。
二、LLM RL 的全流程
第 0 步:准备工作
基础模型(如 Qwen3.5-4B)
│
▼
SFT 微调(让模型先学会基本指令遵循)
│
▼
Reward Model 或 Verifier(评分函数)
第 1 步:采样(Rollout)
用当前 policy(模型)在环境中跑 N 次,生成 N 条 trajectory:
输入:"修复这个 Python 函数的 bug"
│
▼
模型采样生成多条不同答案:
Trajectory 1: 读代码 → 改第5行 → 补测试 → 通不过
Trajectory 2: 读代码 → 分析根因 → 改第12行 → 通过
Trajectory 3: 读代码 → 直接删函数 → 通不过
第 2 步:评估(Evaluation)
对每条 trajectory 打分:
| Trajectory | 分数 | 原因 |
|---|---|---|
| 1 | 0.3 | 改了但没完全修好 |
| 2 | 0.9 | 正确修复,测试通过 |
| 3 | 0.0 | 直接删函数,负分 |
第 3 步:优势计算(Advantage Estimation)
计算每个 token/每步的 advantage:
Advantage = 实际累计奖励 - 预期奖励
好的步骤 → 正 advantage(鼓励) 差的步骤 → 负 advantage(抑制)
第 4 步:策略更新(Policy Update)
用 advantage 信号更新模型参数。目标是:让 policy 倾向于产生高 advantage 的动作。
核心优化目标(以 GRPO 为例):
maximize: E[ advantage × log P(action | state) ]
同时加一个 KL penalty 防止模型偏离太远。
第 5 步:循环
重复 1-4 步,持续迭代。通常需要数千到数万次 rollout。
三、常见的 RL 算法选择
PPO(Proximal Policy Optimization)
最经典,OpenAI 的默认选择。
核心 trick:用 clipped objective 防止单次更新步子太大。
L = min(ratio × A, clip(ratio, 1-ε, 1+ε) × A)
需要一个 value model(critic),所以内存占用翻倍。
适用:通用场景,奖励需要 value 函数辅助。
GRPO(Group Relative Policy Optimization)
DeepSeek-R1 用的算法,不需要 value model。
核心 trick:对一个 prompt 采样一组 response,用组内相对排名代替 advantage:
Advantage = (response_score - group_mean) / group_std
比 PPO 省一半显存(省掉了 critic model)。
适用:资源受限场景、数学推理。
Reinforce(REINFORCE)
最简单的 policy gradient,直接用累计奖励更新。
缺点:方差大,不稳定。
适用:简单场景的 baseline。
四、关键超参数
| 参数 | 含义 | 典型值 |
|---|---|---|
| learning_rate | 学习率 | 1e-6 ~ 5e-6 |
| KL penalty | KL散度惩罚系数 | 0.01 ~ 0.1 |
| clip_epsilon | PPO 裁剪范围 | 0.1 ~ 0.3 |
| num_rollouts | 每次更新采样数 | 8 ~ 64 |
| temperature | 采样温度 | 0.6 ~ 1.0 |
五、Polar 的位置
结合 Polar 来看整个流程就很清楚了:
Polar 的边界
┌──────────────┐
│ proxy 捕获 │
│ token 级数据 │
└──────┬───────┘
│
Harness ──→ Rollout ──→ Trajectory ──→ Advantage ──→ Policy Update
(Codex等) (记录) (计算) (GRPO/PPO)
Polar 不发明新算法,它解决的是 Rollout 阶段的工程问题——让任何 harness 都能被"黑盒"接入 RL pipeline。
参考:
- Schulman et al., PPO, 2017
- Shao et al., GRPO / DeepSeek-Math, 2024
- Xu et al., Polar: Agentic RL on Any Harness, 2026