斯坦福 CS336 从零构建大模型 (2025 春) - 第十五讲:对齐(SFT、RLHF 与 DPO)
斯坦福 CS336 从零构建大模型 (2025 春) - 第十五讲对齐SFT、RLHF 与 DPO文章目录斯坦福 CS336 从零构建大模型 (2025 春) - 第十五讲对齐SFT、RLHF 与 DPO一、监督微调SFT与数据陷阱SFT 数据的三大来源核心痛点幻觉陷阱Hallucination Trap长度与格式偏见Length Bias安全微调的微妙平衡现代演进Mid-training二、RLHF 的必要性与数据困境为什么 SFT 不够生成-验证鸿沟Generator-Validator Gap人类标注的现实困境AI 反馈RLAIF的崛起三、对齐底层算法从 PPO 到 DPO数学基础Bradley-Terry 模型PPOProximal Policy Optimization经典的痛DPODirect Preference Optimization优雅的数学替代两者对比四、完整对齐流程五、课堂 QAQ1模型学会了「在需要的地方插入引用」难道不是好事吗可以通过外接工具给它正确的引用为什么强迫它学引用格式是错的Q2有没有人尝试过在预训练数据里插入「思考 Token」让模型自我检查「这是一个事实我真的知道吗」Q3假设预训练数据里没有任何 Emoji但 SFT 数据在所有回答末尾都加了大量 Emoji模型最终会学会输出正确的 Emoji 吗Q4SFT 说不能教「新世界知识」但 Mid-training 又模糊了这个边界在 Mid-training 场景下后训练其实也是在灌输新知识对吧Q5能展开讲讲 On-policy 和 Off-policy 收集反馈数据的区别吗Q6为什么不直接用有标准答案的 Prompt 来对齐而要让人类打分Q7像 Anthropic 那样用《宪法 AI》提供一套价值观不就能自动化解决开放任务的评估了吗Q8用 LLM 给其他回答打分它会不会对自己生成的回答有偏袒Q9模型自己生成回答又自己给自己反馈Self-refinement这种「左脚踩右脚」的迭代到底能把模型能力提升多少有上限吗六、复习题一、监督微调SFT与数据陷阱二、强化学习与人类反馈RLHF的困境三、对齐底层算法PPO 与 DPO七、参考答案斯坦福 CS336 第十五讲的主题是大模型的对齐Alignment。预训练让模型学会了语言但它本质上只是一个补全机器。这一讲讨论如何通过 SFT、RLHF、DPO 等技术把它改造成一个能听懂指令、给出高质量回答的助手以及这个过程中隐藏的种种陷阱。一、监督微调SFT与数据陷阱在 SFT 阶段模型通过模仿专家演示来学习如何回答问题。输入「今天天气」 输出「今天天气很好适合出去...」它只会续写不会对话也不会回答问题。SFT 的目标是把它改造成一个能听懂指令的助手。SFT 本质上还是语言模型训练只是换了训练数据预训练数据大量无标注网络文本目标是预测下一个 token SFT 数据(指令, 回答) 对目标是给定指令预测正确的回答 [指令] 帮我写一封请假邮件 [回答] 尊敬的领导我因身体不适... [指令] 用 Python 写一个快速排序 [回答] def quicksort(arr): ...重要细节Loss 只算回答部分。指令部分是已知条件不需要预测如果也算 Loss 会浪费模型容量。SFT 数据的三大来源现代 SFT 数据主要有三种范式来源代表优点缺点传统 NLP 任务聚合FLAN快速、便宜回答极短不符合真实聊天习惯人类专家手写Open Assistant质量极高含真实引用成本极高难以规模化AI 生成/知识蒸馏Alpaca、Open Hermes成本低、聊天感强依赖闭源模型可能继承偏差目前开源界最主流的是第三种用 GPT-4 等强模型自动生成指令和长篇回答。核心痛点幻觉陷阱Hallucination TrapJohn Schulman 的警告如果用包含深度知识和详尽引用的高质量 SFT 数据去微调模型而这些知识模型在预训练阶段根本没见过会发生什么对模型而言 「瞎编一个看似权威的引用」带来的 Loss 惩罚 远远小于 「破坏输出结构、根本不写引用」带来的惩罚 → 模型学到的是捷径遇到复杂问题就胡编一个引用 → 而不是真正掌握了知识结论单靠 SFT 强行灌输超出模型能力的知识反而会引发严重的幻觉。长度与格式偏见Length Bias无论是人类裁判还是 AI 裁判都表现出极其强烈的两种偏好偏好更长的输出偏好列表排版Bullet points这导致 SFT 数据和模型输出变得越来越长但输出变长绝不代表真实推理能力变强了。安全微调的微妙平衡模型需要在两个极端之间取得平衡过于宽松接受「帮我写诈骗邮件」这种有害请求 过于严格拒绝「如何杀掉一个 Python 进程」这种正常技术问题研究表明甚至只需500 条高质量的安全微调数据就能显著改变模型的安全行为。现代演进Mid-training前沿实验室不再把 SFT 仅留到最后一步。他们现在将海量高质量的指令数据直接混入预训练的后半阶段学习率衰减/退火阶段称为Mid-training。MiniCPM 就是典型案例。这样做能极大缓解灾难性遗忘并更有效地激发模型的通用潜力。结果是今天市面上发布的所谓「Base Model」绝大多数其实已经隐式地经历过指令微调了。二、RLHF 的必要性与数据困境为什么 SFT 不够SFT 之后模型能听懂指令了但还有一个问题它只学会了「给出一个答案」但不知道哪个答案更好。问如何减肥 回答A少吃多运动保持规律作息建议每周三次有氧运动... 回答B不吃东西就行了 两个回答都符合指令但质量天差地别。 SFT 的 Loss 函数感知不到这种语义层面的好坏。生成-验证鸿沟Generator-Validator Gap让专家从头写出完美的 SFT 长文回复成本极高。但是比较两个现有回答的好坏要比从头写容易得多。研究甚至发现人类标注者经常认为 AI 生成的总结比自己亲手写的总结还要好。这就是收集偏好数据Pair-wise feedback而非纯人工撰写 SFT 数据的核心动机。人类标注的现实困境时间与能力限制在真实众包环境下每道题仅给 1 分钟标注者根本无法有效核查复杂的数学计算或深层事实。他们只能退而求其次依赖肤浅的捷径——给看起来「更长、排版更规范」的答案投票即使该答案包含严重的幻觉。文化与主观偏见InstructGPT 的标注者主要来自菲律宾和孟加拉国仅 17% 是美国人这导致模型的价值观潜移默化地向特定文化宗教信仰偏移。对齐数据的分布直接决定了模型最终的价值观。AI 反馈RLAIF的崛起由于人类标注又慢又贵还有偏见业界开始转向使用 GPT-4 等强大模型作为裁判如 Anthropic 的 Constitutional AI、Zephyr 7B、Tulu 3。GPT-4 的评分与人类专家的一致性已经等同于不同人类相互之间的一致性且成本极低。但使用 AI 裁判有一个必须警惕的问题自我偏好偏差Self-preference Bias——大多数模型给自己的输出打分时都会偏高必须在评估管线中专门处理。三、对齐底层算法从 PPO 到 DPO数学基础Bradley-Terry 模型RLHF 的底层假设是 Bradley-Terry 模型每一个输出背后都有一个看不见的标量「奖励Reward」人类在 A 和 B 之间做选择本质上是根据两者奖励差值进行的 Logistic 概率选择P(A 优于 B) σ(reward(A) - reward(B))RLHF 的核心目标是寻找一个策略Policy使其最大化奖励同时通过 KL 散度约束保证它不能偏离原始 SFT 参考模型太远防止模型为了刷分而崩溃产生乱码。PPOProximal Policy Optimization经典的痛InstructGPT 使用了 PPO 算法。它极其复杂且不稳定需要你单独训练一个专门的奖励模型Reward Model还需要计算优势函数Advantage、进行在线重要性采样校正、以及概率截断Clipping。工程实现简直是一场噩梦。完整流程第一步用偏好数据训练 Reward Model 输入 (指令, 回答) → 输出分数 第二步用 PPO 更新语言模型 语言模型Actor生成回答 ↓ Reward Model 打分 ↓ Value Model 估计期望回报优势函数 ↓ PPO 算法计算梯度含概率截断 Clipping更新语言模型PPO 同时优化三个目标Loss RL 奖励 - β × KL(当前模型 || SFT模型) ← 防止跑偏太远 其他稳定项需要同时维护四个模型Actor、Critic、Reward Model、SFT 参考模型显存占用极大训练极不稳定超参数极难调。DPODirect Preference Optimization优雅的数学替代为了摆脱 PPO 的噩梦DPO 横空出世并统治了目前的开源界。它完全抛弃了单独的奖励模型和复杂的强化学习采样过程。DPO 的核心数学魔法作者首先解出了带 KL 散度惩罚的最优策略闭式解。然后进行了反向求解——直接将「奖励Reward」等价替换为了「当前模型策略与 SFT 参考模型策略的对数概率之比Log ratio」最优模型生成 y 的概率 ∝ SFT模型概率 × e^(reward(y)/β) 反向求解得 reward(y) β × log[P_θ(y|x) / P_sft(y|x)] 常数重要意义不需要单独训练 Reward ModelReward 可以直接从语言模型本身算出来。最后将这个等价公式代回 Bradley-Terry 偏好模型中原本极为复杂的强化学习优化问题被极其精妙地转化为了一个简单的最大似然监督学习分类任务Loss_DPO -log σ( β × log[P_θ(y_w|x) / P_sft(y_w|x)] - β × log[P_θ(y_l|x) / P_sft(y_l|x)] )模型只需要沿着梯度方向提高被偏好Chosen回答的对数概率同时压低被拒绝Rejected回答的对数概率即可。没有奖励模型没有 RL只有优雅的梯度下降两者对比PPODPO需要 Reward Model是否同时运行的模型数4个2个训练稳定性差超参数多好稳定效果通常更强接近但更简单实际使用OpenAI GPT-4大多数开源模型四、完整对齐流程预训练 ↓ 海量文本学会语言 SFT ↓ (指令, 回答) 对学会听指令 偏好数据收集 ↓ 人类两两比较判断哪个回答更好 RLHF 或 DPO ↓ 用偏好信号让模型学会「什么是好回答」 最终模型五、课堂 QAQ1模型学会了「在需要的地方插入引用」难道不是好事吗可以通过外接工具给它正确的引用为什么强迫它学引用格式是错的核心问题在于 Token 预测的底层机制。当你强迫模型输出一个它根本不知道的知识的引用时「瞎编一个引用幻觉」带来的 Loss 惩罚要远远小于「破坏输出格式、根本不写引用」带来的惩罚。因为 SFT 强行要求它必须填满这些结构化的 Token。长此以往你其实是在鼓励模型走捷径去胡编乱造。如果规模足够大且模型本身确实知道这个事实它会填入正确的引用。但如果 SFT 数据远超预训练模型自身的能力这种强行灌输就会诱发严重的幻觉。Q2有没有人尝试过在预训练数据里插入「思考 Token」让模型自我检查「这是一个事实我真的知道吗」这个想法非常有意思但在纯粹的预训练阶段做这个是非常困难的。这听起来其实已经非常像强化学习了——比如斯坦福 Noah Goodman 团队做的 Quiet-STaR就是让模型学习思考过程对了就强化错了就丢弃。预训练面对的是极其庞大且静态的数据集。要解决幻觉模型必须是**反应式Reactive**的——必须根据模型当下的知识状态来动态决定要不要计算这段 Token 的梯度。在静态的预训练阶段你很难自适应地做到这一点除非在预训练规模上直接跑 RL。Q3假设预训练数据里没有任何 Emoji但 SFT 数据在所有回答末尾都加了大量 Emoji模型最终会学会输出正确的 Emoji 吗这取决于 Emoji 出现的规律有多复杂。SFT 能够非常可靠地教会模型输出的**「风格Style」和「类型签名Type Signature」**。所以模型绝对会学会在末尾输出 Emoji。但至于输出的 Emoji 对不对悲伤语境输出哭脸开心语境输出笑脸这取决于映射模式的复杂度和 SFT 数据量。底线是它肯定会按格式输出 Emoji但内容正不正确是个更复杂的开放问题。Q4SFT 说不能教「新世界知识」但 Mid-training 又模糊了这个边界在 Mid-training 场景下后训练其实也是在灌输新知识对吧没错。如果指令微调数据规模足够庞大、多样性足够高就像 Mid-training 那样它确实能够教会模型新的知识。传统上认为 SFT 不教知识主要是因为以前的 SFT 数据量太小、分布太窄不足以可靠地向参数中注入新的事实。现在的 Mid-training 确实正在改变这个游戏规则。Q5能展开讲讲 On-policy 和 Off-policy 收集反馈数据的区别吗**Off-policy脱机**数据是从「并非你当前正在训练的模型」那里收集来的数据比如网上开源的偏好数据集或者其他大模型的输出。它能帮你描绘出一个宏观的反馈地形图。**On-policy同机/在线**数据是让你当前正在训练的这个模型自己生成 A 和 B 两个回答然后让裁判来打分。On-policy 明确地告诉模型「就你现在的状态而言你怎么做才能变得更好」对于模型的精准修正极其重要。Q6为什么不直接用有标准答案的 Prompt 来对齐而要让人类打分对于有绝对标准答案的领域比如数学或代码确实可以直接利用它们做验证这就是下一节课要讲的可验证奖励的强化学习效果非常好。但对齐要解决的往往是开放式任务写一封道歉信、总结文章这类任务有无数种正确的表达方式。当模型生成了一个截然不同但同样优秀的回答时你很难通过静态数据集自动判断它是对是错这就是为什么需要活人或大模型裁判介入。Q7像 Anthropic 那样用《宪法 AI》提供一套价值观不就能自动化解决开放任务的评估了吗Anthropic 的宪法 AIConstitutional AI以及「协商民主式」对齐确实在尝试用原则来自动化指导模型。给标注者提供参考资料、使用工具等 UI 干预也很有帮助。但这并不是能一刀切解决所有主观开放式评估难题的银弹Silver bullet这个问题依然非常棘手。Q8用 LLM 给其他回答打分它会不会对自己生成的回答有偏袒是的会产生非常强烈且极其容易被检测到的自我偏好偏差Self-preference bias。大多数模型给自己的输出打分时都会偏高。所以在构建评估管道时必须极其小心地去纠正和处理这种偏见。Q9模型自己生成回答又自己给自己反馈Self-refinement这种「左脚踩右脚」的迭代到底能把模型能力提升多少有上限吗这是一个非常核心的前沿问题。从信息论的上限来看这个空间极大——因为模型在预训练时吞噬了整个互联网的知识这些知识以某种方式被压缩在权重里。通过自我博弈和不同的 Prompt 引导你确实有可能「压榨」出模型原本隐藏的极强能力。但实际上这种自我改进的 Scaling laws 究竟是什么样的目前仍然是一个非常活跃的经验性研究领域。六、复习题一、监督微调SFT与数据陷阱SFT 的三大数据流派课程中展示了三种典型的指令微调数据来源FLAN、Open Assistant、Alpaca请简述它们各自的构造方式与核心优缺点。幻觉陷阱Hallucination Trap根据 John Schulman 的观点如果在 SFT 阶段强行用包含深度知识和复杂引用的高质量答案去微调模型但这些事实并未存在于模型的预训练权重中会导致什么严重的后果为什么表面偏好与偏见Length Formatting Bias在评估 SFT 模型的输出时人类评估者和 AI 裁判通常会表现出哪两种强烈但与模型真实推理能力无关的「格式偏好」Mid-training 的演进为什么现代前沿大模型不再把 SFT 数据仅仅留到最后一步而是将其大量混入预训练的最后阶段退火/衰减期二、强化学习与人类反馈RLHF的困境生成-验证鸿沟Generator-Validator Gap既然已经有了 SFT为什么业界还要耗费巨大精力去收集偏好数据并做强化学习请从成本和人类认知特点的角度解释。众包标注的现实困境在真实的众包环境下如每道题仅给 1 分钟人类标注者在对比两个模型输出时面临的最大困难是什么这导致他们往往依赖什么捷径来打分标注者的人口统计学偏差Demographic BiasInstructGPT 的早期偏好标注者中只有 17% 来自美国大部分来自菲律宾和孟加拉国。这种标注者群体构成在模型对齐中引发了什么出人意料的价值观偏移现象自我偏好偏差Self-preference Bias当大模型对自己生成的输出进行打分时必须极力警惕哪一种强烈的偏差三、对齐底层算法PPO 与 DPOBradley-Terry 模型RLHF 将人类对 A 和 B 两个回答的「偏好选择」转化为数学优化的底层假设是什么它是如何关联隐藏的「奖励值Reward」和人类选择概率的DPO 取代 PPO 的数学魔法相比于 InstructGPT 使用的极其复杂、需要单独训练奖励模型的 PPO 算法DPO 为何能统治目前的开源界它是如何巧妙地将复杂的强化学习任务转化为简单的监督学习分类任务的七、参考答案1. SFT 的三大数据流派FLAN聚合传统 NLP 任务将各种分类、问答等传统任务强行拼成指令格式。缺点是回答通常极短如只有一个词非常不符合真实用户的聊天交互习惯。Open Assistant人类专家手写由热情的人类志愿者编写包含详细的回答甚至真实的引用文献。质量极高但收集成本极其高昂且极难规模化。AlpacaAI 生成/知识蒸馏利用 GPT-4 等更强大的模型自动生成指令和长篇回答。成本低、可扩展且具有很强的「聊天感」是目前开源界的主流范式。2. 幻觉陷阱Hallucination Trap这会促使模型学会「胡编乱造幻觉」。从底层 Token 预测机制来看「瞎编一个看似权威的引用」带来的 Loss 惩罚远远小于「破坏输出结构、根本不写引用」带来的惩罚。SFT 会强迫模型去迎合这种长文本和引用的结构当模型遇到不知道的复杂问题时它学会的捷径就是伪造一个引用来完成任务。3. 表面偏好与偏见Length Formatting Bias人类和 AI 都表现出对更长的输出Longer outputs以及列表排版结构Lists/Bullet points的强烈偏好。这导致 SFT 模型的输出变得越来越长但并不代表其真正的核心能力变强了。4. Mid-training 的演进这种在预训练后期引入大量高质量指令数据的方法被称为 Mid-training。这样做不仅可以缓解「灾难性遗忘Catastrophic forgetting」而且通过将指令更深地整合到预训练中能更有效地激发模型的通用潜力。这意味着今天所谓的「基础模型Base Model」实际上已经隐式地经历过指令微调了。5. 生成-验证鸿沟Generator-Validator Gap这是因为人类包括模型本身验证和比较两个现有回答的好坏要比从头写出一个完美的回答容易也便宜得多。研究发现即使是专家作家有时也会认为 AI 生成的总结比自己亲手写的总结更好。因此收集 Pair-wise 偏好反馈比收集纯人类高质量 SFT 数据更具成本效益。6. 众包标注的现实困境在时间压力下标注者根本无法有效核查深度事实的正确性或复杂的数学计算。这导致他们往往退而求其次依赖肤浅的捷径——比如直接给看起来「更长、排版更规范」的答案投票即使该答案包含了严重的幻觉事实。7. 标注者的人口统计学偏差Demographic Bias由于对齐数据是由这些特定地区的标注者决定的InstructGPT 的价值观潜移默化地出现了向东南亚宗教和特定地域文化观点对齐的偏移。这证明了收集反馈者的文化背景会直接决定模型最终输出的社会价值观。8. 自我偏好偏差Self-preference Bias必须极力警惕自我偏好偏差Self-preference bias。绝大多数模型在给自己生成的输出打分时都会存在强烈的偏袒心理给出异常高的评分这会严重污染评估管线的客观性。9. Bradley-Terry 模型Bradley-Terry 模型的底层假设是每一个文本输出背后都有一个看不见的标量「奖励值Reward」。当人类在 A 和 B 两个回答中做选择时他们本质上是在做抛硬币的概率选择而这个概率就是这两个答案隐藏奖励值之间的差值Logistic 函数P(A 优于 B) σ(reward(A) - reward(B))。10. DPO 取代 PPO 的数学魔法PPO 需要单独训练一个奖励模型并使用复杂的在线采样和截断。而 DPO 的数学魔法在于它直接在闭式最优策略解中将「奖励Reward」等价替换为了「当前模型与 SFT 参考模型的对数概率之比Log ratio」。将这个替换带回 Bradley-Terry 模型后原本复杂的强化学习问题就被优雅地转化为了一个纯监督学习的最大似然任务——模型只需沿着梯度提高被偏好答案的对数概率压低被拒绝答案的对数概率完全抛弃了单独的奖励模型和 RL 循环。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2418350.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!