Skip to content

用一个 LLM 训练另一个 LLM 的 3 种技术

3 Techniques to Train An LLM Using Another LLM

LLM 并不只从原始文本中学习,它们也会相互学习:

  • Llama 4 Scout 和 Maverick 就是用 Llama 4 Behemoth 训练出来的。
  • Gemma 2 和 Gemma 3 则是用 Google 自家的 Gemini 训练出来的。

蒸馏(Distillation)技术让这一切成为可能,下图展示了三种常见的实现方式。

llms p37 1

其核心思路,是把「知识」从一个 LLM 迁移到另一个 LLM 中——这在传统深度学习领域早已相当常见。

LLM 中的蒸馏可以发生在两个阶段:

  • 预训练阶段
    • 把更大的教师模型(Teacher LLM)和更小的学生模型(Student LLM)放在一起联合训练。
    • Llama 4 采用的就是这种方式。
  • 训练后阶段:
    • 先单独训练出更大的教师模型,再把它的知识蒸馏给更小的学生模型。
    • DeepSeek 正是这样做的:把 DeepSeek-R1 蒸馏进了 Qwen 和 Llama 3.1 系列模型。

你也可以在两个阶段都应用蒸馏,Gemma 3 采用的正是这种做法。

以下是三种常用的蒸馏技术:

1)软标签蒸馏(Soft-label distillation)

llms p38 1

  • 用一个固定的、已预训练好的教师模型,在整个语料上生成 softmax 概率分布。
  • 把同样的数据也输入给未经训练的学生模型,得到它自己的 softmax 概率分布。
  • 训练学生模型,使其概率分布尽量贴近教师模型的概率分布。

能够完整看到教师模型的概率分布,确保了知识(或者说推理能力)能被最大限度地迁移。

但问题在于,你必须能拿到教师模型的权重,才能获取它的输出概率分布。

而即便你拿到了权重,还有另一个问题!

假设你的词表大小是 10 万个 token,语料库有 5 万亿个 token。

由于我们要为语料中的每一个 token,在整个词表范围内生成 softmax 概率分布,在 float8 精度下,存储这些软标签需要大约 5 亿 GB 的内存。

第二种技术正是为了解决这个问题。

2)硬标签蒸馏(Hard-label distillation)

llms p39 1

  • 用一个固定的、已预训练好的教师模型,只取它最终输出的 one-hot(独热)token。
  • 用未经训练的学生模型处理同样的数据,得到它的 softmax 概率分布。
  • 训练学生模型,使其概率分布尽量贴近教师模型给出的结果。

DeepSeek 正是这样做的:把 DeepSeek-R1 蒸馏进了 Qwen 和 Llama 3.1 系列模型。

3)协同蒸馏(Co-distillation)

llms p40 1

  • 教师模型和学生模型都从未经训练的状态开始。
  • 两个模型分别在当前批次数据上生成各自的 softmax 概率分布。
  • 教师模型照常在硬标签上进行训练。
  • 训练学生模型,使其 softmax 概率分布尽量贴近教师模型的概率分布。

Llama 4 正是用这种方式,从 Llama 4 Behemoth 训练出了 Llama 4 Scout 和 Maverick。

当然,在训练初期,教师模型给出的软标签本身还不够准确。

这也是为什么学生模型会同时结合「软标签」与「真实的硬标签」一起训练。

本站内容仅供学习交流,版权归原作者所有。