DPO 训练
直接偏好优化使模型与人类偏好对齐,无需奖励建模。什么是 DPO?
DPO(Direct Preference Optimization)是 RLHF 的更简单替代方案。DPO 不是训练单独的奖励模型,而是直接优化模型以偏好选择的响应而非被拒绝的响应。快速开始
Python API
数据格式
DPO 需要偏好对:一个提示词和选择/拒绝的响应。多轮对话
参数
Beta
beta 参数控制模型可以从参考模型偏离多少:0.01-0.05: 激进优化(可能过拟合)0.1: 标准(推荐)0.5-1.0: 保守(保持接近参考模型)
参考模型
当model_ref 为 None(默认值)时,DPO 使用初始模型作为参考。您可以指定不同的参考模型:
训练技巧
使用 LoRA
DPO 与 LoRA 配合良好:较低学习率
DPO 对学习率敏感:更少轮次
DPO 通常需要更少的轮次:示例:有用助手
创建更有用的助手:DPO vs ORPO
收集偏好数据
人工标注
- 为每个提示词生成多个响应
- 让标注员对响应进行排序
- 创建选择/拒绝对
LLM 作为评判者
下一步
ORPO Training
组合 SFT + 对齐
Reward Modeling
训练奖励模型