AI安全对齐技术栈:从RLHF到Constitutional AI
对齐问题:让模型"听话"且"不闯祸" 大模型的安全对齐是AGI发展道路上不可回避的核心问题。一个能力强大但不对齐的模型可能带来严重的社会风险。本文系统梳理当前主流的对齐技术方案。 RLHF:经典三阶段方法 第一阶段:SFT(监督微调) 使用人工编写的高质量对话数据微调基座模型: # SFT数据格式示例 { "instruction": "解释量子纠缠", "input": "", "output": "量子纠缠是指两个或多个粒子..." } SFT建立模型的指令跟随能力,是对齐的基础。 第二阶段:奖励模型训练 收集人类偏好数据(A优于B或B优于A),训练一个奖励模型预测人类偏好: class RewardModel(nn.Module): def __init__(self, base_model): super().__init__() self.transformer = base_model self.value_head = nn.Linear(hidden_size, 1) def forward(self, input_ids): hidden_states = self.transformer(input_ids).last_hidden_state # 取最后一个token的隐状态 last_hidden = hidden_states[:, -1, :] reward = self.value_head(last_hidden) return reward.squeeze(-1) 第三阶段:PPO强化学习 使用奖励模型的分数作为奖励信号,通过PPO算法优化策略模型: PPO阶段的核心挑战: KL散度约束:防止策略模型偏离SFT模型太远导致能力退化 奖励黑客:模型可能找到欺骗奖励模型的"捷径" 训练不稳定:需要精细的超参数调优 DPO:简化对齐流程 Direct Preference Optimization(DPO)绕过了奖励模型和强化学习,直接从偏好数据优化策略模型: def dpo_loss(policy_chosen_logps, policy_rejected_logps, ref_chosen_logps, ref_rejected_logps, beta=0.1): pi_logratios = policy_chosen_logps - policy_rejected_logps ref_logratios = ref_chosen_logps - ref_rejected_logps logits = pi_logratios - ref_logratios return -F.logsigmoid(beta * logits).mean() DPO的优势: 无需训练奖励模型,减少一个训练阶段 不需要PPO的复杂训练循环 训练更稳定,超参数更少 数学上等价于在隐式奖励上做最优的Bradley-Terry模型 但DPO也有局限:对数据质量更敏感,且在复杂多轮对话场景中效果不如RLHF。 Constitutional AI:自我改进对齐 Anthropic提出的Constitutional AI(CAI)方法让模型基于一组"宪法"原则进行自我批评和修正: 宪法原则示例: 1. 不要生成歧视性内容 2. 拒绝协助危险活动 3. 保持诚实,不编造信息 4. 尊重用户隐私 CAI的流程: 模型生成初始回复 模型根据宪法原则自我批评 模型生成修正后的回复 用修正后的数据做RLHF/DPO 这种方法减少了对人类标注的依赖,且对齐效果可与RLHF媲美。 安全护栏与实时过滤 对齐训练之外,推理时的安全护栏同样重要: ...

