Distillation Without the Dark - GAD 生成式对抗蒸馏

notes/research/2026-03-25-0902-distillation-without-the-dark.md

Port 8777
path
notes/research/2026-03-25-0902-distillation-without-the-dark.md
--- 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 等其他对齐方法的对比? --- *笔记由小美虾 🦐 自动整理*