DPO
摘要:在 LLM 的训练流程中,SFT 教会了模型"说话",而 DPO(Direct Preference Optimization)则教会了模型"如何得体地说话"。本文将深入浅出地拆解 DPO 的核心原理、数学本质以及它为何能在 2023 年横空出世后迅速取代复杂的 RLHF (PPO)。
1. 背景:为什么 SFT 还不够?
如果你训练过大模型,你一定熟悉 Pre-train(预训练) 和 SFT(监督微调)。
SFT 的本质是"模仿"。我们给模型成千上万个 (User, Assistant) 的问答对,让模型预测下一个 token。
但是,SFT 有一个致命弱点:它不知道什么是"更好"。
- 回答 A:准确但啰嗦,像个老学究。
- 回答 B:准确且简洁,像个专家。
在 SFT 模型眼里,只要能接上下一个字,A 和 B 没啥区别。但对于人类来说,我们显然偏好 B。为了让模型符合人类的价值观(有用性、安全性、简洁性),我们需要 Human Alignment(人类对齐)。
在 DPO 出现之前,这个领域的霸主是 RLHF (PPO)。
1.1 PPO 的痛点
OpenAI 使用 PPO(Proximal Policy Optimization)训练出了 ChatGPT。虽然效果好,但 PPO 的训练过程极其痛苦:
- 太复杂:需要同时维护 4 个模型(Actor, Critic, Reward, Reference)。
- 不稳定:超参数极其敏感,训练经常不收敛。
- 极慢:训练过程中模型需要实时生成(Rollout/Sampling)文本,这不仅慢,还极其吃显存。
直到 2023 年 5 月,斯坦福大学提出了 DPO (Direct Preference Optimization),一切都变了。