GEO

模型蒸馏

模型蒸馏是一种训练技术,让一个小型"学生"模型学会模仿一个大得多的"教师"模型,方法是用教师的输出(或其内部概率分布)而非原始标签来训练。其结果是得到一个模型,它以远小的体量、延迟和成本,保留了教师的大部分能力。

模型蒸馏是一种训练技术,让一个小型"学生"模型学会模仿一个大得多的"教师"模型,方法是用教师的输出(或其内部概率分布)而非原始标签来训练。其结果是得到一个模型,它以远小的体量、延迟和成本,保留了教师的大部分能力。

为什么重要

前沿模型与廉价模型之间的权衡过去十分残酷:为一个聪明 5% 的模型付出 10 倍代价,否则就只能将就。蒸馏弥合了这道差距。GPT-4o-mini、Claude Haiku、Gemini Flash、Llama 3 8B Instruct,主流实验室的每一个"小、快、廉"档位,实际上都是某个旗舰模型经过蒸馏而来的后代。蒸馏也是首选的专门化手段:一个从 GPT-4 在客服对话上蒸馏出来的 7B 模型,可以在那一项任务上击败原模型,而部署成本却只有其百分之一。对于开发者而言,蒸馏把"我该用哪个模型"从"我负担得起的最大模型"重新定义为"仍能胜任我工作的最小模型"。

工作原理

1. 挑选一个教师:通常是一个大型、强大的模型(GPT-4、Claude Opus、Llama 70B)。

2. 生成训练数据:可选其一:

  • 输出蒸馏:在大量输入上运行教师并保存其回答。用这些(输入,教师回答)对来训练学生。
  • logit 蒸馏:捕获教师在每个 token 上对整个词表的完整概率分布(即"软目标"),并训练学生去匹配它。

3. 训练学生:标准的有监督微调,但使用教师输出作为标签。学生的损失是它与教师输出之间的差异,而非与人工标注的标准答案之间的差异。

4. 可选的任务聚焦:在特定领域(代码、对话、数学、客服)的数据上蒸馏,得到一个专门化的小模型。

5. 评估:在留出基准上比较学生与教师。目标是以教师不到 10% 的成本,达到其 80% 至 95% 的质量。

输出蒸馏 vs logit 蒸馏

方面输出(回答)蒸馏logit(软目标)蒸馏
数据仅教师的文本输出教师的完整 token 概率
所需访问权限仅 API需要原始模型权重
质量良好更好(每个 token 信号更丰富)
成本廉价更高(捕获成本)
适用场景从闭源 API 蒸馏从开源或自有模型蒸馏

输出蒸馏是大多数团队的做法,因为他们无法获得 GPT-4 或 Claude 的权重级访问权限。logit 蒸馏是学术界的标准做法,但需要开源模型。

著名的蒸馏模型

DistilBERT(Hugging Face,2019):开山之作。体量为 BERT 的 60%,性能为其 95%,速度快 60%。

Alpaca / Vicuna(斯坦福 / LMSYS,2023):从 GPT-3.5 输出蒸馏而来的 Llama。让小型指令跟随模型变得廉价。

GPT-4o-mini、Claude Haiku、Gemini Flash:据传分别从各自的旗舰模型蒸馏而来,不过细节并未公开。

Llama 3.2 1B / 3B:Meta 从更大的 Llama 变体蒸馏而来、用于端侧使用的小型模型。

DeepSeek-R1-Distill(2025):将 DeepSeek-R1 的推理能力开源蒸馏到更小的 Llama 和 Qwen 基座上的版本。

TinyLlama、Phi-3:采用类蒸馏技术训练、以小博大的小型模型。

何时使用蒸馏

成本驱动型产品:你需要大部分质量,但无法在每次请求上都负担 GPT-4 或 Claude Opus。

延迟敏感型体验:聊天助手等场景,回答必须在亚秒级完成。

专门化:在窄任务(意图分类、JSON 提取、代码补全)上,一个经过微调的小模型胜过通用旗舰模型。

端侧或隔离环境:在无法运行 70B 模型的场合。

大批量处理:每天数百万次的文档分类,旗舰模型成本过高。

何时不该使用它

你没有足够的教师数据:至少需要数千对高质量的(输入,教师输出)。

开放式创意任务:蒸馏模型往往会丢失细微之处和创造力。

前沿推理:数学、编程和复杂推理仍然得益于运行真正的前沿模型。

快速变化的领域:蒸馏模型是一个快照。如果领域每周都在变,蒸馏就会滞后。

权衡取舍

质量上限:学生无法超越教师。蒸馏是迁移,而非创造。

对陌生输入的脆弱性:小模型泛化能力较弱。分布外输入会让性能迅速退化。

偏见继承:教师的偏见(连同错误和幻觉)会被固化进学生模型中。

前期 API 成本:从闭源 API 蒸馏,需要在数据生成阶段为数千次教师推理付费。

合规风险:某些闭源 API 的服务条款禁止使用其输出来训练竞品模型。请仔细阅读条款。

常见误区

不做评估就蒸馏:没有留出基准,你就无法判断学生是否匹配教师。

学生太小、教师太复杂:一个 1B 的学生无法捕获 1750 亿教师的全部行为。让规模匹配你的目标。

忽视数据质量:糟糕的教师输出(幻觉、跑题)会被固化为学生的糟糕行为。

没有专门化:从一个通用模型蒸馏出另一个通用模型,往往得到一个更差的通用模型。要针对一项任务来蒸馏。

合规盲区:悄悄用竞争对手的 API 输出来训练,是一颗法律定时炸弹。请确认服务条款。

Sources: