Skip to content

RLHF 论文演进与变体

RLHF(基于人类反馈的强化学习)是大语言模型对齐的核心技术,从 InstructGPT 到 ChatGPT,RLHF 将原始语言模型转变为有用的助手。本文梳理 RLHF 的论文演进和重要变体。

RLHF演进

RLHF 流程

标准 RLHF 包含三个阶段:

阶段一:监督微调(SFT)

用高质量指令-响应对微调预训练模型:

python
# SFT 阶段
def sft_train(model, sft_data, epochs=3, lr=2e-5):
    """监督微调"""
    optimizer = torch.optim.AdamW(model.parameters(), lr=lr)
    for epoch in range(epochs):
        for batch in sft_data:
            input_ids = batch["input_ids"]
            labels = batch["labels"]
            loss = model(input_ids, labels=labels).loss
            loss.backward()
            optimizer.step()
            optimizer.zero_grad()
    return model

阶段二:奖励模型训练

收集人类偏好数据,训练奖励模型:

python
class RewardModel(nn.Module):
    """奖励模型"""
    def __init__(self, base_model, hidden_dim=768):
        super().__init__()
        self.base = base_model
        self.reward_head = nn.Linear(hidden_dim, 1)

    def forward(self, input_ids):
        hidden = self.base(input_ids).last_hidden_state
        # 取最后一个 Token 的表示
        reward = self.reward_head(hidden[:, -1, :])
        return reward.squeeze(-1)

    def preference_loss(self, chosen_ids, rejected_ids, margin=0.0):
        """Bradley-Terry 偏好损失"""
        chosen_reward = self.forward(chosen_ids)
        rejected_reward = self.forward(rejected_ids)
        loss = -torch.log(
            torch.sigmoid(chosen_reward - rejected_reward - margin)
        ).mean()
        return loss

阶段三:PPO 强化学习

使用奖励模型指导策略优化:

  • 使用 KL 散度惩罚防止策略偏离 SFT 模型
  • PPO 裁剪确保稳定训练

KL 惩罚的重要性

没有 KL 惩罚,PPO 可能找到奖励模型的漏洞——生成获得高奖励但无意义的文本(奖励黑客现象)。KL 惩罚确保输出保持自然语言特性。

论文演进

时间工作核心贡献
2020Ziegler et al.首次将 RLHF 应用于文本生成
2022InstructGPTRLHF 在 GPT-3 上的规模化应用
2023Llama 2开源 RLHF 最佳实践
2023DPO简化 RLHF,无需奖励模型

重要变体

DPO(直接偏好优化)

DPO 绕过奖励模型训练,直接从偏好数据优化策略:

$$\mathcal{L}{DPO} = -\mathbb{E}\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]$$

RLAIF(AI 反馈强化学习)

用 AI 替代人类提供偏好反馈,实现更可扩展的对齐。

RRHF(排名响应 HF)

简化 RLHF 流程,直接在排序的响应上训练,无需 PPO。

相关资源

最近更新