What is 知识蒸馏?
一种模型压缩技术,训练较小的「学生」模型来复制较大、更强的「教师」模型的行为。
Definition
知识蒸馏是一种训练技术,大型高性能模型(教师)将其学到的知识传递给较小、更高效的模型(学生)。学生不是在数据集的硬标签上训练,而是训练以匹配教师的输出分布——包括分配给错误答案的相对概率,这些编码了关于概念之间关系的有价值信息,而硬标签会丢弃这些信息。
在LLM场景下,蒸馏最常见的形式是生成合成训练数据。一个强大的教师模型(如GPT-4或Claude)对一组多样化的提示生成高质量回复,然后在这些教师生成的回复上微调较小的开源模型。这种方法被用于创建Alpaca和Vicuna等模型,已被证明在将前沿模型的能力转移到能在消费级硬件上运行的小模型方面非常有效。
蒸馏可以在多个层面运作:输出级蒸馏在教师生成的文本上训练学生;logit级蒸馏训练学生匹配教师对token的完整概率分布;中间级蒸馏将学生的内部表示与教师的隐藏状 态对齐。每个层面能捕获的教师知识逐渐增多,但需要对教师模型内部结构逐渐增多的访问。
Why It Matters
最大、最强的模型通常对于生产部署来说太昂贵或太慢。一个70B参数模型可能提供出色的质量,但需要多块GPU,每千次请求成本数美元。知识蒸馏允许团队在小10-50倍的模型中捕获大模型80-90%的质量,在单块GPU上运行,每千次请求成本仅几分钱。
蒸馏还支持本地和边缘部署。许多组织由于隐私、监管或延迟要求无法将数据发送到云端托管的大模型。通过将强大的云模型蒸馏成小型本地模型,团队可以在受限环境中部署AI能力,而不牺牲来自前沿模型研究的质量提升。
How It Works
LLM最常见的蒸馏工作流是基于回复的蒸馏。从业者策划一组代表目标用例的多样化提示集,通过教师模型运行它们以生成高质量回复,然后使用标准监督训练在这些提示-回复对上微调学生模型。学生学习模仿教师的回复风格、推理模式和输出质量。
更高级的方法使用教师的token级概率(logits)作为软目标。学生不是在单个正确回复上训练,而是学习匹配教师在每个token位置的完整概率分布。这提供了更多信息,因为非选择token的概率编码了概念之间的关系。温度参数控制给予低概率token的权重,较高的温度鼓励学生学习更广泛的分布模式。
Example Use Case
一家公司使用GPT-4进行合同分析,但需要在本地处理敏感文件。他们通过在非敏感合成合同上使用GPT-4生成15,000个合同分析样本来蒸馏GPT-4的合同分析能力,然后在这些回复上微调Llama 3 8B模型。蒸馏后的模型在合同分析上达到GPT-4的87%准确率,同时完全在本地单块GPU上运行,同时满足质量和隐私要求。
Key Takeaways
- 知识蒸馏将能力从大型教师模型传递到较小、可部署的学生模型。
- 基于回复的蒸馏使用教师生成的文本作为学生的训练数据。
- logit级蒸馏更有效但需要访问教师模型内部。
- 蒸馏通常以低10-50倍的部署成本保留教师80-90%的质量。
- 它使得在前沿云模型上开发的能力能够进行本地和边缘部署。
How Ertas Helps
Ertas Studio支持知识蒸馏工作流,用户可以在教师生成的数据上微调较小的模型。Ertas Data Suite帮助准备和清 洗教师模型生成的合成数据集,确保高质量的蒸馏训练数据。
Related Resources
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.