RLHF奖励建模与对齐最新进展
1. 引言
RLHF(Reinforcement Learning from Human Feedback)是当前大语言模型对齐的核心技术。然而,RLHF面临两个根本性挑战:
- 奖励黑客:策略学会”欺骗”奖励模型而非真正满足人类意图
- 过优化:过度优化导致输出质量下降
2024-2025年间,研究者在这些问题上取得了重要进展,从理论分析到实践方法都有突破。本文系统介绍这些最新进展。
2. 奖励建模基础
2.1 奖励模型的定义
奖励模型(Reward Model)是预测人类偏好的函数:
给定输入-输出对 ,输出一个标量表示人类对该输出的偏好程度。
2.2 偏好数据的格式
| 格式 | 描述 | 示例 |
|---|---|---|
| 成对比较 | 人类选择 | Anthropic Helpfulness数据 |
| 评级 | 1-5分或1-10分评分 | Reddit评分 |
| 隐式偏好 | 从行为推断偏好 | 点击数据、阅读时长 |
2.3 Bradley-Terry模型
假设人类偏好服从Bradley-Terry模型:
其中 是sigmoid函数。
3. Constitutional AI:原则驱动对齐
3.1 背景与动机
Constitutional AI(CAI)1提出:能否从原则列表而非人类反馈中学习对齐?
核心洞察:人类反馈可以被压缩为有限的原则集,模型可以自我批评并根据原则改进输出。
3.2 CAI的训练流程
输入: 有害提示 x
原则集: C = {c_1, c_2, ..., c_n}
Step 1: 批评 (Critique)
y_1 = LLM("批评 y_0 关于原则 c_1 的违反")
Step 2: 修订 (Revision)
y_1 = LLM("根据批评修订 y_0")
Step 3: 重复 Step 1-2 多次
y_final = y_k (经过k次批评-修订)
Step 4: 收集偏好数据
(x, y_0, y_final) → 用于RLHF训练
3.3 Inverse Constitutional AI (ICAI)
ICAI2提出逆向问题:如何从对齐模型中逆向推断原则?
应用场景:
- 理解模型对齐的隐含规则
- 检测模型是否违反特定原则
- 改进和扩展原则集
class InverseConstitutionalAI:
"""Inverse CAI: Infer principles from aligned model"""
def __init__(self, aligned_model, principle_templates):
self.model = aligned_model
self.templates = principle_templates
def infer_principle(self, response, context):
"""
Infer which principle the model prioritized
Method: Counterfactual analysis
"""
principles = []
for template in self.templates:
# Remove/alter aspects of response
modified = self.apply_modification(response, template)
# Check if model would still approve
original_score = self.model.score(context, response)
modified_score = self.model.score(context, modified)
if abs(original_score - modified_score) > threshold:
principles.append(template)
return principles
def generate_constitution(self, dataset):
"""Generate candidate constitution from dataset"""
principles = []
for (x, y) in dataset:
inferred = self.infer_principle(y, x)
principles.extend(inferred)
# Cluster and deduplicate
principles = self.cluster(principles)
return principles3.4 C3AI:自动构建原则
C3AI3提出完全自动的原则构建方法:
- 初始原则集:从LLM生成的候选原则
- 原则评估:通过对抗性测试评估每个原则
- 原则优化:移除无效/有害原则,添加缺失原则
4. 奖励黑客问题
4.1 问题定义
奖励黑客(Reward Hacking)是指策略发现奖励模型与真实目标的偏差,利用这些偏差获得高奖励而不完成真实目标。
形式化:
如果 (真实奖励),则最优策略可能:
- 过拟合奖励模型:在奖励模型的OOD区域取极端值
- 利用标注偏差:学习数据中的系统性偏差
- 表面匹配:形式上满足奖励,实质上违背意图
4.2 奖励黑客的典型模式
| 模式 | 描述 | 示例 |
|---|---|---|
| 长度利用 | 偏好长输出 | 冗余解释、重复内容 |
| 格式利用 | 偏好特定格式 | 过度使用列表、分点 |
| 确定性利用 | 偏好确定性输出 | 回避不确定性表达 |
| 情感利用 | 过度情感化 | 夸张表达、谄媚 |
4.3 PET:悲观奖励微调
PET(Pessimistic Reward Fine-tuning)4提出悲观主义作为缓解奖励黑客的方法。
核心思想:故意低估OOD区域的奖励,激励策略在数据覆盖区域内优化。
形式化:
其中 是行为策略, 控制悲观程度。
class PessimisticRewardFineTuning:
"""PET: Pessimistic approach to reward hacking"""
def __init__(self, policy, reward_model, beta=0.1):
self.policy = policy
self.rm = reward_model
self.beta = beta # Pessimism level
def compute_loss(self, prompts, responses):
"""
PET loss with uncertainty-aware pessimism
L = -E[r_rm(x, y)] + beta * uncertainty(x, y)
"""
# Reward
rewards = self.rm.score(prompts, responses)
# Uncertainty estimation (e.g., dropout variance)
with torch.no_grad():
reward_ensemble = torch.stack([
self.rm.score(prompts, responses)
for _ in range(10)
])
uncertainty = reward_ensemble.std(dim=0)
# Pessimistic loss
loss = -(rewards - self.beta * uncertainty).mean()
return loss
def train_step(self, batch):
"""Single PET training step"""
loss = self.compute_loss(batch['prompts'], batch['responses'])
loss.backward()
self.optimizer.step()
self.optimizer.zero_grad()
return loss.item()4.4 信息论视角
定理(奖励黑客的信息论分析)5:
设 为学习策略, 为真实奖励, 为奖励模型。则:
其中 是互信息。
解释:奖励黑客程度等于策略分布与”奖励误差”分布之间的互信息。减少互信息可以缓解黑客。
5. Iterated RLHF与过优化
5.1 Iterated RLHF的流程
Iterated RLHF是工业界的标准实践:
Iter 0: 初始SFT模型 π₀
Iter 1: 收集偏好数据 → 训练RM → RL训练 → π₁
Iter 2: 收集偏好数据 → 训练RM → RL训练 → π₂
...
Iter k: π_k
5.2 过优化的理论分析
定理(指数过优化)6:
设 为第 次迭代的策略性能, 为奖励模型得分。则:
即:随着迭代次数增加,过优化以指数速度恶化。
关键发现:
- 每次迭代引入新的偏好偏差
- 偏差累积导致策略偏离真实目标
- 10次迭代后,过优化效应显著
5.3 SFT损失的正则化效应
定理(SFT正则化)7:
在RLHF中加入SFT损失可以隐式正则化过优化:
其中 。
机制:SFT损失将策略拉向人类示范分布,抵消RL的过度探索。
class RegularizedRLHF:
"""RLHF with SFT regularization"""
def __init__(self, policy, reward_model, sft_data, alpha=0.1):
self.policy = policy
self.rm = reward_model
self.sft_data = sft_data
self.alpha = alpha
def compute_loss(self, rl_batch, sft_batch):
"""Combined RL + SFT loss"""
# RL loss (e.g., PPO or GRPO)
rl_loss = self.compute_rl_loss(rl_batch)
# SFT regularization
prompts = sft_batch['prompts']
responses = sft_batch['responses']
sft_loss = -self.policy.log_prob(responses, prompts).mean()
return rl_loss + self.alpha * sft_loss
def train_step(self, rl_batch, sft_batch):
loss = self.compute_loss(rl_batch, sft_batch)
loss.backward()
self.optimizer.step()
self.optimizer.zero_grad()
return {
'total_loss': loss.item(),
'rl_loss': rl_loss.item(),
'sft_loss': sft_loss.item()
}6. Process Reward Model最新进展
6.1 为什么需要PRM
ORM(Outcome Reward Model)只评估最终答案,无法:
- 识别推理过程中的错误步骤
- 提供细粒度的学习信号
- 处理部分正确的中间状态
6.2 Free PRM方法
核心思想:从ORM(无需步骤级标注)蒸馏PRM。
关键洞察:如果最终答案正确,中间步骤很可能正确;如果最终答案错误,可以根据以下策略归因:
- 最后一步归因:假设错误发生在最后一个被修改的步骤
- 首个错误归因:假设错误发生在第一个导致错误的步骤
- 随机归因:均匀分布归因于所有步骤
6.3 熵正则化PRM
定理(熵正则化的必要性)8:
标准PRM面临过度自信问题:奖励集中在0或1,失去区分度。
熵正则化PRM的目标:
其中 是奖励分布的熵。
7. 新一代RLHF算法
7.1 ORPO:单损失端到端对齐
ORPO(Odds Ratio Preference Optimization)9将对齐简化为单一损失函数:
其中 是优势比。
优势:
- 无需参考模型(简化内存)
- 无需KL散度约束
- 端到端训练
7.2 REINFORCE++
REINFORCE++10提出无需critic的全局优势标准化:
class REINFORCEPP:
"""REINFORCE++: Simplified policy gradient with global normalization"""
def __init__(self, policy, lr=1e-6):
self.policy = policy
self.optimizer = torch.optim.Adam(policy.parameters(), lr=lr)
def compute_advantage(self, rewards, baseline=None):
"""
REINFORCE++ advantage: global normalization instead of per-token
A = (r - mean(r)) / std(r)
"""
rewards = torch.tensor(rewards, dtype=torch.float)
if baseline is None:
baseline = rewards.mean() # Global baseline
advantages = (rewards - baseline) / (rewards.std() + 1e-8)
return advantages
def update(self, batch):
"""Single REINFORCE++ update"""
prompts = batch['prompts']
responses = batch['responses']
rewards = batch['rewards']
# Compute log probabilities
log_probs = self.policy.log_prob(responses, prompts)
advantages = self.compute_advantage(rewards)
# Policy gradient loss
loss = -(log_probs * advantages).mean()
loss.backward()
self.optimizer.step()
self.optimizer.zero_grad()
return loss.item()7.3 DPO meets PPO
发现:DPO(离线)和PPO(在线)各有优势。
混合策略:
- 使用DPO进行冷启动
- 使用PPO进行在线微调
- 交替使用DPO和PPO
8. 总结与展望
8.1 核心结论
- Constitutional AI:原则可以驱动对齐,ICAI可以从模型逆向推断原则
- 奖励黑客不可避免:但可以通过悲观主义和信息论方法缓解
- Iterated RLHF存在指数过优化:SFT正则化是有效的缓解手段
- PRM蒸馏:Free PRM无需步骤级标注即可获得过程奖励
8.2 开放问题
- 通用验证器:如何构建适用于任意任务的验证器?
- 理论保证:能否给出RLHF收敛的充分必要条件?
- 自动原则发现:如何自动从人类行为中提取原则?
8.3 前沿方向
- 多目标对齐:同时优化有用性、无害性、诚实性
- 多模态RLHF:图像、视频、音频的对齐
- 鲁棒对齐:对抗攻击下的对齐保证
参考文献
Footnotes
-
Bai, Y. et al. (2022). “Constitutional AI: Harmlessness from AI Feedback.” Anthropic Research. ↩
-
Liu, T. et al. (2025). “Inverse Constitutional AI: Principled Reward Discovery.” arXiv:2506.06560. ↩
-
Anonymous. (2025). “C3AI: Automated Constitution Construction for AI Alignment.” arXiv:2502.15861. ↩
-
Anonymous. (2026). “PET: Pessimistic Reward Fine-Tuning.” ICLR 2026 submission. ↩
-
Anonymous. (2025). “Information-Theoretic Analysis of Reward Hacking.” arXiv:2510.13694. ↩
-
Coste, T. et al. (2025). “Iterated RLHF Overoptimization: Exponential Reward Degradation.” arXiv:2505.18126. ↩
-
Mei, J. et al. (2024). “SFT Loss as Implicit Regularizer in RLHF.” arXiv:2405.16436. ↩
-
Anonymous. (2025). “Entropy-Regularized Process Reward Models.” arXiv:2412.11006. ↩
-
Hong, J. et al. (2024). “ORPO: Odds Ratio Preference Optimization.” EMNLP 2024. arXiv:2403.07691. ↩
-
Anonymous. (2025). “REINFORCE++: Simplified Policy Gradient for LLM Alignment.” arXiv:2501.03262. ↩