3 Methodology
总述
核心目标
在教师模型参数不可访问的黑盒设定下,将私有大语言模型(Teacher LLM)的知识迁移到轻量开源学生模型(Student LLM)。
核心思想
传统知识蒸馏最小化均匀数据分布上的模型差异:
$\min_S \mathbb{E}{x\sim\mathcal{U}} [\mathcal{D}(T(x), S(x))]$
本文改为优化困难样本分布上的模型差异上界:
$\min_S \mathbb{E}{x\sim\mathcal{H}} [\mathcal{D}(T(x), S(x))]$
-
$\mathcal{U}$:均匀数据分布
-
$\mathcal{H}$:困难样本分布(师生差距大)
-
$\mathcal{D}(\cdot)$:模型输出差异度量
通过对抗框架持续生成困难样本,形成模仿—判别—生成闭环迭代提升。
3.2 Initialization(初始化)
3.2.1 角色定义
-
Student $S(x;\theta^S)$:待训练的开源模型(以 LLaMA 初始化)
-
Teacher $T(x;\theta^T)$:私有闭源模型(ChatGPT,参数不可见)
-
Referee $R$:评估师生差距的判别器(同 $T$,Prompt 切换角色)
-
Generator $G$:生成新困难指令的生成器(同 $T$,Prompt 切换角色)
3.1.2 数据池
-
Train Pool $X^A$
用于训练学生模型,每次迭代完全替换为新指令。
-
Cache Pool $X^B$
用于评估师生差距,每次迭代追加新指令,持续扩容。
3.1.3 初始化步骤
1. 学生模型 $S$ 用 LLaMA 初始化。
2. 教师 $T$ / 裁判 $R$ / 生成器 $G$ 均用 ChatGPT(gpt-3.5-turbo),靠不同 Prompt 扮演角色。
3. $X^A$ 初始化为 Alpaca 52K 自动生成指令。
4. $X^B \leftarrow X^A$(初始与训练池相同)。
3.2 Imitation Stage(模仿阶段)
3.2.1 目标
让学生模型对齐教师模型输出,完成基础知识蒸馏。
3.2.2 数据构建
对训练池中每条指令 $x_i^A \in X^A$,用教师模型生成标准答案:
$\{(x_i^A,\ T(x_i^A))\}_{i=1}^{N^A}$
3.2.3 训练目标
使用自回归语言建模损失微调学生:
$\mathcal{L}_{\text{imitate}} = -\sum_{i=1}^{N^A} \log S(T(x_i^A) \mid x_i^A)$
-
让学生尽可能复刻教师的回答分布。
3.2.4 特点
-
单向知识迁移,是传统指令微调的标准步骤。
-
仅解决“简单样本”,不关注学生薄弱点。
3.3 Discrimination Stage(判别阶段)
3.3.1 目标
从缓存池中识别困难指令(hard instructions):师生表现差距显著的指令。
3.3.2 数据池规则
-
Train Pool:替换式更新(只保留新生成指令)
-
Cache Pool:追加式更新(不断扩容,保证评估全面性)
3.3.3 裁判评分机制
对每条指令 $x_i^B \in X^B$:
-
分别得到师生输出:
$y_i^T = T(x_i^B),\quad y_i^S = S(x_i^B)$
-
裁判 $R$ 从有用性、相关性、准确性、详细度打分。
-
消除位置偏差:交换 $y_i^T,y_i^S$ 顺序评分两次,取平均。
-
计算差距分数:
$ d_i = R(y_i^T | x_i^B) - R(y_i^S | x_i^B)$
3.3.4 困难指令判定
设定阈值 $\tau=1.0$:
$\text{Hard instruction} \Longleftrightarrow d_i \ge \tau$
-
$d_i$ 越大,学生在该指令上越薄弱。
3.3.5 输出
-
困难指令集 $\mathcal{H}$
-
简单指令集 $\mathcal{E}$
3.4 Generation Stage(生成阶段)
3.4.1 目标
生成与困难指令同分布的新指令,持续提升学生难度。
3.4.2 生成策略(1:1 比例)
-
困难指令生成
-
从 $\mathcal{H}$ 随机采样一条指令
-
提示生成器 $G$ 生成同领域、同任务类型的新困难指令
-
-
简单指令生成
-
从 $\mathcal{E}$ 随机采样一条指令
-
生成同领域、长尾分布的简单指令
-
防止灾难性遗忘,保持任务多样性
-
3.4.3 去重过滤
新指令 $x_{\text{new}}$ 需满足:
$\text{ROUGE-L}(x_{\text{new}},\ x_{\text{exist}}) < 0.7,\ \forall x_{\text{exist}} \in X^B$
避免重复、保证多样性。
3.4.4 数据池更新
-
新生成指令替换 Train Pool $X^A$
-
新生成指令追加到 Cache Pool $X^B$
-
困难/简单生成比例固定 $r=1:1$
3.5 Min-Max Game Interpretation(最小最大博弈解释)
3.5.1 对抗目标
整个框架可解释为动态 Min-Max 博弈:
$\underbrace{\min_S}{\text{Imitation}} \quad \underbrace{\max{\mathcal{H}}}{\text{Discriminate + Generate}} \ \mathbb{E}{x\sim\mathcal{H}} [\mathcal{D}(T(x), S(x))]$
3.5.2 阶段拆解
-
Imitation(Min)
学生在困难样本上最小化与教师的差异,学习薄弱知识。
-
Discrimination + Generation(Max)
系统根据学生当前水平最大化师生差异,制造更难的样本。
3.5.3 理想均衡点
经过多轮迭代,学生完全掌握所有困难模式,裁判无法区分师生:
$\forall x,\quad d_i = R(T(x)) - R(S(x)) \approx 0$
此时学生功能等价于教师。
