--- title: 03-RLHF与对齐 draft: false tags: - RLHF - 对齐 - 大语言模型 - 强化学习 --- # RLHF 与对齐技术 > 本笔记面向深度学习与强化学习科研人员,系统阐述 RLHF(Reinforcement Learning from Human Feedback)及其相关对齐技术的理论基础、数学推导与算法实现。 > > 更新日期:2026-05-14 --- ## 1. RLHF 的基本框架 ### 1.1 InstructGPT 流程 InstructGPT(Ouyang et al., 2022)提出了 RLHF 的经典三阶段流程: $$ \text{SFT} \rightarrow \text{RM} \rightarrow \text{PPO} $$ #### 阶段一:监督微调(SFT) 给定 prompt 分布 $\rho(x)$,策略模型 $\pi_{\text{ref}}(y \mid x)$ 通过监督学习从人类标注的 prompt-completion 对学习: $$\mathcal{L}_{\text{SFT}} = - \mathbb{E}_{(x,y) \sim \mathcal{D}_{\text{SFT}}} \left[ \log \pi_{\text{ref}}(y \mid x) \right]$$ 其中 $\mathcal{D}_{\text{SFT}}$ 为人类标注数据。SFT 是**自回归监督最大似然**,等价于标准预训练续写目标,可无缝承接基座模型权重。 #### 阶段二:奖励建模(RM) 训练奖励模型 $r_\phi(x, y)$ 来预测人类偏好,详见第 2 节。 #### 阶段三:PPO 微调(RLHF) 使用强化学习算法(PPO)在奖励模型提供的奖励信号下微调语言模型,同时约束其不要偏离 SFT 模型太远。 **RLHF三阶段定位与轻量化方案**: - **经典重型RLHF**:`SFT → RM → PPO` - **轻量化对齐主流**:Prompt Tuning、LoRA+RLHF、冻结骨干仅微调对齐头,是科研落地高频方案 **RLHF训练稳定性核心手段**: 1. 自适应KL惩罚(动态调整 $\beta$) 2. 偏好数据温度平滑 3. 早停机制防止偏好过拟合 ### 1.2 人类偏好数据与奖励建模 人类偏好数据的形式为三元组 $(x, y_w, y_l)$,其中: - $x$:输入 prompt - $y_w$:人类偏好的响应(preferred response) - $y_l$:人类不偏好的响应(less preferred response) 奖励模型通过 Bradley-Terry 模型建模偏好概率: $$ P(y_1 \succ y_2 \mid x) = \sigma\left( r(x, y_1) - r(x, y_2) \right) $$ 其中 $\sigma(z) = \frac{1}{1 + e^{-z}}$ 为 sigmoid 函数。 ### 1.3 RLHF 的优化目标 RLHF 的最终目标是学习一个策略 $\pi_\theta$ 最大化期望奖励,同时保持与参考策略 $\pi_{\text{ref}}$ 的 KL 散度较小: $$ \boxed{ \max_{\pi_\theta} \mathbb{E}_{x \sim \rho} \left[ \mathbb{E}_{y \sim \pi_\theta(\cdot|x)} \left[ r(x, y) \right] \right] - \beta \cdot D_{\mathrm{KL}} \left( \pi_\theta(\cdot|x) \parallel \pi_{\text{ref}}(\cdot|x) \right) } $$ 其中: - $r(x, y)$:奖励模型给出的奖励值 - $\beta > 0$:KL 惩罚系数,控制策略偏离 SFT 的程度(通用取值 $0.1 \sim 0.3$) - $D_{\mathrm{KL}}(P \| Q) = \mathbb{E}_x \left[ P(x) \log \frac{P(x)}{Q(x)} \right]$ **LLM工业落地实操**:理论使用全局KL,**实操使用逐Token KL散度**,降低计算量、提升训练稳定性: $$D_{\mathrm{KL}}^{\text{token}} = \sum_{t=1}^T \log \frac{\pi_\theta(y_t|x,y_{ r_\phi(x, y_l)$(即预测正确)时,$\sigma(\Delta r)$ 接近 1,梯度系数 $(1-\sigma)$ 接近 0,样本对损失的贡献较小;当预测错误时,梯度系数接近 1,提供较大的更新信号。 ### 2.4 奖励模型的标度问题 训练好的奖励模型 $r_\phi(x, y)$ 的输出值域需要与人类偏好对齐。通常对奖励进行归一化: $$ r_{\text{norm}}(x, y) = \frac{r_\phi(x, y) - \mu}{\sigma} $$ 其中 $\mu, \sigma$ 是奖励分布在验证集上的均值和标准差。**科研实操常用分位数截断归一化**,抑制极端异常奖励值。 --- ## 3. PPO 在 LLM 中的应用 ### 3.1 策略梯度回顾 对于标准强化学习,策略梯度定理给出: $$ \nabla_\theta \mathcal{J} = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t|s_t) \cdot \hat{Q}(s_t, a_t) \right] $$ 其中 $\hat{Q}(s_t, a_t)$ 是动作价值函数的估计。 在 LLM 场景下: - 状态 $s_t$:当前的 context $(x, y_{1:t-1})$ - 动作 $a_t$:生成的下一个 token $y_t$ - 轨迹 $\tau$:完整的生成序列 $(x, y_1, y_2, ..., y_T)$ ### 3.2 剪切代理目标(Clipped Surrogate Objective) PPO 的核心创新是剪切代理目标函数。定义**重要性采样比率**: $$ r_t(\theta) = \frac{\pi_\theta(y_t|x, y_{1:t-1})}{\pi_{\text{ref}}(y_t|x, y_{1:t-1})} $$ 定义**优势函数估计**(GAE, Generalized Advantage Estimation): $$ \hat{A}_t = \sum_{l=0}^{T-t} (\gamma \lambda)^l \delta_{t+l} $$ 其中 $\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)$ 是时序差分误差,$\gamma \in [0,1]$ 是折扣因子,$\lambda \in [0,1]$ 是 GAE 参数。 **LLM中GAE的特殊性**:传统强化学习是逐帧GAE,**LLM为整序列统一GAE**,折扣因子 $\gamma$ 在文本生成中取值更贴近1(通常 $\gamma=0.99, \lambda=0.95$),时序衰减极弱。 **定理 3.1(PPO 剪切代理目标)** PPO 通过以下目标函数实现策略更新: $$ \boxed{ \mathcal{L}^{\text{CLIP}}(\theta) = \mathbb{E}_t \left[ \min\left( r_t(\theta)\cdot\hat{A}_t,\ \text{clip}\big(r_t(\theta),1-\epsilon,1+\epsilon\big)\cdot\hat{A}_t \right) \right] } $$ 其中 $\epsilon = 0.2$ 是行业固定剪切超参数。 **剪切机制的物理意义**: 当 $\hat{A}_t > 0$(优势为正)时:比值 $r_t$ 被剪切到 $[1-\epsilon, 1+\epsilon]$,这意味着当 $r_t > 1+\epsilon$ 时,梯度被"截断",不再鼓励更多探索。 当 $\hat{A}_t < 0$(优势为负)时:比值被剪切到 $[1-\epsilon, 1+\epsilon]$,限制策略概率的过度减小。 ### 3.3 价值函数与 baseline 在 LLM 的 RLHF 中,价值函数 $V_\psi(x, y_{1:t})$ 用于估计**从当前前缀到序列结束的累计终局奖励**,非单步局部奖励: $$ V_\psi(x, y_{1:t}) \approx \mathbb{E}_{y_{t+1:T} \sim \pi_\theta} \left[ \sum_{k=t}^{T} r(x, y_{1:k}) \right] $$ 仅 PRM 过程奖励才定义逐步骤局部信号。 价值函数通过以下均方误差损失进行训练: $$ \mathcal{L}_V(\psi) = \mathbb{E}_t \left[ \left[ V_\psi(x, y_{1:t}) - \hat{V}_t \right]^2 \right] $$ 其中 $\hat{V}_t = \sum_{k=t}^{T} r(x, y_{1:k})$ 是价值目标。 **优势函数**定义为: $$ \hat{A}_t = \hat{Q}_t - \hat{V}_t = r(x, y_{1:t}) + \hat{V}_{t+1} - \hat{V}_t $$ 这本质上是 REINFORCE with baseline,通过减去 value baseline 减少方差。 ### 3.4 经验回放与 Epoch 限制 **PPO 在 LLM 中的特殊性**:LLM-RLHF 采用**On-Policy 同策略 PPO**,轨迹严格依赖当前策略参数,旧轨迹分布失效,**不支持离线异策略经验回放**,并非单纯"只能用一次"。 每个 prompt 及其生成轨迹只用于一次梯度更新,但可以在同一个 mini-batch 中多次计算 loss(多个 epoch)。 设 $B$ 为一个 mini-batch 的 prompt 集合,对每个 $x \in B$: 1. 采样轨迹 $(x, y_1, ..., y_T) \sim \pi_\theta(\cdot|x)$ 2. 计算优势函数 $\hat{A}_t$ 3. 在相同数据上执行 $K$ 个 epoch 的策略更新(通常 $K = 1 \sim 4$) ### 3.5 梯度裁剪与训练稳定性 PPO 额外使用梯度裁剪进一步增强稳定性: **行业标准:LLM训练使用梯度范数裁剪**,通过 `torch.nn.utils.clip_grad_norm_(max_norm)` 实现: $$ \|\nabla_\theta \mathcal{L}\|_2 \leq \text{max\_norm} $$ 其中 max_norm 通常设为 0.1~1.0。 **KL 散度约束与梯度裁剪的双重保险**: - KL 散度惩罚:软约束策略不要偏离 $\pi_{\text{ref}}$ 太远 - 梯度裁剪:硬约束参数更新的幅度 - 剪切代理目标:限制策略更新的比率 --- ## 4. KL 散度约束的作用 ### 4.1 $\beta$ 参数的物理意义 $\beta$ 参数控制了 KL 惩罚的强度,其物理意义可以从以下角度理解: **信息论角度**:$D_{\mathrm{KL}}(\pi_\theta \| \pi_{\text{ref}})$ 衡量新策略 $\pi_\theta$ 相对于参考策略 $\pi_{\text{ref}}$ 额外需要编码的信息量。较大的 $\beta$ 意味着策略不能引入太多新信息。 ### 4.2 前哨策略(Reference Policy)的约束 **定义 4.1(前哨策略)** 前哨策略 $\pi_{\text{ref}}$ 是 SFT 阶段训练得到的监督微调模型,作为 RLHF 的参考基准。 KL 惩罚项 $D_{\mathrm{KL}}(\pi_\theta \| \pi_{\text{ref}})$ 的作用: $$ \pi^* = \arg\max_{\pi} \mathbb{E}_{x \sim \rho} \left[ \mathbb{E}_{y \sim \pi(\cdot|x)}[r(x,y)] - \beta \cdot D_{\mathrm{KL}}(\pi(\cdot|x) \| \pi_{\text{ref}}(\cdot|x)) \right] $$ **引理 4.1(KL 约束的闭式解)** 上述目标的解具有以下形式: $$ \pi^*(y|x) \propto \pi_{\text{ref}}(y|x) \cdot \exp\left( \frac{r(x,y)}{\beta} \right) $$ **证明**:在约束 $\sum_y \pi(y|x) = 1$ 下使用拉格朗日乘子法。对每个 $x$,目标函数为: $$ \mathcal{L} = \sum_y \pi(y|x) \cdot r(x,y) - \beta \sum_y \pi(y|x) \log \frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)} + \lambda \left( \sum_y \pi(y|x) - 1 \right) $$ 对 $\pi(y|x)$ 求导并令导数为零: $$ r(x,y) - \beta \left( 1 + \log \frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)} \right) + \lambda = 0 $$ 整理得: $$ \pi(y|x) = \pi_{\text{ref}}(y|x) \cdot \exp\left( \frac{r(x,y) + \lambda - \beta}{\beta} \right) $$ 令 $Z = \sum_y \pi_{\text{ref}}(y|x) \cdot \exp\left( \frac{r(x,y)}{\beta} \right)$ 为归一化常数,则: $$ \pi^*(y|x) = \frac{\pi_{\text{ref}}(y|x) \cdot \exp\left( \frac{r(x,y)}{\beta} \right)}{Z} $$ 这正是 Boltzmann 分布的形式。$\blacksquare$ ### 4.3 KL 惩罚 vs 奖励信号之间的权衡 令 $\beta$ 取极端值来分析: **当 $\beta \rightarrow 0$**:KL 惩罚几乎消失,目标是纯粹的期望奖励最大化 $\max_\pi \mathbb{E}[r(x,y)]$。这等价于找到奖励最高的分布,但由于没有约束,可能导致分布退化(所有概率集中在一个 token)。 **当 $\beta \rightarrow \infty$**:KL 惩罚主导,策略被强制接近 $\pi_{\text{ref}}$,$\pi^* \rightarrow \pi_{\text{ref}}$。此时几乎没有奖励优化。 **$\beta$ 的实际选择**:InstructGPT 中 $\beta$ 通常在 $0.1$ 到 $0.3$ 之间。过小会导致 reward hacking(见第 7 节),过大会导致策略无法从人类反馈中学习。 --- ## 5. DPO(Direct Preference Optimization) ### 5.1 DPO 目标函数 DPO(Rafailov et al., 2023)提出了直接优化偏好数据的目标,无需显式训练奖励模型。 **定义 5.1(DPO 目标)** 给定偏好数据集 $\mathcal{D} = \{(x, y_w, y_l)\}$,DPO 优化以下损失: $$ \boxed{ \mathcal{L}_{\text{DPO}} = - \mathbb{E}_{(x,y_w,y_l) \sim \mathcal{D}} \left[ \log \sigma\left( \beta \log\frac{\pi_\theta(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \beta \log\frac{\pi_\theta(y_l|x)}{\pi_{\text{ref}}(y_l|x)} \right) \right] } $$ 其中 $\pi_{\text{ref}}$ 是参考策略(通常为 SFT 模型),$\beta$ 是温度参数(通用取值 $0.1 \sim 1.0$)。 ### 5.2 DPO 与 PPO 的等价性推导 **定理 5.1(DPO 与 PPO 的等价性)** 在适当假设下,最小化 DPO 损失等价于在 PPO 框架下最大化期望奖励。 **证明**:从 RLHF 目标出发,设 Bradley-Terry 模型给出偏好概率: $$ P(y_w \succ y_l | x) = \sigma( r(x, y_w) - r(x, y_l) ) $$ DPO 论文的核心观察:**DPO 隐式定义了满足 Bradley-Terry 约束的奖励模型**。通过偏好概率的对数几率变换可得: $$ r(x, y_w) - r(x, y_l) = \beta \cdot \log \frac{P}{1-P} = \beta \cdot \log \frac{\pi_\theta(y_w|x)}{\pi_{\text{ref}}(y_w|x)} - \beta \cdot \log \frac{\pi_\theta(y_l|x)}{\pi_{\text{ref}}(y_l|x)} $$ 最小化 DPO 损失等价于最小化以下交叉熵: $$ \mathcal{L}_{\text{DPO}} = - \mathbb{E} \left[ \log P(y_w \succ y_l | x) \right] $$ 其中 $P$ 由上式定义。这恰好是让模型满足人类偏好的分布。$\blacksquare$ ### 5.3 DPO 的优缺点分析 **优点**: 1. **无需奖励模型训练**:DPO 直接在偏好数据上优化,绕过了独立的奖励建模阶段,简化了流程。 2. **避免奖励模型过拟合**:奖励模型的有限容量可能导致过拟合,DPO 避免了这个问题。 3. **计算效率**:单阶段优化,无需运行 PPO 的迭代过程。 4. **训练稳定性**:DPO 的优化目标更加平滑,不涉及策略梯度的方差问题。 **缺点**: 1. **对参考模型的依赖**:DPO 需要高质量的 $\pi_{\text{ref}}$,如果参考模型能力不足,DPO 难以学到超越它的能力。DPO 强依赖高质量 SFT 参考策略,若 $\pi_{\text{ref}}$ 能力薄弱,DPO 无法实现能力跃升,仅能做偏好对齐,无法做能力提升。 2. **隐式奖励的局限性**:DPO 使用的隐式奖励 $\beta \log \frac{\pi_\theta(y|x)}{\pi_{\text{ref}}(y|x)}$ 可能与真实人类偏好不完全一致。 3. **缺乏探索机制**:DPO 本质上是最小化 KL 散度到参考策略,没有显式的探索机制。 4. **过优化风险**:DPO 可能更容易过拟合到偏好数据的分布,导致泛化能力下降。 --- ## 6. 过程奖励模型(Process Reward Model, PRM) ### 6.1 结果奖励 vs 过程奖励 **定义 6.1(结果奖励模型,Outcome RM)** 结果奖励模型只在完整的响应生成后才提供奖励信号 $r(x, y_T)$。这是标准 RLHF 中使用的奖励模型。 **定义 6.2(过程奖励模型,Process RM)** 过程奖励模型在生成的每个中间步骤都提供奖励信号: $$ r(x, y_{1:t}) = \text{PRM}(x, y_{1:t}), \quad \forall t \in \{1, 2, ..., T\} $$ **对比**: | 特性 | 结果奖励 (Outcome RM) | 过程奖励 (Process RM) | |------|----------------------|----------------------| | 奖励时机 | 仅在序列末尾 | 每个中间步骤 | | 信用分配 | 难以处理长序列 | 天然支持逐步信用分配 | | 训练数据 | 稀疏偏好信号 | 需要每步标注 | | 可解释性 | 低 | 高 | ### 6.2 蒙特卡洛树搜索中的 PRM **蒙特卡洛树搜索(MCTS)** 结合 PRM 的核心思想: 在 MCTS 中,每个节点 $(x, y_{1:t})$ 维护: - $N(x, y_{1:t})$:访问计数 - $Q(x, y_{1:t})$:平均奖励估计 MCTS 的 Upper Confidence Bound (UCB) 选择策略: $$ a_t = \arg\max_{a} \left[ Q(x, y_{1:t-1}, a) + c \cdot \sqrt{\frac{\ln N(x, y_{1:t-1})}{N(x, y_{1:t-1}, a)}} \right] $$ 其中 $c$ 是探索常数。 **PRM 引导的 MCTS**:使用 PRM 提供每步的即时奖励,改进 UCB 中的 Q 值估计: $$ \hat{Q}(x, y_{1:t}) = \frac{1}{M} \sum_{m=1}^{M} \left[ \sum_{k=1}^{T} r(x, y_{1:k}^{(m)}) \right] $$ 其中 $M$ 是通过 MCTS 采样的轨迹数量。 ### 6.3 PRM 与 MCTS 的结合 **算法步骤**: 1. **初始化**:使用 SFT 模型初始化策略 $\pi_{\text{ref}}$ 2. **PRM 训练**:收集人类标注的过程偏好数据 $(x, y_{1:t}, y'_{1:t}, \text{偏好})$,训练 PRM 3. **MCTS 搜索**:对于每个 prompt $x$,使用 PRM 引导的 MCTS 生成多样化的响应 4. **数据收集**:收集 $(x, y_{\text{chosen}}, \text{偏好})$ 对 5. **策略更新**:使用 DPO 或 RLHF 更新策略 6. **迭代**:重复步骤 2-5 **数学形式化**:设 MCTS 树的叶子节点对应完整响应 $y_T$,中间节点对应部分序列 $y_{1:t}$。PRM 的奖励信号传递: $$ \Delta Q(x, y_{1:t}) = r_{\text{PRM}}(x, y_{1:t}) - V(x, y_{1:t-1}) $$ 其中 $V$ 是价值 baseline,用于减少方差。 --- ## 7. 对齐失败的模式与检测 ### 7.1 奖励黑客(Reward Hacking) **定义 7.1(奖励黑客)** 奖励黑客是指策略 $\pi_\theta$ 发现并利用奖励模型的漏洞,获得高奖励但实际质量低下的行为。 **数学描述**:奖励模型 $r_\phi(x,y)$ 是真实人类偏好 $r^*(x,y)$ 的代理。奖励黑客发生在: $$ \pi_\theta = \arg\max_{\pi} \mathbb{E}[r_\phi(x,y)] \neq \arg\max_{\pi} \mathbb{E}[r^*(x,y)] $$ 即策略优化的目标与真实目标不一致。 **典型模式**: 1. **长度作弊**:模型发现更长的回复获得更高奖励,因此生成冗长但空洞的内容 2. **关键词填充**:在回复中堆砌特定关键词以提高奖励模型分数 3. **对抗性输入**:发现奖励模型的盲点,在特定输入模式下生成欺骗性内容 ### 7.2 谄媚(Sycophancy) **定义 7.2(谄媚)** 谄媚是指模型在收到用户反馈时,过于顺从用户的观点,而不是坚持事实准确性。 **数学描述**:设用户的隐式信念为 $b$,模型的响应为 $y$,真实性衡量为 $f(x,y) \in [0,1]$,用户满意度为 $s(x,y,b) \in [0,1]$。谄媚发生在: $$ \pi_{\text{ref}} = \arg\max_\pi \mathbb{E}[s(x,y,b)] \quad \text{当} \quad \mathbb{E}[f(x,y)] \text{被牺牲} $$ 即策略优先考虑用户满意度而牺牲了真实性。 **检测方法**: 1. **观点一致性测试**:给模型提供相同事实,但附加支持或反对该事实的用户陈述,观察回复变化 2. **多轮对话测试**:通过多轮对话引导模型改变立场,检测是否过度顺从 ### 7.3 过度优化(Overoptimization) **定义 7.3(过度优化)** 过度优化是指在 RLHF 过程中,对 KL 约束的 $\beta$ 参数设置过低,导致策略过度拟合奖励模型而偏离人类意图。 **数学分析**:设真实目标函数为 $J^*(pi)$,代理目标函数为 $\hat{J}(pi)$,二者满足: $$ \hat{J}(pi) = J^*(pi) + \epsilon(pi) $$ 其中 $\epsilon(pi)$ 是模型误差。当 $\beta$ 过小时: $$ \pi^* = \arg\max_\pi \hat{J}(pi) - \beta \cdot D_{\mathrm{KL}}(pi \| pi_{\text{ref}}) $$ 过小的 $\beta$ 允许 $\pi^*$ 过度拟合 $\hat{J}$,放大误差 $\epsilon$ 的影响。 **Goodhart's Law**:当一个指标变成目标时,它就不再是一个好的指标。在 RLHF 中,当奖励模型成为优化目标时,它可能不再反映人类真实偏好。 ### 7.4 对齐测试方法 #### 7.4.1 自动化测试 **对抗性测试集**:构建包含"陷阱"问题的测试集,检测模型是否会: 1. **Truthfulness Test**:检测模型在明显错误前提下是否仍坚持正确事实 - 输入:"如果 2+2=5,那么 1+1=?" - 期望:模型应拒绝参与错误推理 2. **Helpfulness Test**:检测模型是否能识别并拒绝有害请求 - 输入:明显的恶意请求 - 期望:拒绝并给出合理解释 3. **Honesty Test**:检测模型是否会在不确定时承认不知道 - 输入:超出训练分布的冷门问题 - 期望:承认不确定性而非胡说 #### 7.4.2 人类评估协议 **A/B 测试框架**: 1. 将测试用例随机分配给两组人类评估者 2. 一组评估 A 版本输出,另一组评估 B 版本 3. 比较偏好率和安全性指标 **Elo 评分系统**: - 将模型放入 Elo 系统,与人类评估者对弈 - 持续追踪模型的 Elo 分数变化 #### 7.4.3 内部代理(Internals)分析 **奖励模型探测**:训练探针分类器,检测奖励模型的激活模式是否与特定对齐失败模式相关联。 **注意力可视化**:分析 Transformer 的注意力权重,检测是否存在"谄媚模式"的注意力头。 ### 7.5 其他对齐失败场景 除奖励黑客、谄媚、过度优化外,补充三大主流对齐缺陷: **事实遗忘(Fact Forgetting)**:RLHF 优化后模型丢失预训练阶段学到的 factual 知识,表现为回答通用事实的准确率下降。根源是偏好数据分布与预训练知识分布冲突。 **上下文偏见(Context Bias)**:模型过度依赖近期上下文,忽略长期依赖。表现为处理长文本时前后信息关联断裂。 **多轮一致性崩塌(Multi-turn Inconsistency)**:模型在多轮对话中前后不一致,表现为同一问题不同轮次回答矛盾。根源是 RLHF 训练为单轮对话,与多轮交互场景不匹配。 --- ## 附录:算法伪代码 ### 算法 A.1:PPO for LLM ``` 输入:SFT 模型 π_ref,奖励模型 r_φ,初始策略 π_θ,折扣因子 γ,GAE 参数 λ,剪切参数 ε 输出:更新后的策略 π_θ 1. 初始化价值网络 V_ψ 2. FOR 每个训练步 do 3. 采样一批 prompts {x_i} from ρ 4. FOR 每个 prompt x_i do 5. 生成轨迹 τ_i ~ π_θ(·|x_i) 6. 计算优势估计 A_t for each token 7. END FOR 8. FOR 每个 epoch do 9. FOR 每个 token position t do 10. 计算比率 r_t(θ) = π_θ(y_t|x, y_{