趋近智
大师班
强化学习从人类反馈 (RLHF) 流程为使大型语言模型与人类偏好保持一致提供了一个强大的框架。然而,其实现通常很复杂,并带来一些实际困难。要成功应对这些,需要仔细的设计选择、工程实践和持续监督。
RLHF的根本在于高质量的人类偏好数据。收集这些数据需要大量资源,并带来一些障碍:
奖励模型(RM)在强化学习(RL)阶段充当人类偏好的代表。然而,它是一个不完美的代表,可能导致一些问题:
强化学习,特别是应用于大型Transformer模型的PPO,以其对超参数的敏感性以及潜在的不稳定性而闻名:
考虑一个包含KL惩罚的简化PPO目标函数:
LPPO+KL(θ)=Et[min(rt(θ)At,clip(rt(θ),1−ϵ,1+ϵ)At)]−β⋅Et[DKL(πθ(⋅∣st)∣∣πSFT(⋅∣st))]这里,rt(θ)=πθold(at∣st)πθ(at∣st)是概率比,At是优势估计,ϵ是裁剪参数,β控制对原始SFT策略πSFT的KL惩罚。调整ϵ和β会明显影响稳定性和性能。
# PyTorch中包含KL惩罚的简化PPO更新
import torch
import torch.nn.functional as F
def compute_ppo_loss(
policy_log_probs,
old_policy_log_probs,
advantages,
rewards_from_rm,
sft_policy_log_probs,
clip_param,
kl_beta
):
"""
计算带KL惩罚的PPO损失。
假定输入是适当形状的张量
(例如,[batch_size])。
"""
# 策略比率
ratio = torch.exp(policy_log_probs - old_policy_log_probs)
# 裁剪的替代目标
surr1 = ratio * advantages
surr2 = torch.clamp(ratio, 1.0 - clip_param, 1.0 + clip_param) * advantages
# 负号,因为我们是最小化
policy_loss = -torch.min(surr1, surr2).mean()
# 值损失(通常是预测值与实际回报之间的MSE)
# value_loss = F.mse_loss(predicted_values, returns) # 占位符
# KL散度惩罚项
# 注意:KL散度需要概率分布,而不仅仅是对
# 所采取行动的对数概率
# 一个正确的实现将计算完整分布之间的KL
# pi_RL 和 pi_SFT
# 这里,为简化起见,我们使用对数概率作为代理,但这并非严格意义上的
# 正确KL散度
# 简化代理
kl_div = (policy_log_probs - sft_policy_log_probs).mean()
# 总损失
# total_loss = policy_loss + value_loss_coeff * value_loss \
# - kl_beta * kl_div # 值损失的占位符
# 简化版,不包含值损失
total_loss = policy_loss - kl_beta * kl_div
return total_loss
# --- 用于说明的模拟输入 ---
# 当前策略、旧策略和SFT策略下采取行动的对数概率
policy_log_probs = torch.randn(4, requires_grad=True)
old_policy_log_probs = torch.randn(4)
sft_policy_log_probs = torch.randn(4)
# 优势估计和奖励
advantages = torch.randn(4)
# 在此简化策略损失部分中未直接使用
rewards_from_rm = torch.randn(4)
# 超参数
clip_param = 0.2
kl_beta = 0.1
loss = compute_ppo_loss(
policy_log_probs,
old_policy_log_probs,
advantages,
rewards_from_rm,
sft_policy_log_probs,
clip_param,
kl_beta
)
print(f"计算出的PPO+KL损失: {loss.item()}")
# 示例输出:计算出的PPO+KL损失:0.1234...
# (值取决于随机输入)
一个PyTorch代码片段,说明了PPO损失计算的组成部分,特别突出显示了替代目标和简化的KL惩罚项。请注意,一个完整的实现需要仔细处理用于KL计算和值函数训练的分布。
RLHF在计算上要求很高:
衡量RLHF对齐的成功具有挑战性:
定义“人类偏好”的过程引发了伦理问题:
成功实施RLHF需要认识到这些挑战,并在仔细的数据整理、工程实践、全面评估和持续的伦理反思方面投入。像直接偏好优化(DPO)这样的技术,旨在通过绕过显式奖励建模来简化过程,也作为标准RLHF流程的潜在替代方案或补充方案而受到关注。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造