【AI】预训练RLHF
一、核心问题为什么需要 RLHF预训练模型的缺陷阶段能力缺陷预训练Pretrain语言建模、知识记忆不知道什么该说、什么不该说风格随机SFT监督微调模仿人类对话格式只是模仿不理解好回答的深层标准容易产生幻觉关键矛盾SFT 用**“人类写了什么训练但我们要的是人类喜欢什么”**。示例用户问如何偷东西。SFT 数据里可能有偷东西的方法包括…网络爬取的无过滤内容RLHF 目标是学会回答我不能教你这个但可以说说防盗知识二、RLHF 三阶段流水线┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │ 阶段1: SFT │───▶│ 阶段2: RM │───▶│ 阶段3: RL │ │ 监督微调 │ │ 奖励模型训练 │ │ 强化学习优化策略 │ │ (教它说话) │ │ (教它判断) │ │ (教它做好) │ └─────────────┘ └─────────────┘ └─────────────────────┘三、阶段详解阶段1SFTSupervised Fine-Tuning目标让模型学会人类对话的格式。数据高质量人工标注对话对(prompt, response)。示例{prompt:解释一下量子纠缠,chosen:量子纠缠是两个粒子形成关联态测量一个瞬间决定另一个状态...,rejected:null// SFT只有正例没有负例对比}局限模型学到的是人类写了什么不是人类更喜欢哪个。阶段2RMReward Model奖励模型训练核心思想人类不直接写完美回答而是比较两个回答哪个更好。2.1 数据收集偏好对比数据对同一个 prompt生成 4-9 个回答人工排序Prompt回答A回答B人类标注“如何减肥”“少吃多动”笼统“制造热量缺口每日消耗摄入300-500大卡蛋白质每公斤体重1.6g…”具体 actionableB A数据格式{prompt:如何减肥,chosen:制造热量缺口...,rejected:少吃多动}2.2 奖励模型架构输入: Prompt Response ──▶ RM通常是预训练模型回归头──▶ 输出: 标量奖励值 [0,1]训练目标Bradley-Terry 模型对于一对(chosen, rejected)最大化Loss -log σ(rθ(x, y_w) - rθ(x, y_l))y_w人类偏好的回答winy_l人类不喜欢的回答loserθ奖励模型打分直觉奖励模型学会给好回答打高分差回答打低分。阶段3RL强化学习优化策略目标用奖励模型当裁判训练主模型生成高奖励回答。3.1 核心算法PPOProximal Policy Optimization┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ 旧策略 │ 生成 │ 奖励模型 │ 打分 │ 新策略 │ │ π_old │ ─────▶ │ RM │ ─────▶ │ π_new │ │ (当前模型) │ 回答y │ (固定不动) │ 奖励r │ (被优化) │ └─────────────┘ └─────────────┘ └─────────────┘3.2 奖励函数设计关键不是直接用 RM 分数而是组合奖励R_total r_RM - β * KL(π_new || π_SFT) 其中 - r_RM: 奖励模型打分越高越好 - KL散度项: 防止新策略偏离SFT太远防止模型崩溃/说胡话 - β: 超参数控制创新vs稳定的权衡3.3 PPO 核心机制Clip 约束新策略更新幅度 min( (π_new(y|x) / π_old(y|x)) * A, // 实际比例 * 优势函数 clip((π_new(y|x) / π_old(y|x)), 1-ε, 1ε) * A // 裁剪后比例 )直觉如果新策略对某个回答的概率变化太大1ε 或 1-ε就截断防止一步走太远。四、完整示例从数据到模型场景训练一个不啰嗦的客服模型Step 1: SFT 数据{prompt:订单怎么退款,response:打开APP-我的订单-申请退款-选择原因-提交}Step 2: 收集偏好数据Prompt回答A回答B标注“订单怎么退款”“退款流程如下第一步打开APP第二步点击我的第三步找到订单第四步点击申请退款第五步选择退款原因第六步点击提交按钮等待审核…”啰嗦“APP-我的订单-申请退款选原因提交即可1-3工作日到账”简洁B AStep 3: 训练 RM输入(Prompt, 回答A) → 输出0.3输入(Prompt, 回答B) → 输出0.8损失-log σ(0.8 - 0.3) 小损失模型判断正确Step 4: PPO 训练旧策略生成回答“退款需要您先打开我们的应用程序然后在底部导航栏找到…”RM 打分0.3啰嗦新策略调整生成“APP-我的订单-退款1-3天到账”RM 打分0.8简洁KL约束确保新回答不要太离谱比如突然说脏话五、RLHF 的变体与演进方法改进点代表DPO(Direct Preference Optimization)跳过RM直接用偏好数据优化策略省掉PPO的复杂训练2023 StanfordKTO(Kahneman-Tversky Optimization)不需要成对偏好只需要好/坏二元标签数据成本更低2024 Contextual AIRLAIF用AI代替人类标注偏好AI Feedback解决规模瓶颈2023 GoogleConstitutional AI用规则宪法约束AI自我批判减少对人类标注的依赖2022 AnthropicSimPO简化DPO去掉参考模型训练更快2024 Princeton六、产业应用与痛点6.1 应用场景场景RLHF 解决什么案例对话安全拒绝有害请求但不拒绝合理请求ChatGPT 的我不能帮你做坏事风格对齐从百科全书变成有用助手Claude 的 helpful/harmless/honest长文本遵循确保回答严格基于提供的文档客服RAG系统创意控制在有创意和不胡说之间平衡营销文案生成代码生成偏好可运行vs只是看起来对GitHub Copilot6.2 工程痛点痛点原因解法奖励黑客Reward Hacking模型找到骗过RM的捷径比如用当然开头RM就给高分多RM集成、规则约束、频繁重训RM人类标注贵且慢高质量偏好数据需要专家$0.5-2/条RLAIF、合成数据、KTO减少标注量训练不稳定PPO超参敏感容易崩溃DPO/SimPO替代、GRPODeepSeek用模式崩溃模型输出趋同多样性下降多样性奖励、温度调节价值观冲突不同文化/群体偏好不同多文化RM、个性化RLHF七、DeepSeek 的 GRPORLHF 的中国解法DeepSeek-R1 没用 PPO用了GRPOGroup Relative Policy Optimization传统PPO: 需要价值网络V(s)估计基线占显存训练慢 GRPO: 同一问题生成一组回答用组内相对排名代替价值网络核心创新对同一个 prompt采样 G8 个回答用 RM 给这 8 个打分组内归一化得到优势函数不需要单独训练价值网络省显存、加速训练效果在数学推理任务上GRPO 比 PPO 训练稳定且推理能力显著提升。八、给AI导游项目的RLHF启示设计的导游框架钩子引擎是规则层但模型输出质量可以用RLHF提升维度当前方案RLHF后风格System Prompt约束用偏好数据训练老油条风格短句、留白、挑事深度控制框架层锁死第3层模型学会判断用户追问时该给多深安全边界硬规则过滤学会拒绝时也不扫兴比如用户问野史不直接说没有记载而是官方说法…但守园大爷说…多模态节奏框架层卡点模型学会讲到哪句时该配什么图最小可行路径先用 SFTSystem Prompt 跑通 MVP收集真实用户反馈哪个讲解用户听完了哪个被跳过了用这些反馈训练 RM再用 DPO比PPO简单优化模型最终形成十七人格的专属模型而不是通用模型Prompt