🎯 一句话理解 RLHF
RLHF = 先让人给模型的输出打分,然后训练一个’打分模拟器’(reward model),最后用 PPO 让模型学会产出高分输出。本质上就是用人类的偏好来做强化学习的 reward 函数。
RLHF 让大模型从"只会模仿文本"进化到"懂得人类偏好",是 ChatGPT/GPT-4 能力飞跃的核心技术。2025 年以来,它正在被系统性地引入自动驾驶——因为"怎么开车算好"本质上是一个人类偏好问题。
🏗️ RLHF 的标准三阶段流程
RLHF 的完整流程分为三个阶段,每一阶段解决一个特定的子问题。
Stage 1:SFT——先让模型学会"说人话"
监督微调(Supervised Fine-Tuning) 是 RLHF 的起点。在大规模预训练的基础上,用高质量的人类示范数据(如 prompt + 理想回答)对模型做行为克隆。
SFT 的目标很简单:让模型学会符合人类预期的输出格式和内容。在驾驶场景中,这一步对应着用人类驾驶日志训练 VLA 模型输出合理的驾驶轨迹——让模型先学会"正常开车"。
SFT 的局限:模型只是模仿人类做了什么,而不是理解人类为什么这么做。更重要的是,SFT 无法处理开放性问题中的偏好多样性——同一个问题可能有很多合理的回答,人类各有偏好。
Stage 2:Reward Model 训练——学会"人类的品味"
第二阶段是最关键的创新:训练一个 reward model(RM)来模拟人类偏好。
数据采集
收集人类对模型输出的偏好对(preference pairs):
- 给定一个 prompt,让模型生成 $K$ 个回答($K$ 通常为 2~9)
- 人类标注者对这些回答做两两比较(哪个更好)
- 收集大量这样的偏好对形成数据集
Bradley-Terry 模型
RM 的核心是 Bradley-Terry 模型——一个经典的成对比较概率模型:
$$P(y_1 \succ y_2) = \frac{\exp(r(y_1))}{\exp(r(y_1)) + \exp(r(y_2))}$$其中 $r(y)$ 是 reward model 对输出 $y$ 给出的标量分数。Bradley-Terry 模型把"人类偏好 A 胜过 B 的概率"建模为两个 exponential 分数的比值。
RM 通过最大化偏好对的 log-likelihood 来训练:
$$\mathcal{L}_{\text{RM}} = -\mathbb{E}_{(y_1, y_2) \sim \mathcal{D}}\left[\log \sigma(r(y_1) - r(y_2))\right]$$其中 $\sigma$ 是 sigmoid 函数。这个损失函数很优雅——它只需要相对比较而不需要绝对分数,人类标注员只需要说"A 比 B 好"而不用给出具体评分。
Elo 评分
在 reward model 之外,另一种评估偏好质量的方法是 Elo 评分,源自国际象棋的排名系统:
- 初始化所有模型/策略为相同的 Elo 分
- 每次比较后,获胜方从落败方"抢走"一定分数
- 分数差决定抢分多少:实力相近的对局,分值变化大;实力悬殊的对局,分值变化小
Elo 在自动驾驶领域被用于评估不同驾驶策略的相对好坏——让人类对一对驾驶片段(轨迹可视化)做比较,生成策略的 Elo 排名。
Stage 3:PPO 优化——让模型追求高分
有了 reward model,RLHF 的第三步就是把 RM 当做 reward 函数,用 PPO 优化策略:
$$\mathcal{L}_{\text{RLHF}} = \mathbb{E}_{t}\left[\min(r_t \hat{A}_t,\ \text{clip}(r_t, 1-\epsilon, 1+\epsilon) \hat{A}_t)\right] - \beta\ \mathbb{KL}(\pi_\theta \| \pi_{\text{SFT}})$$KL 约束 $\mathbb{KL}(\pi_\theta | \pi_{\text{SFT}})$ 在这里至关重要:它把策略"拴"在 SFT 模型附近,防止模型为了追求高 reward 产出 nonsense(reward hacking)。
三阶段总结
| 阶段 | 目标 | 数据 | 模型 |
|---|---|---|---|
| SFT | 基础能力对齐 | 人类示范 | Policy |
| RM 训练 | 学会偏好 | 偏好对 | Reward Model |
| PPO | 策略优化 | 模型生成 + RM 评分 | Policy + Critic |
🎯 DPO:去掉奖励模型的直接偏好优化
DPO(Direct Preference Optimization)是 RLHF 的一个重要变体,它完全绕过了显式的 reward model 训练。
核心洞察
DPO 的作者发现:RLHF 的 reward model + PPO 优化本质上等价于在偏好数据上直接优化某种损失函数。他们推导出,最优策略 $\pi^*$ 可以表示为:
$$\pi^*(y|x) \propto \pi_{\text{SFT}}(y|x) \cdot \exp\left(\frac{1}{\beta} r^*(x,y)\right)$$反解出 reward:
$$r^*(x,y) = \beta \log \frac{\pi^*(y|x)}{\pi_{\text{SFT}}(y|x)} + \beta \log Z(x)$$把这个 reward 代入 Bradley-Terry 模型,得到 DPO 损失:
$$\mathcal{L}_{\text{DPO}} = -\mathbb{E}_{(y_w, y_l) \sim \mathcal{D}}\left[\log \sigma\left(\beta \log \frac{\pi_\theta(y_w|x)}{\pi_{\text{SFT}}(y_w|x)} - \beta \log \frac{\pi_\theta(y_l|x)}{\pi_{\text{SFT}}(y_l|x)}\right)\right]$$| 符号 | 含义 |
|---|---|
| $y_w$ | 人类偏好的回答(win) |
| $y_l$ | 人类不偏好的回答(lose) |
| $\beta$ | 控制对偏好的拟合强度 |
RLHF vs DPO
| 维度 | RLHF | DPO |
|---|---|---|
| 流程 | SFT → RM → PPO | SFT → DPO |
| 需要的模型 | Policy + RM + Critic | 仅 Policy |
| 训练稳定性 | 三阶段配合复杂 | 端到端简单 |
| 表达能力 | 可训练独立 reward | reward 隐式编码在 policy 比 |
| 适用场景 | 需要显式 reward 分析时 | 纯偏好对齐 |
DPO 的出现极大地降低了偏好对齐的工程门槛。尤其是在驾驶场景中——如果我们只有"哪条轨迹更好"的人类偏好数据,DPO 可以直接优化策略,不需要设计 reward 函数。
🚗 RLHF 在自动驾驶中的应用
驾驶风格的偏好本质
“怎么开车算好"没有一个客观标准。同一个人今天可能想开得激进些,明天想开得平稳些。驾驶本质上是一个偏好问题——而 RLHF 恰恰擅长处理偏好对齐。
| 驾驶风格 | 偏好特征 | RLHF 映射 |
|---|---|---|
| 激进型 | 快速起步、早加速、跟车近 | 偏好 reward 偏向效率 |
| 保守型 | 提前刹车、安全距离大 | 偏好 reward 偏向安全 |
| 舒适型 | 加速度小、转向平滑 | 偏好 reward 偏向舒适度 |
| 生态型 | 匀速驾驶、能量回收 | 偏好 reward 偏向能耗 |
Driver-Specific Style Learning
让 VLA 模型学会适应不同驾驶风格是一个活跃的研究方向。基本方案是:
- 偏好采集:让驾驶员在仿真器中对比两段轨迹(同一场景),选择更符合自己风格的选项
- 风格编码:将偏好信息编码为风格 token(如 one-hot 向量或潜在 embedding),传入 VLA 模型
- RLHF 训练:用收集的偏好数据训练 reward model,然后用 PPO 或 DPO 优化带风格条件化的策略
结果:一个模型可以输出多种风格的驾驶轨迹——输入"激进"token 就开得快但变道多,输入"保守"token 就保持大安全距离。
DPR:Direct Preference-based RL
DPR(Direct Preference-based RL)把 DPO 的思想扩展到连续控制场景。它直接从轨迹偏好对中学习策略,不需要显式 reward 函数:
$$\mathcal{L}_{\text{DPR}} = -\mathbb{E}_{(\tau_w, \tau_l) \sim \mathcal{D}}\left[\log \sigma\left(\beta \sum_{t} \log \frac{\pi_\theta(a_t^w|s_t^w)}{\pi_{\text{ref}}(a_t^w|s_t^w)} - \beta \sum_{t} \log \frac{\pi_\theta(a_t^l|s_t^l)}{\pi_{\text{ref}}(a_t^l|s_t^l)}\right)\right]$$这里 $\tau_w$ 和 $\tau_l$ 是完整的驾驶轨迹(整段或片段)。DPR 的核心在于去掉了 reward model 这个中间人,直接从人类的轨迹偏好跳到策略优化。
关键工作
| 工作 | 方法 | 驾驶场景 | 特色 |
|---|---|---|---|
| Driver-specific RLHF | 标准 RLHF + 风格 token | 城市驾驶 | 多风格驾驶生成 |
| DPR for Driving | 直接偏好优化 | 车道保持 + 变道 | 无需 reward model |
| DrivePrefer | 偏好奖励 + CQL | 安全关键场景 | 偏好引导保守策略 |
⚡ GRPO 的独特优势:可验证 Reward
GRPO 的出现为 RLHF 提供了一个全新路径:当 reward 是可验证的(collision check, comfort metric)时,不需要 RM 也不需要 PPO 的 critic。
标准 RLHF vs GRPO 路径
| 路径 | 需要 RM | 需要 Critic | 适用场景 |
|---|---|---|---|
| 标准 RLHF | ✅ | ✅ | 偏好主观(文本风格) |
| DPO | ❌ | ❌ | 偏好数据充分 |
| GRPO | ❌ | ❌ | reward 可客观计算 |
GRPO 在驾驶场景中的好处:
- 不需要人类标注偏好:碰撞、舒适度等指标可以自动计算
- 不需要训练 reward model:直接使用可验证函数
- 不需要 critic 网络:使用组内相对优势
- 端到端更简洁:从驾驶场景直接到策略更新
驾驶中可验证 Reward 的例子
| Reward 维度 | 计算方法 | 是否可验证 |
|---|---|---|
| 碰撞检测 | bounding box 交并比 | ✅ 完全客观 |
| 车道偏移 | 横向位移阈值检查 | ✅ 完全客观 |
| 限速合规 | 当前速度 vs 限速 | ✅ 完全客观 |
| 舒适度 | 加速度/急动度 | ✅ 基于公式 |
| 社会接受度 | 跟车距离 | ✅ 基于规则 |
| 风格偏好 | 激进程度 | ❌ 需要主观判断 |
GRPO + 可验证 Reward 的简洁管线
这种简洁性使得 GRPO 在自动驾驶 RL 中的工程可落地性远高于标准 RLHF。AlphaDrive 和 Flow-GRPO 的成功证明了这条路径的有效性。
💡 关键洞察:偏好对齐对驾驶为什么"天然适配”?
驾驶行为的多样性
驾驶不像数学题——没有"唯一正确答案"。同一个路口,不同司机的通过方式截然不同:
- 新手会减速、观察、小心翼翼
- 老手会带着速度滑行通过
- 激进者可能在黄灯最后一秒冲过去
所有这些行为都可能"合法"且"安全",只是偏好不同。这恰恰是偏好对齐的舒适区——RLHF 不用定义"哪个是对的",只需要知道"哪个被偏好"。
偏好对齐的三层意义
| 层级 | 含义 | RLHF 技术 |
|---|---|---|
| 个体化 | 不同人有不同偏好 | 条件化策略 + 偏好 RM |
| 场景化 | 同一人在不同场景偏好不同 | 场景感知 reward 加权 |
| 安全边界 | 偏好不能突破安全红线 | 硬约束 + CQL 保守底限 |
偏好学习的未来方向
- 多模态偏好:结合语言 feedback 和视觉 feedback——“开得太靠右了,往左靠一点”
- 持续对齐:随着用户驾驶风格的逐渐了解,策略持续适配
- 群体偏好聚合:如何从多个驾驶员的偏好中学习一个通用但可定制的策略
📝 个人思考
RLHF 在 LLM 上的成功证明了"人类偏好作为 reward"的有效性——它比任何人工设计的 objective 更贴近真实需求。我认为这个洞察对自动驾驶同样成立。数十年来,自动驾驶的控制策略都是用工程化的 metric(横向误差、加速度、燃油经济性)来优化,这些指标虽然客观,但失去了’人到底觉得怎么开车舒服’这个本质问题。
但 RLHF 引入驾驶也面临更大的挑战:LLM 的输出可以廉价地让数千标注员打分,而驾驶轨迹的偏好标注需要模拟器回放、需要专家判断、成本高得多。GRPO 和可验证 reward 的组合某种程度上绕过了这个成本瓶颈——对碰撞、舒适度、合规性等维度可以自动化打分,只有当风格偏好等主观维度需要人类介入。
我的判断是:在自动驾驶 VLA 的 RL 微调中,RLHF 不会完全替代传统的 reward 设计,而是补充它。安全的底限用可验证 reward 保证(GRPO),风格的偏好用人类标注拟合(DPO),两者结合才能既有安全保障又能满足个性化需求。
📖 这是知识点拆解系列的第 13 篇。驾驶不仅是技术问题,更是偏好问题——RLHF 让车学会"开得像你喜欢的样子"。