LLMs的知识蒸馏:技术和应用

📖阅读时长:19分钟

🕙发布时间:2025-02-19

近日热文:
1. 全网最全的神经网络数学原理(代码和公式)直观解释
2. 大模型进化史:从Transformer到DeepSeek-R1的AI变革之路
3. 2W8000字深度剖析25种RAG变体:全网最全~没有之一
知乎【柏企
公众号【柏企科技说】【柏企阅文

知识蒸馏通过创建更小、更快、更易于部署的模型,释放了大语言模型(LLM)在实际应用中的潜力。本文提供了知识蒸馏的全面指南,涵盖视觉、自然语言处理(NLP)和语音领域中的算法、架构和应用。

大规模机器学习和深度学习模型越来越普遍。例如,据报道,GPT-4o有超过2000亿个参数。然而,虽然训练大型模型有助于提升最先进的性能,但部署这种庞大的模型,尤其是在边缘设备上,并非易事。

此外,大多数数据科学建模工作侧重于训练单个大型模型或不同模型的集合,使其在通常不代表真实数据的保留验证集上表现良好。

训练和测试目标之间的这种不一致,导致开发出的机器学习模型在精选的验证数据集上有不错的准确率,但在对真实测试数据进行推理时,往往无法满足性能、延迟和吞吐量的标准。

知识蒸馏通过捕获并“提炼”复杂机器学习模型或模型集合中的知识,将其转化为更易于部署的单个较小模型,且不会导致性能大幅下降,从而帮助克服这些挑战。

什么是知识蒸馏?

知识蒸馏是指将知识从一个大型复杂的模型或一组模型转移到可以在现实世界的约束下实际部署的单个较小模型的过程。本质上,它是一种模型压缩形式,由Bucilua及其合作者于2006年首次成功演示。

知识蒸馏更常用于具有复杂架构(包含多个层和模型参数)的神经网络模型。因此,随着过去十年深度学习的兴起,以及它在语音识别、图像识别和自然语言处理等多个领域的成功,知识蒸馏技术在实际应用中受到了广泛关注。

对于内存和计算能力有限的边缘设备而言,部署大型深度神经网络模型的挑战尤为突出。为应对这一挑战,人们首先提出了一种模型压缩方法,将大型模型的知识转移到训练较小的模型中,同时不会显著降低性能。Hinton及其同事将这种从较大模型学习小模型的过程正式定义为“知识蒸馏”框架。

如图1所示,在知识蒸馏中,一个小型“学生”模型学习模仿大型“教师”模型,并利用教师的知识获得相似或更高的准确率。在下一节中,我将更深入地研究知识蒸馏框架及其底层架构和机制。

深入研究知识蒸馏

知识蒸馏系统由三个主要组件构成:知识、蒸馏算法和师生架构。

知识

在神经网络中,知识通常指学习到的权重和偏差。同时,大型深度神经网络中的知识来源丰富多样。典型的知识蒸馏使用logits(未经过softmax激活函数处理的神经网络输出)作为教师知识的来源,而其他方法则侧重于中间层的权重或激活。其他相关知识还包括不同类型的激活和神经元之间的关系,或者教师模型本身的参数。

不同形式的知识可分为三种类型:基于响应的知识、基于特征的知识和基于关系的知识。图2展示了教师模型中的这三种不同类型的知识。

基于响应的知识

如图2所示,基于响应的知识侧重于教师模型的最终输出层。其假设是学生模型将学习模仿教师模型的预测。如图3所示,这可以通过使用称为蒸馏损失的损失函数来实现,该函数分别捕获学生模型和教师模型的logit之间的差异。在训练过程中,随着这种损失逐渐最小化,学生模型将更擅长做出与教师模型相同的预测。

在图像分类等计算机视觉任务中,软目标包含基于响应的知识。软目标表示输出类别的概率分布,通常使用softmax函数进行估计。每个软目标对知识的贡献由一个称为“温度(temperature)”的参数进行调整。基于软目标的基于响应的知识蒸馏通常用于监督学习场景。

基于特征的知识

经过训练的教师模型还能在中间层捕获数据知识,这对于深度神经网络尤为重要。中间层学习区分特定特征,这些知识可用于训练学生模型。如图4所示,目标是训练学生模型学习与教师模型相同的特征激活。蒸馏损失函数通过最小化教师模型和学生模型的特征激活之间的差异来实现这一点。

基于关系的知识

除了神经网络输出层和中间层表示的知识外,捕获特征图之间关系的知识也可用于训练学生模型。这种被称为基于关系的知识如图5所示。这种关系可以建模为特征图、图形、相似性矩阵、特征嵌入或基于特征表示的概率分布之间的相关性。

训练

训练学生模型和教师模型的方法主要有三种:离线蒸馏、在线蒸馏和自蒸馏。蒸馏训练方法的分类取决于教师模型是否与学生模型同时被修改,如图所示:

离线蒸馏

离线蒸馏是最常见的方法,即使用预训练的教师模型来指导学生模型。在该方案中,首先在训练数据集上对教师模型进行预训练,然后从教师模型中提取知识来训练学生模型。鉴于深度学习的最新进展,有各种各样的预训练神经网络模型可供公开使用,可根据具体用例选择作为教师模型。离线蒸馏是深度学习中一种成熟的技术,且更容易实现。

在线蒸馏

在离线蒸馏中,预训练的教师模型通常是大容量的深度神经网络。对于一些用例,可能无法获得用于离线蒸馏的预训练模型。为解决这一限制,可以使用在线蒸馏,教师模型和学生模型在单个端到端训练过程中同时更新。在线蒸馏可以利用并行计算,因此是一种高效的方法。

自蒸馏

如图6所示,在自蒸馏中,教师模型和学生模型使用相同的模型。例如,深度神经网络深层的知识可用于训练浅层。它可以被视为在线蒸馏的一个特殊情况,并以多种方式实例化。教师模型早期阶段的知识可以转移到后期阶段,以训练学生模型。

架构

师生网络架构的设计对于高效的知识获取和提炼至关重要。通常,更复杂的教师模型和更简单的学生模型之间存在模型容量差距。可以通过高效的师生架构优化知识转移,来缩小这种结构性差距。

由于深度神经网络的深度和广度,从深度神经网络中传输知识并不简单。知识迁移最常见的架构中,学生模型具有以下特点:

  • 是教师模型的较浅版本,层数较少,每层神经元数量也较少;
  • 是教师模型的量化版本;
  • 是具有高效基本操作的较小网络;
  • 是具有优化全球网络架构的较小网络;
  • 与教师模型相同。

除上述方法外,神经架构搜索等最新进展也可用于在给定特定教师模型的情况下,设计最佳的学生模型架构。

用于知识蒸馏的算法

在本节中,我将重点介绍用于训练学生模型,以从教师模型中获取知识的算法。

对抗性蒸馏

对抗性学习是最近在生成对抗网络的背景下提出的概念,用于训练生成器模型和判别器模型。生成器模型学习生成尽可能接近真实数据分布的合成数据样本,判别器模型则学习区分真实数据和合成数据样本。这个概念已应用于知识蒸馏,使学生模型和教师模型能够更好地表示真实数据分布。

为实现学习真实数据分布的目标,对抗性学习可用于训练生成器模型,以获取合成训练数据,或用于扩充原始训练数据集。第二种基于对抗学习的蒸馏方法侧重于判别器模型,根据logits或特征图区分学生模型和教师模型的样本。这种方法有助于学生模型更好地模仿教师模型。第三种基于对抗学习的蒸馏技术侧重于在线蒸馏,同时优化学生模型和教师模型。

多教师蒸馏

在多教师蒸馏中,学生模型从多个不同的教师模型中获取知识,如图7所示。使用多个教师模型的集合可以为学生模型提供不同类型的知识,这可能比从单个教师模型获得的知识更有益。

来自多个教师的知识可以合并为所有模型的平均响应。通常从教师那里转移的知识类型基于logits和特征表示。

跨模态蒸馏

图8展示了跨模态蒸馏训练方案。在此方案中,教师模型在一种模态中进行训练,其知识被提炼到需要不同模态知识的学生模型中。当在训练或测试期间特定模态的数据或标签不可用时,就需要跨模态传递知识。

跨模态蒸馏最常用于视觉领域。例如,在标记图像数据上训练的教师模型的知识,可用于对具有未标记输入域(如光流、文本或音频)的学生模型进行蒸馏。在这种情况下,从教师模型的图像中学习到的特征用于学生模型的监督训练。跨模态蒸馏在视觉问答、图像描述等应用中非常有用。

其他

除上述蒸馏算法外,还有几种其他算法也应用于知识蒸馏。

  • 基于图的蒸馏使用图来捕获数据内部关系,而不是从教师到学生的单个实例知识。图有两种使用方式:作为知识转移的手段,以及控制教师知识的转移。在基于图的蒸馏中,图的每个顶点代表一个自监督教师,可能分别基于基于响应或基于特征的知识,如logits和特征图。
  • 基于注意力的蒸馏基于使用注意力图从特征嵌入中转移知识。
  • 由于隐私、安全或保密原因,在没有训练数据集的情况下,无数据蒸馏基于合成数据。合成数据通常从预训练教师模型的特征表示中生成。在其他应用中,生成对抗网络(GANs)也用于生成合成训练数据。
  • 量化蒸馏用于将知识从高精度教师模型(如32位浮点型)转移到低精度学生网络(如8位)。
  • 终身蒸馏基于持续学习、终身学习和元学习的学习机制,其中先前学到的知识被积累并转移到未来的学习中。
  • 基于神经架构搜索的蒸馏用于确定合适的学生模型架构,以优化从教师模型的学习。

知识蒸馏的应用

知识蒸馏已成功应用于多个机器学习和深度学习用例,如图像识别、自然语言处理和语音识别。在本节中,我将重点介绍知识蒸馏技术的现有应用和未来潜力。

视觉

知识蒸馏在计算机视觉领域的应用广泛。最先进的计算机视觉模型越来越多地基于深度神经网络,这些网络可从模型压缩中受益,便于部署。知识蒸馏已成功用于以下用例:

  • 图像分类
  • 人脸识别
  • 图像分割
  • 动作识别
  • 目标检测
  • 车道检测
  • 行人检测
  • 面部特征点检测
  • 位姿估计
  • 视频字幕
  • 图像检索
  • 阴影检测
  • 文本到图像合成
  • 视频分类
  • 视觉问答等

知识蒸馏还可用于跨分辨率人脸识别等特定用例,基于高分辨率人脸教师模型和低分辨率人脸学生模型的架构可以提高模型性能并降低延迟。由于知识蒸馏可以利用不同类型的知识,包括跨模态数据、多域、多任务和低分辨率数据,因此可以针对特定的视觉识别用例训练各种提炼的学生模型。

自然语言处理

鉴于语言模型或翻译模型等大容量深度神经网络的广泛应用,知识蒸馏在自然语言处理应用中的应用尤为重要。最先进的语言模型包含数十亿个参数,例如,GPT-3包含1750亿个参数,这比之前最先进的语言模型BERT(基本版本包含1.1亿个参数)大了几个数量级。

因此,知识蒸馏在自然语言处理中非常受欢迎,用于获得快速、轻量级的模型,这些模型更易于训练,计算成本更低。除了语言建模之外,知识蒸馏还用于以下自然语言处理用例:

  • 神经机器翻译
  • 文本生成
  • 问答
  • 文档检索
  • 文本识别

通过知识蒸馏,可以获得高效、轻量级的自然语言处理模型,这些模型可以在较低的内存和计算要求下进行部署。师生训练还可用于解决多语言自然语言处理问题,其中多语言模型的知识可以相互传递和共享。

案例研究:DistilBERT

DistilBERT是由Hugging Face开发的一种更小、更快、更便宜、更轻的BERT模型。在这里,作者预训练了一个较小的BERT模型,该模型可以在各种自然语言处理任务上进行微调,并且具有相当高的准确率。在预训练阶段应用知识蒸馏,以获得BERT模型的提炼版本,该版本的参数减少了40%(6600万个参数对比1.1亿个参数),推理速度提高了60%(在GLUE情感分析任务中,推理时间从668秒缩短到410秒),同时保持了相当于原始BERT模型准确率97%的模型性能。在DistilBERT中,学生模型具有与BERT相同的架构,并且是使用一种新的三元组损失获得的,该损失结合了与语言建模、蒸馏和余弦距离损失相关的损失。

语音

最先进的语音识别模型也基于深度神经网络。现代自动语音识别(ASR)模型经过端到端训练,基于包括卷积层、具有注意力机制的序列到序列模型,以及最近的Transformer架构。对于实时的设备端语音识别,获得更小、更快的模型以实现有效性能至关重要。

语音领域中知识蒸馏的用例包括:

  • 语音识别
  • 口语识别
  • 音频分类
  • 说话人识别
  • 声学事件检测
  • 语音合成
  • 语音增强
  • 抗噪ASR
  • 多语言ASR
  • 口音检测

    案例研究:Amazon Alexa的声学建模

    Parthasarathi和Strom(2019)利用师生训练为100万小时的未标记语音数据生成软目标,而训练数据集仅包含7000小时的标记语音。教师模型在所有输出类上生成概率分布。学生模型在给定相同特征向量的情况下,也在输出类上生成概率分布,目标函数优化这两个分布之间的交叉熵损失。在这里,知识蒸馏有助于简化在大量语音数据语料库上生成目标标签的过程。

结论

现代深度学习应用基于庞大的神经网络,这些网络容量大、内存占用高且推理延迟慢。将此类模型部署到生产环境是一项巨大的挑战。知识蒸馏是一种巧妙的机制,用于训练从大型复杂教师模型派生的更小、更轻、更快、更经济的学生模型。在Hinton及其同事(2015年)提出知识蒸馏的概念之后,为生产用例获取高效轻量级模型而采用的知识蒸馏方案大幅增加。知识蒸馏是一种基于不同类型的知识、训练方案、架构和算法的复杂技术。知识蒸馏已经在计算机视觉、自然语言处理、语音等多个领域取得了巨大成功。

引用

[1] Distilling the Knowledge in a Neural Network. Hinton G, Vinyals O, Dean J (2015) NIPS Deep Learning and Representation Learning Workshop. https://arxiv.org/abs/1503.02531

[2] Model Compression. Bucilua C, Caruana R, Niculescu-Mizil A (2006) https://dl.acm.org/doi/10.1145/1150402.1150464

[3] Knowledge distillation: a survey. You J, Yu B, Maybank SJ, Tao D (2021) https://arxiv.org/abs/2006.05525

[4] DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter (2019) Sanh V, Debut L, Chammond J, Wolf T. https://arxiv.org/abs/1910.01108v4

[5] Lessons from building acoustic models with a million hours of speech (2019) Parthasarathi SHK, Strom N. https://arxiv.org/abs/1904.01624

## 推荐阅读
1. DeepSeek-R1的顿悟时刻是如何出现的? 背后的数学原理
2. 微调 DeepSeek LLM:使用监督微调(SFT)与 Hugging Face 数据
3. 使用 DeepSeek-R1 等推理模型将 RAG 转换为 RAT
4. DeepSeek R1:了解GRPO和多阶段训练
5. 深度探索:DeepSeek-R1 如何从零开始训练
6. DeepSeek 发布 Janus Pro 7B 多模态模型,免费又强大!

本文由mdnice多平台发布


柏企科技圈
15 声望5 粉丝