LLM 后训练实践
第5课:压缩部署与扩展

5.2 知识蒸馏

理解经典知识蒸馏范式、LLM 时代的蒸馏实践(DeepSeek-R1-Distill、Qwen3 思考模式融合),以及蒸馏与 RL 训练的权衡

经典知识蒸馏(Hinton et al., 2015)

知识蒸馏(Knowledge Distillation, KD)的核心思想非常直观:用一个大的教师模型(Teacher)来指导一个小的学生模型(Student)学习。学生不仅要学习正确答案(hard label),还要学习教师对所有选项的置信度分布(soft label)。

软标签中的"暗知识"

考虑一个分类任务。教师模型对一个样本的输出可能是:

类别硬标签教师软标签(T=1)教师软标签(T=3)
10.920.58
00.050.23
兔子00.020.14
00.010.05

硬标签只告诉学生"这是猫";而软标签还传递了教师的暗知识(dark knowledge)——"这个样本有点像狗,不太像鸟"。这种类间相似性信息对学生模型非常有价值。

蒸馏损失函数

经典蒸馏使用温度(temperature)参数 TT 来软化教师的输出分布:

piT=exp(zi/T)jexp(zj/T)p_i^T = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)}

其中 ziz_i 是 logits(未归一化的输出),TT 越大,分布越平滑。

学生模型的总损失由两部分组成:

L=αT2KL(pteacherTpstudentT)蒸馏损失(向教师学习)+(1α)CE(y,pstudent)原始损失(向标签学习)\mathcal{L} = \alpha \cdot \underbrace{T^2 \cdot \text{KL}\left(p^T_{\text{teacher}} \,\|\, p^T_{\text{student}}\right)}_{\text{蒸馏损失(向教师学习)}} + (1 - \alpha) \cdot \underbrace{\text{CE}(y, p_{\text{student}})}_{\text{原始损失(向标签学习)}}

为什么乘以 T2T^2 当温度 TT 升高时,softmax 输出的梯度量级会缩小为 1/T21/T^2。乘以 T2T^2 是为了补偿这个效应,使蒸馏损失的梯度量级与温度无关,方便调节 α\alpha

蒸馏的形式分类

蒸馏类型方法教师信号适用场景
Logits 蒸馏KL 散度匹配输出分布全词表的概率分布需要访问教师 logits
特征蒸馏匹配中间层表征隐藏层激活需要访问教师内部结构
黑盒蒸馏用教师的文本输出做 SFT仅文本回复仅需 API 访问
自蒸馏模型蒸馏自身的推理链自生成的思维链无需外部教师

在 LLM 时代,黑盒蒸馏是最常用的形式——因为我们通常只能通过 API 获取大模型的文本输出,无法访问其 logits 或中间层。

LLM 时代的蒸馏实践

DeepSeek-R1-Distill 系列

DeepSeek-R1(2025 年 1 月发布)是一个里程碑式的推理模型。它不仅自身能力强大,还通过蒸馏创建了一系列小模型:

蒸馏方案:将 DeepSeek-R1(671B MoE)的推理能力蒸馏到多个基座模型上。

蒸馏模型基座参数量AIME 2024MATH-500GSM8K蒸馏数据量
R1-Distill-Qwen-1.5BQwen2.5-1.5B1.5B28.9%83.9%83.5%~800K
R1-Distill-Qwen-7BQwen2.5-7B7B55.5%92.9%89.7%~800K
R1-Distill-Qwen-14BQwen2.5-14B14B69.7%93.9%92.1%~800K
R1-Distill-Qwen-32BQwen2.5-32B32B72.6%94.3%93.4%~800K
R1-Distill-Llama-8BLlama-3.1-8B8B50.4%89.1%87.2%~800K
R1-Distill-Llama-70BLlama-3.3-70B70B70.0%94.5%94.2%~800K

蒸馏数据的构造方法:DeepSeek 使用 R1 模型在大量数学、代码和推理问题上生成包含完整思维链的回复。这些带有 <think>...</think> 标签的长推理链成为蒸馏数据,学生模型通过 SFT 学习模仿教师的推理过程。

蒸馏的本质:一种特殊的后训练

从后训练的视角看,黑盒蒸馏本质上就是用强模型生成的高质量数据对弱模型做 SFT

蒸馏 ≈ 数据生成(教师模型 → 高质量回复)+ SFT(学生模型学习这些回复)

这解释了为什么蒸馏如此有效——它同时解决了后训练中最关键的数据质量问题。教师模型生成的回复自然具有高质量,包含正确的推理步骤和良好的表达方式。

# 黑盒蒸馏的典型流程
# Step 1: 用教师模型生成蒸馏数据
from openai import OpenAI

client = OpenAI(
    base_url="https://api.deepseek.com",
    api_key="your-api-key",
)

def generate_distillation_data(prompt):
    """用 DeepSeek-R1 生成带思维链的回复"""
    response = client.chat.completions.create(
        model="deepseek-reasoner",
        messages=[{"role": "user", "content": prompt}],
    )
    return {
        "prompt": prompt,
        "thinking": response.choices[0].message.reasoning_content,
        "response": response.choices[0].message.content,
    }

# Step 2: 收集蒸馏数据
math_problems = [...]  # GSM8K, MATH 等数据集的问题
distill_data = [generate_distillation_data(p) for p in math_problems]

# Step 3: 格式化为 SFT 训练数据
def format_for_sft(sample):
    return {
        "messages": [
            {"role": "user", "content": sample["prompt"]},
            {"role": "assistant", "content": (
                f"<think>\n{sample['thinking']}\n</think>\n\n"
                f"{sample['response']}"
            )},
        ]
    }

sft_dataset = [format_for_sft(s) for s in distill_data]

# Step 4: 用 SFTTrainer 对学生模型进行微调
# (与标准 SFT 完全相同,只是数据来源不同)

蒸馏 vs RL 训练的权衡

DeepSeek-R1 论文中一个重要发现:蒸馏在小模型上的效率远高于 RL 训练。

维度蒸馏(Distillation)RL 训练(如 GRPO)
训练效率高(标准 SFT 流程)低(需要大量在线采样)
训练稳定性高(监督学习)中等(奖励信号稀疏)
能力上限受教师模型制约可能超越教师(探索新策略)
数据需求需要教师模型的输出需要可验证的奖励函数
适合模型规模1.5B - 14B(小模型)7B+(较大模型)
计算成本教师推理 + 学生 SFT大量在线采样 + RL 优化

蒸馏的局限性

  1. 能力天花板——学生模型的能力不可能真正超越教师模型。如果教师在某类问题上犯错,学生也会学到错误的推理模式。
  2. 风格模仿 vs 能力获得——蒸馏有时只是让学生模型学会了"看起来像推理"的输出格式,但没有真正获得推理能力。
  3. 泛化性——蒸馏数据的分布有限,学生模型在分布外任务上的泛化可能不如 RL 训练的模型。

DeepSeek 的实验结果表明:

  • 对于 1.5B-7B 模型:蒸馏效果远优于直接 RL 训练(小模型难以通过 RL 发展出复杂推理)
  • 对于 14B+ 模型:RL 训练有可能发现教师模型没有的推理策略,但需要更多计算资源
  • 最佳实践:蒸馏 + RL 的组合——先用蒸馏建立推理基础,再用 RL 进一步优化

Qwen3 的思考模式融合:蒸馏思想的工业级应用

Qwen3 的四阶段后训练流程中,**第三阶段"思考模式融合"**本质上是一种自蒸馏:

Stage 1 — 冷启动 SFT:用长思维链数据训练模型获得初步推理能力

Stage 2 — 推理 RL:用 GRPO 在数学/代码任务上强化推理能力。此时模型是"纯思考模型",始终输出思维链

Stage 3 — 思考模式融合(蒸馏):将 Stage 2 的推理能力"蒸馏"回一个统一模型,使其同时支持 thinking mode(带 <think> 标签)和 non-thinking mode(直接回答)。具体方法是用 Stage 2 模型生成的思维链作为训练数据,与不带思维链的通用数据混合训练

Stage 4 — 通用 RL:对融合后的模型做最终 RL 训练,全面提升各项能力

Stage 2 模型(纯推理)──→ 生成思维链数据 ──→ 与通用数据混合


                                         Stage 3 统一模型
                                         ├── /think  → 带思维链推理
                                         └── /no_think → 直接回答

这种"将 RL 训练的能力通过数据方式迁移回统一模型"的方法,正是蒸馏思想在 Qwen3 工业级实践中的体现。

蒸馏在后训练中的定位

将蒸馏放在后训练的整体技术图谱中:

后训练方法训练信号来源核心作用蒸馏的角色
SFT人工标注数据教模型说话蒸馏数据可替代人工标注
DPO/RLHF人类偏好对教模型选择可用强模型生成偏好对
GRPO/RLVR可验证奖励教模型思考蒸馏可传递推理能力
蒸馏强模型输出能力迁移贯穿所有阶段

蒸馏是后训练的"万金油":在数据准备阶段,可以用强模型生成 SFT 数据(如 MAGPIE);在偏好学习阶段,可以用强模型标注偏好对(如 UltraFeedback 使用 GPT-4 评分);在推理强化阶段,可以直接蒸馏教师的推理链。可以说,现代后训练的每一步都或多或少地使用了蒸馏

性能对比:蒸馏 vs 其他后训练方法

以 Qwen2.5-1.5B 为基座,对比不同后训练路径的效果:

方法GSM8KMATH-500训练成本说明
Qwen2.5-1.5B(基座)~35%~25%原始预训练模型
+ SFT(通用数据)~50%~35%$学会了回答格式
+ SFT + DPO~53%~37%$$偏好对齐小幅提升
+ SFT + GRPO(课堂实验级别)~55%~38%$$$有限步数的 RL 训练
R1-Distill-Qwen-1.5B(蒸馏)~83.5%~83.9%$$从 671B 教师蒸馏

蒸馏模型的性能远超同等参数量的 RL 训练模型,但请注意——这个对比并不完全公平,因为蒸馏模型间接利用了教师模型的巨大计算投入。在"单位计算投入"的视角下,蒸馏的效率仍然非常高。

本节小结

  1. 经典蒸馏通过软标签传递教师的"暗知识",温度参数 TT 控制分布的平滑程度
  2. LLM 时代的蒸馏以黑盒蒸馏(用教师文本输出做 SFT)为主流,DeepSeek-R1-Distill 系列是代表案例
  3. 蒸馏 vs RL:蒸馏在小模型上效率更高、更稳定;RL 在大模型上有潜力超越教师
  4. Qwen3 的思考模式融合是蒸馏思想的工业级应用——将 RL 训练的推理能力蒸馏回统一模型
  5. 蒸馏贯穿后训练全流程:数据生成、偏好标注、推理能力迁移都可以借助蒸馏