Value Model
价值模型(Value Model),也称 critic 或 价值函数(Value Function),是 actor-critic 类强化学习算法(尤其是 PPO)的关键组件。它的职责是给出当前状态的期望回报估计 ,作为 policy gradient 的 baseline 用于降低方差。在 RLHF 场景下,value model 通常与策略 LLM 共享 Transformer 主干、只加一个标量输出头,并从 奖励模型(Reward Model) 初始化。
数学定义
给定策略 ,状态价值函数(State-Value Function) 定义为从状态 出发、按策略 行动、直至 episode 结束所能获得的期望折扣回报:
与之相关的还有 动作价值函数(Action-Value Function) 和 优势函数(Advantage Function) :
Bellman 关系:
在 PPO 中的角色
PPO 的 policy loss 需要每个时间步的 advantage 估计 。理论上 ,但 和 都未知。实践中的做法是:
- 训练一个神经网络 近似 ——这就是 value model。
- 用 GAE(Generalized Advantage Estimation) 把 的估计和实际 rollout 的 TD 残差结合起来:
- 同时用回归损失训练 :
目标 通常取 ,即 bootstrap 之后的”更好估计”。
详细的 GAE 推导见 policy-gradient-to-ppo-derivation。
架构与初始化
在 RLHF 中 value model 通常与 policy 共享 Transformer 主干,仅在最后一层隐藏状态上加一个标量输出头(一层线性层):
Transformer body (shared or copied) → hidden state h_t → linear → V(s_t) ∈ ℝ
初始化:几乎所有主流 RLHF 实现都从训练好的 reward model 初始化 value model——两者架构完全一致,都是 LLM + 标量头,而 reward model 已经学会了”给定一段 response 输出一个标量”。这给 value model 提供了一个远比随机初始化更好的起点。
注意这和 reward model 的职责不同:
- Reward model 输入完整 response,输出整条 response 的质量分数 (只在末尾 token 给 reward)。
- Value model 输入 prompt + 任意长度前缀,输出从当前位置到 response 结束时的期望未来 reward ,每个 token 位置都有输出。
两者在 RLHF 训练过程中会逐渐分化:reward model 通常固定不动,value model 随 policy 一起更新。
与 Reward Model / ORM 的对比
| 架构 | 训练目标 | 输出粒度 | 数据分布 | |
|---|---|---|---|---|
| Reward Model (Bradley-Terry) | LLM + 标量头 | 偏好对对比损失 | 序列末尾一个标量 | 离线的人类偏好对 |
| ORM(Outcome RM) | LLM + 逐 token 分类头 | 二元 CE,整条 response 共享标签 | 每 token 一个 logit | 离线的(response, 正确性)对 |
| Value Model / Critic | LLM + 标量头 | 平方回归到 GAE 目标 | 每 token 一个标量 | on-policy rollout,随策略更新 |
关键区别:reward model 和 ORM 都是离线训练的静态估计器,而 value model 是一个 on-policy 的滚动估计器——它必须跟着 policy 一起演化,因为它学的是”当前策略 下”从某状态出发的期望回报。更多对比见 reward-model。
显存成本
Value model 与 policy 同规模,这意味着 RLHF 训练时显存里同时存在:
- Policy(可训练)
- Value model / critic(可训练)
- Reward model(冻结,仅前向)
- Reference policy(冻结,用于 KL 惩罚)
对 7B 模型,仅 policy + value 的可训练参数就需要约 14B,再加上 Adam 的 和 状态会再翻 4 倍——单是优化器状态就可能需要 56GB。这是 RLHF 训练显存开销的主要来源之一,也是 GRPO 扔掉 critic 的根本动机。
LLM 场景下 value model 为什么难训
在 LLM 的 RLHF 里,reward 通常是 sequence-level 的:只有完整 response 结尾才有非零 reward,中间 token 的 reward 全为 0。这让 value model 面临一个极难的 credit assignment 问题——给定一个不完整的前缀 ,它需要预测”如果策略继续生成到末尾,reward model 会给多少分”。这相当于要求 value model:
- 理解部分 response 的潜在语义走向;
- 隐式地”模拟”策略的后续生成;
- 给出与 reward model 一致的评分。
结果往往是:
- 高方差:同一个前缀在不同 rollout 下可能导向极不同的末端 reward,value 估计本质上是对一个多模态分布取期望。
- 慢适应:policy 一变化,同一个前缀的期望 reward 就变了,value model 需要追着 policy 跑。
- bias 难以衡量:因为没有真实的 可以对照,value model 的偏差只能通过 advantage 的噪声间接反映。
GRPO 的观察是:与其让 critic 去近似一个很难的量,不如直接对同一个 prompt 采样一组 response,用组内经验均值作为 Monte Carlo baseline——显存减半,方差还更低。
在 RLHF+PPO 的完整训练循环里,value model 实际是如何参与 rollout、GAE 计算和 loss 合成的——包括一个数值示例展示 GAE 信号沿序列的指数衰减——见 PPO+RLHF 训练循环 walkthrough。
实践注意事项
- Value function clipping:仿照 policy 的 clip,对 value 更新也做一次裁剪 。实际效果存在争议,有工作指出这一项可能反而有害。
- Advantage normalization:在 minibatch 级别对 做 z-score 标准化,是 PPO 训练稳定性的关键 trick。
- Value loss 权重:典型 或 ,过大会让 value loss 主导梯度从而忽略 policy 梯度。
- 冻结 reward model,共享 body 与 policy:一些实现让 value head 与 policy 完全共享 Transformer body,只在最后一层加一个额外的线性头;另一些实现完全拷贝一份 body。前者节省显存但会让 policy 梯度与 value 梯度互相干扰,后者更稳定但更贵。
- KL 项不进入 value target:value model 学的是 “不含 KL 惩罚的真实 reward” 还是 “含 KL 惩罚的 shaped reward”,不同实现取法不同,需要与 advantage 计算保持一致。
参考资料
- OpenAI Spinning Up: Intro to RL, Part 1 - Value Functions
- Proximal Policy Optimization Algorithms (Schulman et al., 2017)
- High-Dimensional Continuous Control Using Generalized Advantage Estimation (Schulman et al., 2015)
- A Vision Researcher’s Guide to Some RL Stuff: PPO & GRPO - Yuge Shi
- RLHF Book Ch.6: Policy Gradients - Nathan Lambert
Comments