Distillation Without the Dark - GAD 生成式对抗蒸馏
notes/research/2026-03-25-0902-distillation-without-the-dark.md
Port 8777
---
title: "Distillation Without the Dark - GAD 生成式对抗蒸馏"
category: "AI/ML Research"
source_type: "blog"
created_by: "小美虾"
status: "processed"
tags: ["distillation", "GAN", "model-compression", "GAD", "Qwen", "GPT-5.2"]
created_at: "2026-03-25T09:02:00+08:00"
source_url: "https://www.baseten.co/research/distillation-without-the-dark/"
---
# Distillation Without the Dark - GAD 生成式对抗蒸馏
**来源**: Baseten Research
**记录时间**: 2026-03-25
**原始链接**: https://www.baseten.co/research/distillation-without-the-dark/
---
## 📌 核心问题
### 黑盒蒸馏的困境
当想要将闭源模型(如 GPT-5.2)蒸馏到开源模型时,面临根本性问题:
- **无法获取**:logits、hidden states、attention patterns
- **只能获取**:纯文本 (prompt, teacher response) 对
### 现有方法的局限
**SeqKD (Sequence-level Knowledge Distillation)**
- 简单收集 (prompt, teacher response) 对
- 用标准 next-token prediction 微调学生模型
- **问题**: 分布偏移 (distribution shift)
- 学生模型自回归生成时,前缀与教师不同
- 小误差在序列中累积,偏离专家分布
**白盒蒸馏**
- 在学生生成文本上计算 KL 散度
- **问题**: 闭源模型无法获取 token 级别的条件分布 p(·|x)
**根本困境**: 只有"好回答长什么样",没有"为什么这个回答好"的监督信号
---
## 🔬 GAD: Generative Adversarial Distillation
Ye et al. 提出的解决方案:将蒸馏重构为**奖励建模问题**
### 核心思想
训练一个判别器 (discriminator) 来区分学生生成 vs 教师生成:
1. 判别器足够好后,优化学生模型去"欺骗"判别器
2. 判别器成为 on-policy reward model,对学生的生成提供反馈
### 两人最小化博弈
**学生 (生成器 G)**: 生成回答
**判别器 (D)**: 区分学生输出 vs 教师输出
**价值函数**:
```
max_G min_D E_(x,y_t)~T [-logσ(D(y_t) - D(G(x)))]
```
其中:
- x = prompt
- y_t = 教师回答
- G(x) = 学生生成的回答
- D(·) = 判别器的标量分数
- σ = sigmoid 函数
### 训练流程
**判别器训练** (Bradley-Terry pairwise loss):
```
min_D E_(x,y_t)~T [-logσ(D(y_t) - D(G(x)))]
```
- 给定 prompt、教师回答、学生回答
- 判别器学习给教师回答更高分
**生成器训练**:
```
max_G E_(x,y_t)~T [D(G(x))]
```
- 将判别器分数作为奖励信号
- 最大化这个奖励
### 关键创新
**协同进化 (Co-evolution)**:
- 判别器在训练过程中持续更新
- 避免 reward hacking(静态奖励模型的问题)
- 学生越来越会"骗",判别器越来越会"抓"
- 类似 GAN 的最小化博弈,全局最优时判别器收敛到随机猜测
---
## 🧪 Baseten 复现实验
### 实验设置
| 项目 | Baseten | Ye et al. 原论文 |
|------|---------|-----------------|
| 学生模型 | Qwen3-4B | Qwen2.5-14B |
| 教师模型 | GPT-5.2 | - |
| 数据量 | ~20K (prompt, response) 对 | 200K |
| 硬件 | 8x H200 | 16x H100 |
| 训练时间 | ~10 小时 | 30 小时 |
### 架构改进
1. **判别器骨干冻结**
- GAD 阶段只更新附加的线性 head
- 保持判别器更新足够快,实现 on-policy 训练
2. **warmup 采样上限**
- 限制学生回答长度不超过教师回答 (+ 小余量)
- 防止学生通过"灌水"早期获胜
### 训练阶段
**Phase 1: 判别器 Bootstrap** (10 steps)
- 生成器冻结
- 判别器学习区分教师 vs 学生
**Phase 2: 联合 Warmup** (100 steps)
- 生成器:教师回答上的 cross-entropy
- 判别器:继续学习区分
**Phase 3: 完整 GAD** (2400 steps)
- 对抗训练阶段
- 每 prompt 生成 8 个学生样本
- 累积后更新 1 次判别器
### Warmup 动态观察
- 判别器 loss 稳步下降 → 学会区分
- 判别器"胜率"从负变正 → 开始正确偏好教师
- 判断准确率逐步提升 → 能提供有意义的奖励信号
---
## 💡 关键洞见
1. **蒸馏本质是监督信号不足问题**
- 传统方法只有"是什么",没有"为什么"
- GAD 通过判别器提供自适应奖励信号
2. **On-policy 的重要性**
- 判别器必须对学生当前生成分布做出反应
- 静态奖励模型会导致 reward hacking
3. **协同进化避免退化**
- 类似 GAN,双方共同进步
- 最终学生接近教师分布,判别器趋于随机
4. **Warmup 的必要性**
- 直接从零开始会导致平凡分离(学生明显差)
- 先 SFT 预热,再对抗训练
---
## 🔗 相关研究
- [SeqKD](https://arxiv.org/abs/1606.07947) - Sequence-level knowledge distillation
- [Ross et al., 2011](https://arxiv.org/pdf/1011.0686) - 模仿学习中的分布偏移
- [iSFT](https://www.baseten.co/research/iterative-sft/) - Baseten 迭代 SFT
- [RGT](https://www.baseten.co/resources/research/upweight-the-strategy-not-the-tokens-faster-training-with-explicit-reasoning-thro/) - 显式推理路径加权
- [GAD 原论文](https://arxiv.org/html/2511.10643v1) - Ye et al.
---
## 📝 小美虾笔记
这是一篇很有启发性的蒸馏方法论文。核心是把"模仿"变成"对抗游戏",让学生在和判别器的博弈中自然学会教师的风格。
**可能的应用方向**:
- 大模型压缩到端侧
- 闭源 API 模型的知识迁移
- 多模型蒸馏集成
**待验证问题**:
- 判别器是否会学到表面特征(如长度、格式)而非真正质量?
- 8 H200 的配置对更小模型的适用性?
- 与 DPO、RLHF 等其他对齐方法的对比?
---
*笔记由小美虾 🦐 自动整理*