对抗性蒸馏(Adversarial Distillation)

基本概念

对抗性蒸馏是知识蒸馏(Knowledge Distillation)与对抗训练(Adversarial Training)相结合的技术,核心目标是:在将大模型(教师模型)的知识迁移到小模型(学生模型)的同时,提升小模型对对抗样本的鲁棒性。


背景:两个基础技术

知识蒸馏(KD)

教师模型(大)→ 软标签/中间层特征 → 学生模型(小)
  • 学生模型不只学 hard label(0/1),而是学教师输出的软概率分布
  • 保留教师模型的"暗知识"(dark knowledge)

对抗训练(AT)

原始样本 → 添加扰动(FGSM/PGD等)→ 对抗样本 → 训练模型
  • 让模型在被故意攻击的样本上依然预测正确
  • 代价:计算开销大,干净样本精度略有下降

核心问题:为什么需要结合?

问题 说明
小模型鲁棒性差 直接对小模型做对抗训练,泛化能力不足
对抗训练成本高 大模型对抗训练昂贵,难以部署
普通蒸馏不鲁棒 学生学到的是干净样本分布,无法抵御攻击

主要技术范式

1. ARD(Adversarially Robust Distillation)

Goldblum et al., 2020

Loss = α · KL(Teacher(x_adv) ∥ Student(x_adv))
     + β · KL(Teacher(x)     ∥ Student(x))
     + γ · CE(Student(x_adv), y)
  • 对抗样本上做蒸馏,而非干净样本
  • 学生模型同时学习教师在对抗情境下的"判断"

2. RSLAD(Robust Soft Label Adversarial Distillation)

  • 用教师模型对对抗样本生成的软标签替代 hard label
  • 避免标签噪声问题,学生鲁棒性更稳定

3. IAD(Introspective Adversarial Distillation)

  • 引入内省机制,动态判断每个样本对教师的"置信度"
  • 对教师不确定的样本降低蒸馏权重

4. 生成对抗式蒸馏(GAN-based)

Generator  →  生成对抗样本
Discriminator → 判别学生/教师输出差异
Student    →  对抗Generator,逼近Teacher
  • 将 GAN 框架融入蒸馏,动态生成最有挑战性的样本

训练流程(以 ARD 为例)

For each mini-batch (x, y):
  1. 用 PGD 对当前 Student 生成对抗样本 x_adv
  2. 前向传播:
       Teacher(x)      → soft label(干净)
       Teacher(x_adv)  → soft label(对抗)
  3. 计算 Loss:
       L_clean = KL(Teacher(x) ∥ Student(x))
       L_adv   = KL(Teacher(x_adv) ∥ Student(x_adv))
       L_ce    = CrossEntropy(Student(x_adv), y)
       L_total = α·L_clean + β·L_adv + γ·L_ce
  4. 反向传播更新 Student

关键技术挑战

鲁棒性 ←————————————————→ 干净精度
   高鲁棒性往往损失干净样本准确率(trade-off)

教师质量问题:
  若教师本身不鲁棒,蒸馏出的软标签质量差
  → 需要鲁棒教师 或 混合标签策略

计算开销:
  每步都需生成对抗样本(PGD 多步迭代)
  → 引入 FGSM 单步攻击加速,或 Free AT

与相关技术的对比

方法 模型大小 鲁棒性 干净精度 训练成本
普通训练 ❌ 弱 ✅ 高
对抗训练(AT) ✅ 强 略降 极高
普通蒸馏(KD) ❌ 弱 ✅ 高
对抗性蒸馏 ✅ 较强 ✅ 较高

在大语言模型中的应用

对抗性蒸馏在 LLM 领域也有新的含义:

  • 对齐蒸馏:将 RLHF 对齐的大模型知识蒸馏到小模型,抵御越狱攻击
  • 红队蒸馏:用红队模型生成对抗 prompt,训练小模型的安全鲁棒性
  • 幻觉对抗:针对容易产生幻觉的 prompt 进行蒸馏增强

总结

对抗性蒸馏的本质是:

用大模型的"经验与判断",教会小模型如何在恶意攻击下保持冷静

它在模型压缩与安全可靠性之间找到了一个工程上可行的平衡点,是当前 AI 系统走向实际部署(边缘设备、安全敏感场景)的重要技术路径。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐