前沿:GKD / On-Policy Distillation (ICLR 2024)

本文定位与前置知识

本文属于「前沿方向」组,讨论大模型蒸馏中从 off-policy 走向 on-policy 的关键转向。前置:请熟悉 Hinton et al. 2015(arXiv:1503.02531)的经典 KD——学生在教师生成的样本/分布上对齐教师。本文所讲的 GKD 正是对这一范式局限性的修正。

论文信息(事实库条目 10):Agarwal et al. 2024, 《On-Policy Distillation of Language Models…》, arXiv:2306.13649, ICLR 2024。该文提出 GKD(Generalized Knowledge Distillation):一种 on-policy 蒸馏方法,让学生在与”自己生成的样本”相关的分布上与教师对齐。

动机:经典 off-policy 的分布偏移

经典 KD 在 LLM 上的典型做法是:用教师模型在固定数据集上产出软标签/轨迹,学生在这些教师采样得到的样本上训练。这类方法被称为 off-policy——训练样本来自教师的分布,而非学生自己的生成分布。

问题随之而来:学生在自回归生成时,实际面对的是自己一步步采样出的序列。一旦学生的某一步偏离教师分布,后续 token 会进入一个训练时从未见过的”分布外”区域,误差累积、暴露偏差(exposure bias)放大。换言之,训练分布(教师采样)与推理分布(学生采样)之间存在分布偏移(distribution shift)。这在开放生成、尤其是长链推理任务上尤为致命。

GKD 方法:on-policy 对齐

GKD 的核心思想是让学生在自己的生成样本上与教师对齐,而非在教师的生成样本上。流程可概括为:

  1. 学生根据当前策略自回归生成一个序列 $y \sim \pi_\theta$(on-policy 采样)。
  2. 把这个学生自己生成的序列同时交给教师,获得教师在同样序列上的目标信号(如 logits / 隐状态)。
  3. 在学生生成的样本上最小化学生与教师的差异(如 KL),即对齐发生在”学生分布覆盖的样本”上,而非”教师分布覆盖的样本”上。

伪代码(概念性):

for each prompt x:
    y = student.sample(x)              # on-policy:学生自己生成
    with torch.no_grad():
        t = teacher.logits(x, y)       # 教师在相同 y 上给目标
    loss = KL(student.logits(x, y), t)
    loss.backward(); update(student)

由此,GKD 把”训练—推理”的分布裂痕缝合:训练时学生见到的正是它将要生成的那种序列。

与经典 off-policy KD 的区别

维度经典 off-policy KDGKD (on-policy)
训练样本来源教师采样(固定数据集/教师轨迹)学生自身采样
分布覆盖教师分布学生分布
分布偏移存在(暴露偏差)被缓解
教师调用时机预生成或实时,但样本非学生产出实时,且样本由学生产出

需注意:GKD 并不否定软标签的价值,而是把”在哪批样本上对齐”从教师的分布迁移到学生的分布。它可被视为对 Hinton 范式在自回归生成场景下的推广(Generalized)

Scalable Reasoning 含义

事实库条目 10 将 GKD 与”可扩展推理(scalable reasoning)“关联。直观理解:当蒸馏目标包含长链思维(如逐步推理、CoT)时,序列更长、分布偏移更严重,on-policy 对齐的收益更明显——学生必须在”自己会真正写出的长序列”上向教师学习,才能把推理能力稳定继承下来。这也为下一篇”推理定向蒸馏”埋下伏笔。

延伸阅读 / 参考文献

本文引用的已核验事实库条目:

  • Agarwal et al. 2024, 《On-Policy Distillation of Language Models…》, arXiv:2306.13649, ICLR 2024(提出 GKD:on-policy,让学生在自身生成样本上与教师对齐)。

相关前置:

  • Hinton, Vinyals, Dean 2015, arXiv:1503.02531(经典 off-policy 软标签蒸馏基线)。
本文累计阅读