大模型蒸馏:On-Policy 与 Off-Policy 的区别

引言

在大语言模型(LLM)的蒸馏(Distillation)过程中,On-PolicyOff-Policy 是两种截然不同的数据采样策略。理解它们的区别对于设计高效的蒸馏方案至关重要。

核心概念

On-Policy 蒸馏

定义:使用学生模型(Student)自身生成的数据进行蒸馏训练。

工作流程
1. 学生模型针对输入问题生成回答
2. 教师模型(Teacher)对学生生成的回答进行评分或提供反馈
3. 学生模型根据反馈优化自身策略

特点
- 数据分布与学生模型当前策略一致
- 训练数据是"新鲜"生成的,反映学生当前能力
- 类似强化学习中的策略梯度方法

Off-Policy 蒸馏

定义:使用外部数据源或教师模型生成的数据进行蒸馏训练。

工作流程
1. 教师模型或人工准备高质量的训练数据(输入-输出对)
2. 学生模型学习模仿这些固定数据
3. 数据在训练过程中保持不变

特点
- 数据分布与教师模型或人工标注一致
- 训练数据是"静态"的,预先准备好的
- 类似传统的监督学习

对比分析

维度 On-Policy Off-Policy
数据来源 学生模型自生成 教师模型/人工准备
数据分布 动态变化,随学生改进而更新 静态固定
计算成本 高(需实时生成) 低(数据预先准备)
探索能力 强,能发现新的解决路径 弱,局限于已有数据
训练稳定性 较低,数据分布不断变化 较高,数据固定
适用场景 推理能力提升、自我改进 知识迁移、快速部署
数据分布 与学生当前策略一致 与学生策略不一致,存在分布偏移

实践建议

何时选择 On-Policy?

推荐使用
- 目标是提升特定能力(如数学推理、代码生成)
- 有可靠的奖励信号(验证器、测试用例、奖励模型)
- 计算资源充足,支持在线生成
- 需要模型自我改进、迭代优化

何时选择 Off-Policy?

推荐使用
- 快速复现或基线对比
- 通用能力迁移(如从 GPT-4 到本地小模型)
- 资源受限,需要控制训练成本
- 已有高质量的教学数据集

常见陷阱

⚠️ On-Policy 陷阱
- 模式崩溃:学生可能陷入局部最优,生成相似回答
- 奖励黑客:学生找到欺骗奖励模型的捷径
- 训练不稳定:分布漂移导致训练困难

⚠️ Off-Policy 陷阱
- 分布不匹配:学生能力超过训练数据水平后,继续训练收益递减
- 能力天花板:无法超越教师数据的质量上限
- 遗忘问题:过度拟合蒸馏数据,丢失预训练知识

总结

On-Policy Off-Policy
本质 学生"边做边学" 学生"模仿范例"
数据 动态生成 静态固定
优势 针对性强、可自我超越 稳定高效、易于部署
劣势 计算成本高、训练复杂 存在能力上限

最佳实践:先用 Off-Policy 快速获得基础能力,再用 On-Policy 针对性提升关键技能。