20260429:一些新东西
This commit is contained in:
69
concepts/on-policy-distillation.md
Normal file
69
concepts/on-policy-distillation.md
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
title: "On-Policy Distillation (OPD)"
|
||||
domain: "Machine Learning / Post-Training"
|
||||
tags: [post-training, distillation, reinforcement-learning, model-merging]
|
||||
sources: [[deepseek-v4-million-token-context]]
|
||||
---
|
||||
|
||||
# On-Policy Distillation (OPD)
|
||||
|
||||
> **类型**: Concept (Tier 1 — Core)
|
||||
> **来源**: [[deepseek-v4-million-token-context]]
|
||||
|
||||
## 定义
|
||||
|
||||
OPD(On-Policy Distillation)是一种多教师模型蒸馏技术,通过让学生模型在自己的生成轨迹上学习教师模型的输出分布,将多个领域专家模型的知识融合到单个统一模型中。
|
||||
|
||||
## DeepSeek-V4 中的 OPD 流程
|
||||
|
||||
### 两阶段后训练范式
|
||||
|
||||
1. **阶段一:专家训练(Specialist Training)**
|
||||
- 针对每个目标领域(数学、编程、Agent、指令遵循等)独立训练专家模型
|
||||
- 流程:Base Model → SFT(领域高质量数据)→ RL(GRPO,领域特定奖励模型)
|
||||
- 产出多个各自领域顶尖的专家模型
|
||||
|
||||
2. **阶段二:OPD 融合**
|
||||
- 统一模型(学生)通过多教师 OPD 学习所有专家能力
|
||||
- 10+ 教师模型覆盖不同领域
|
||||
|
||||
### 数学形式
|
||||
|
||||
$$
|
||||
\mathcal{L}_{\text{OPD}}(\theta) = \sum_{i=1}^{N} w_i \cdot D_{KL}(\pi_\theta \parallel \pi_{E_i})
|
||||
$$
|
||||
|
||||
- \(\pi_{E_i}\):第 i 个专家模型的策略
|
||||
- \(\pi_\theta\):学生(统一)模型的策略
|
||||
- \(w_i\):专家权重
|
||||
- 反向 KL 散度确保学生沿自身生成轨迹学习
|
||||
|
||||
### 全词表蒸馏
|
||||
|
||||
与传统 token-level KL 估计不同,DeepSeek-V4 采用**全词表 logit 蒸馏**:
|
||||
- 保留完整 logit 分布计算 KL 散度
|
||||
- 梯度估计更稳定
|
||||
- 更忠实地传递教师知识
|
||||
|
||||
## 工程实现
|
||||
|
||||
1. **教师调度**:教师权重按需从集中存储加载,ZeRO 分片;仅缓存最后一层隐藏状态
|
||||
2. **TileLang 内核**:专门优化的 KL 散度计算内核
|
||||
3. **在线策略**:学生模型自身生成训练轨迹,保持 on-policy 学习
|
||||
|
||||
## 相比其他方法的优势
|
||||
|
||||
| 方法 | 问题 | OPD 方案 |
|
||||
|------|------|----------|
|
||||
| 权重合并 | 性能下降 | Logit 级对齐,绕过物理权重限制 |
|
||||
| 混合 RL | 训练不稳定 | 全词表蒸馏,梯度更稳定 |
|
||||
| Token-level KL | 高方差 | 完整分布匹配 |
|
||||
|
||||
## 相关概念
|
||||
|
||||
- [[specialist-training-pipeline]] — 专家训练流水线
|
||||
- [[test-time-scaling]] — 测试时扩展
|
||||
|
||||
---
|
||||
|
||||
*Last Updated: 2026-04-27*
|
||||
Reference in New Issue
Block a user