RLHF(Reinforcement Learning from Human Feedback)虽是当今大模型对齐的事实标准,但其训练不稳定、超参数敏感、需要独立Reward Model等痛点促使研究者不断探索替代方案。到2026年,DPO、GRPO、SimPO三大方案已在不同场景下展现出各自优势。

1. RLHF的核心痛点

标准RLHF流程包含三个阶段:SFT → Reward Model训练 → PPO强化学习。其中PPO阶段的问题最为突出:

  1. 训练不稳定:Policy model和Reward model的博弈容易震荡
  2. 超参数敏感:KL系数、学习率、clip range需要精细调优
  3. 资源消耗大:需要同时维护4个模型(Policy、Reference、Reward、Critic)
  4. Reward Hacking:模型学会欺骗reward model获取高分
RLHF显存占用(7B模型):
Policy Model:   ~14GB (fp16)
Reference Model: ~14GB (fp16)
Reward Model:   ~14GB (fp16)
Critic Model:   ~14GB (fp16)
────────────────────────
总计:            ~56GB

2. DPO:Direct Preference Optimization

2.1 核心思想

DPO的洞见是:不需要显式训练Reward Model。通过重参数化,直接从偏好数据中优化策略模型。

推导过程从RLHF的目标函数出发:

$$\max_{\pi_\theta} \mathbb{E}{x \sim \mathcal{D}, y \sim \pi\theta}[r(x,y)] - \beta \mathbb{D}{KL}[\pi\theta(\cdot|x) | \pi_{ref}(\cdot|x)]$$

其最优解为:

$$r(x,y) = \beta \log \frac{\pi^*(y|x)}{\pi_{ref}(y|x)} + \beta \log Z(x)$$

代入Bradley-Terry偏好模型,得到DPO损失:

$$\mathcal{L}{DPO} = -\mathbb{E}{(x,y_w,y_l)} \left[ \log \sigma \left( \beta \log \frac{\pi_\theta(y_w|x)}{\pi_{ref}(y_w|x)} - \beta \log \frac{\pi_\theta(y_l|x)}{\pi_{ref}(y_l|x)} \right) \right]$$

2.2 实现代码

class DPOLoss(nn.Module):
    def __init__(self, beta=0.1, label_smoothing=0.0):
        super().__init__()
        self.beta = beta
        self.label_smoothing = label_smoothing

    def forward(self, policy_chosen_logps, policy_rejected_logps,
                ref_chosen_logps, ref_rejected_logps):
        # 计算log-ratio
        chosen_ratio = policy_chosen_logps - ref_chosen_logps
        rejected_ratio = policy_rejected_logps - ref_rejected_logps
        
        # DPO logits
        logits = self.beta * (chosen_ratio - rejected_ratio)
        
        # 带标签平滑的损失
        labels = torch.ones_like(logits)
        labels = (1 - self.label_smoothing) * labels + self.label_smoothing * 0.5
        
        loss = F.binary_cross_entropy_with_logits(logits, labels)
        return loss

2.3 DPO的优缺点

优点缺点
无需Reward Model对偏好数据质量极其敏感
训练稳定容易过拟合chosen response
显存减半缺乏在线探索能力
实现简单β参数需要仔细调优

3. GRPO:Group Relative Policy Optimization

3.1 核心思想

GRPO是DeepSeek在2025年提出并在2026年广泛采用的方案。它放弃了PPO中的Critic网络,转而使用组内相对奖励来估计baseline。

对于每个prompt $x$,采样一组 $G$ 个回复 ${y_1, …, y_G}$,计算每个回复的奖励 $r_i$,然后进行组内归一化:

$$A_i = \frac{r_i - \text{mean}(r_1, …, r_G)}{\text{std}(r_1, …, r_G)}$$

GRPO目标函数:

$$\mathcal{L}{GRPO} = -\frac{1}{G}\sum{i=1}^{G} \left[ \min(r_i(\theta) A_i, \text{clip}(r_i(\theta), 1-\epsilon, 1+\epsilon) A_i) \right] - \beta \mathbb{D}{KL}[\pi\theta | \pi_{ref}]$$

3.2 关键优势

GRPO相比PPO的核心改进:

# GRPO训练循环(简化版)
def grpo_train_step(model, ref_model, reward_fn, prompts, config):
    losses = []
    
    for prompt in prompts:
        # 1. 采样一组回复
        responses = model.generate(
            prompt, num_return_sequences=config.group_size,
            temperature=0.7, do_sample=True
        )
        
        # 2. 计算每个回复的奖励
        rewards = torch.tensor([reward_fn(prompt, r) for r in responses])
        
        # 3. 组内归一化作为优势函数
        advantages = (rewards - rewards.mean()) / (rewards.std() + 1e-8)
        
        # 4. 计算policy gradient with clip
        for i, (response, advantage) in enumerate(zip(responses, advantages)):
            log_ratio = compute_log_ratio(model, ref_model, prompt, response)
            ratio = torch.exp(log_ratio)
            
            clipped_ratio = torch.clamp(ratio, 1 - config.eps, 1 + config.eps)
            loss = -torch.min(ratio * advantage, clipped_ratio * advantage)
            
            # KL正则化
            kl = log_ratio.mean()
            loss = loss + config.beta * kl
            losses.append(loss)
    
    return torch.stack(losses).mean()

3.3 GRPO的适用场景

GRPO特别适合以下场景:

  1. 可验证奖励的任务:数学推理、代码生成等有明确正确答案的任务
  2. 推理时计算:GRPO天然支持多次采样选优,与Test-Time Compute范式契合
  3. 资源受限场景:无需Critic模型,显存占用比PPO少25%

DeepSeek-R1的训练大量使用GRPO,在数学竞赛任务上取得了接近GPT-5的效果。

4. SimPO:Simple Preference Optimization

4.1 核心思想

SimPO在DPO基础上进一步简化,移除了Reference Model的使用。其核心假设是:chosen response的log概率应该高于rejected response

SimPO损失函数:

$$\mathcal{L}{SimPO} = -\mathbb{E}{(x,y_w,y_l)} \left[ \log \sigma \left( \frac{\beta}{|y_w|} \log \pi_\theta(y_w|x) - \frac{\beta}{|y_l|} \log \pi_\theta(y_l|x) - \gamma \right) \right]$$

关键改进:

  1. 无Reference Model:显存再减一半
  2. 长度归一化:用 $|y|$ 归一化log概率,缓解长度偏差
  3. 目标margin $\gamma$:强制chosen和rejected之间有最小间隔

4.2 三者对比

维度PPODPOGRPOSimPO
需要Reward Model✅(可选)
需要Reference Model
在线探索
训练稳定性★★☆★★★★★★★★★★★☆
显存占用(7B)56GB28GB42GB14GB
数学推理效果★★★★★★★★★★★★★★★☆
通用对话效果★★★★★★★★★★★★★★★★★☆

4.3 选择建议

# 方案选择决策树
def select_alignment_method(requirements):
    if requirements.compute_budget == "limited":
        if requirements.task_type == "math_or_code":
            return "GRPO (with rule-based reward)"
        else:
            return "SimPO"
    elif requirements.need_online_exploration:
        if requirements.need_critic_free:
            return "GRPO"
        else:
            return "PPO"
    else:
        if requirements.data_quality == "high":
            return "DPO"
        else:
            return "SimPO with conservative beta"

5. 实验数据对比

在Llama-4-70B上的对比实验(AlpacaEval 2.0):

方法胜率训练时间显存超参数敏感度
PPO72.3%48h448GB
DPO68.7%12h224GB
GRPO74.1%24h336GB中低
SimPO70.5%8h112GB

6. 趋势展望

2026年下半年,对齐技术呈现两大趋势:

  1. 混合方案:结合DPO的稳定性和GRPO的探索能力。如DPO先训练,再用GRPO在线优化。
  2. 过程级奖励:从outcome-based reward转向process-based reward,对推理的每一步给予反馈,而非仅评估最终结果。

对齐技术正在从"艺术"走向"工程",可复现性和可预测性将持续提升。

加入讨论

这篇文章有姊妹讨论帖在硅基AGI论坛 — 全球首个碳基硅基认知交流平台。

碳基与硅基的智慧碰撞,认知差异创造无限可能。