知识蒸馏·前沿全景 | 最新调研,扩散模型/LLM/3D多模态压缩技术全拆解,轻量化部署难题新解法

技术

点击下方卡片,关注「集智书童」公众号

点击加入👉「集智书童」交流群

picture.image

picture.image

picture.image

picture.image

picture.image

picture.image

导读

深度神经网络(DNNs)在计算机视觉和自然语言处理领域取得了显著性能,并在学术界和工业界得到广泛应用。然而,随着DNNs和具有巨大参数数量的transformer模型的发展,将这些大型模型部署在边缘设备上引发了严重问题,如运行时间和内存消耗高。这对于最近的大型基础模型,如视觉-语言模型(VLMs)和大语言模型(LLMs)来说尤其令人担忧。知识蒸馏(KD)是提出的一种解决上述问题的重要技术,它采用教师-学生架构。更具体地说,使用来自繁琐的教师模型的额外知识训练轻量级的学生模型。

在这项工作中,提出了一种关于知识蒸馏方法的全面调查。这包括从不同角度审查KD:蒸馏来源、蒸馏方案、蒸馏算法、通过模态的蒸馏、蒸馏的应用以及现有方法的比较。与大多数现有调查不同,这些调查要么过时,要么只是更新了以前的调查,这项工作提出了一种具有新观点和表示结构的全面调查,它对知识蒸馏的最新方法进行了分类和研究。这项调查考虑了各种关键子类别,包括扩散模型的知识蒸馏、3D输入、基础模型、transformer和LLMs。此外,还讨论了KD的现有挑战和可能的研究方向。

项目GitHub页面:https://github.com/IPL-Sharif/KD\_SurveyIndex

  1. 引言

随着深度神经网络(DNNs)的出现,计算机视觉(CV)和自然语言处理(NLP)领域经历了革命性的变化,这些领域的大多数任务现在都是使用DNNs来解决的。虽然简单的ResNet[1]模型或BERT[2]可以在大多数现有的GPU上轻松训练,但大型模型如大语言模型(LLMs)和基础视觉模型的出现,使得训练和推理在运行时间和内存使用方面成为一个重大挑战,尤其是在部署到广泛使用的边缘设备如手机上。尽管这些大型模型性能很高,但它们通常具有复杂的架构,并且过度参数化严重[3]、[4]。例如,LLMs中的权重矩阵已被证明是低秩矩阵[5]。

为了解决大型模型的问题,已经提出了各种解决方案,例如高效的网络架构、压缩方法、剪枝、量化、低秩分解和知识蒸馏。近年来,引入了包括MobileNet [6]、ShuffleNet [7] 和BiSeNet [8] 在内的高效网络块。剪枝方法,作为一种压缩技术,旨在从模型中移除不必要的层和参数,对性能的影响最小。低秩分解方法通过矩阵分解来减少参数。与其它方法不同,知识蒸馏(KD)不修改网络的层或参数。在KD中,一个轻量级网络(学生)在更复杂架构和更多参数的复杂模型(教师)的监督下进行训练。这一概念最初由[9]提出,后来由[10]作为KD推广,引入了通过模仿教师的输出分布作为软标签来训练学生网络的想法。

除了大量参数外,大型模型在训练时还需要大量的 Token 数据。知识蒸馏(KD)的另一个目的是知识迁移,这可能涉及将来自源任务的知识迁移到缺乏足够 Token 数据的靶任务。此外,在数据隐私成为关注点的情况下,无数据知识蒸馏变得很有帮助。这种方法通过生成合成数据来解决这一问题,从而消除了存储敏感数据的需要。知识蒸馏的关键挑战在于确定要迁移的知识、选择合适的算法以及设计学生和教师架构。图1展示了通用教师-学生知识蒸馏方法的示意图。

picture.image

随着KD领域发表论文数量的显著增长以及其在各种任务和领域的广泛应用,已经有多篇综述论文从不同角度对KD进行了回顾。突出的工作[11]对KD进行了全面综述,从知识类型、算法和方案等方面进行了回顾,并包括了不同方法之间的比较。另一项值得注意的工作[12]概述了基于教师-学生架构的模型压缩,特别是针对视觉任务。[13]对KD进行了综述,并提出了一个基于大小和准确性的新指标来比较蒸馏方法,而[14]根据用于蒸馏的知识源类型对现有方法进行了分类。最近,[15]提供了一篇全面综述,探讨了与各种表示相关的知识优化目标,[16]通过提供KD方法的广泛回顾来更新了早期的综述。此外,他们简要调查了VLMs中的蒸馏,并讨论了在数据有限场景下蒸馏的挑战。

尽管这些调查从不同角度对论文进行了详细的总结,但它们也存在一些不足。首先,虽然这些调查分析了每个类别中现有的方法,但未能涉及最新的进展,尤其是在基于特征的蒸馏方法方面。尽管基于特征的蒸馏方法得到了显著增长,现在主导了最先进的方法,但许多近期的重要工作却被忽视。此外,自适应蒸馏和对比蒸馏算法讨论得很少。其次,随着基础模型和大语言模型(LLMs)的近期出现,这些调查在很大程度上忽略了它们将知识蒸馏到其他模型中的潜力。作为该领域最突出的调查,[11]的一个显著不足之处是缺乏对蒸馏在近年来受到广泛关注的新引入模型(如基础模型和LLMs)中应用的解释。第三,现有的调查中没有一项研究KD在3D输入(如点云)中的应用。随着3D任务在顶级研究场所受到越来越多的关注,与图像领域相比,缺乏足够的方法和模型凸显了KD作为训练该领域模型的有效方法的重要性。表1展示了现有调查与本研究之间的总结比较。

picture.image

在本工作中,对知识蒸馏进行了全面综述。这包括从不同角度回顾现有的知识蒸馏方法:蒸馏的来源、蒸馏算法、蒸馏方案、按模态的蒸馏以及知识蒸馏的应用。

所审查的来源包括基于logit、基于特征和基于相似度的蒸馏方法。与现有综述相比,本文提出了对这些方法的更全面分类,突出了近期进展,尤其是在基于特征的蒸馏方面。

关于算法,本文回顾了基于注意力、对抗、多教师、跨模态、基于图、自适应和对比蒸馏的方法。值得注意的是,自适应和对比蒸馏是两个近期出现的类别,尽管它们的重要性不容忽视,但在以往的研究中尚未被介绍。

关于方案,涵盖了离线、在线和自蒸馏方法。与之前的调查相比,新增了一个章节,该章节根据视频、语音、文本、多视图和3D数据等模态对现有的知识蒸馏(KD)方法进行分类。

在应用方面,对KD在包括自监督学习、基础模型、Transformer、扩散模型、视觉识别任务和大语言模型等重要领域的应用进行了全面探索。最后,提供了对突出方法的定量比较,并讨论了当前挑战和未来方向。

  • • 概述知识蒸馏作为研究领域的核心内容。这包括回顾基于蒸馏源、蒸馏算法、蒸馏方案、模态和蒸馏应用的方法。根据来源对最近的蒸馏方法进行分类,特别关注特征蒸馏方法,因其重要性和广泛应用。
  • • 介绍两种新的蒸馏算法:自适应蒸馏和对比蒸馏。这两个重要类别在蒸馏技术中获得了显著的关注,尤其是在基础模型如CLIP出现后,对比蒸馏的作用日益关键。回顾多视角和3D数据的蒸馏方法。由于知识蒸馏(KD)在3D任务中的重要作用,探索3D领域的蒸馏技术至关重要,然而在之前的综合调查中却常常被忽视。
  • • 探讨KD在自监督学习、基础模型、Transformer、扩散模型和大语言模型中的应用。从基础模型中进行蒸馏是一个热门话题,而在大语言模型中的蒸馏尤其关键,因为它们拥有大量的参数。

比较突出的蒸馏方法,并讨论KD的现有挑战和未来方向。

  1. 资源

蒸馏方法的主要组成部分是知识蒸馏的知识来源。可以采用各种知识来源进行蒸馏。在蒸馏的初始概念[10]中,使用了logits作为教师的最终输出。除了logit蒸馏[17]-[20]之外,中间层的激活[21]、神经元和特征[22]、[23]在指导学生网络方面发挥着关键作用。此外,通道[24]、实例[25]和类别[26]之间的关系和相似性提供了更高层次的信息,有助于教师向学生传递知识。在本节中,根据其蒸馏的知识来源,考察了KD方法。具体来说,现有方法被分为三类:基于logits的、基于特征的和基于相似性的,如图3所示。表2总结了基于logits和基于相似性的蒸馏方法,表1001展示了现有特征蒸馏方法的详细信息。随后,对每种类型的蒸馏进行了详细解释。

picture.image

picture.image

A. 基于Logit的蒸馏

KD最直接的数据来源是logits。logits是模型最后一层的输出,其核心思想是迫使学生模型模仿教师模型的最终预测,这些预测应包含教师的有用暗知识[10]。最后一层的预测对于每个任务都可能不同。例如,在分类任务中,logits包含每个类的预测,在检测任务中,它们包含预测坐标,而在姿态估计中,它们可以表示为 Heatmap 。一般来说,设

分别为教师和学生模型最后一层的logits。那么基于logits的蒸馏损失

定义为:

是衡量 logits 差异的度量标准。

KD的第一篇论文是针对图像分类提出的,其中通过在logits上应用softmax引入了软标签[10],[17]。这些输出分布,或软标签,提供了关于输入属于每个类别的概率信息。软标签的蒸馏损失函数表示为:

其中,ecp是softmax函数,

是控制logits软化的温度因子,

是Kullback-Leibler散度(KL)函数。通过优化上述目标,学生可以模仿教师的输出分布,并做出更好的预测。

尽管KD的初始概念简单且有效,近年来提出了许多基于logit的不同方法[18]、[19]、[27]、[28]。这些方法主要旨在在蒸馏之前对logit进行归一化[20]、[29]-[32],软化或平滑logit[28]、[33]、[34],或者解耦logit蒸馏损失[35]-[40]。[29]发现置信度的幅度对于KD并非必要,并提出了球形KD以减少教师和学生之间的差距。[30]表明使用恒定温度软化所有样本是不可行的,并提出了NormKD,根据样本logit分布的特征为每个样本定制温度。[31]和[32]分别研究了 Projector 和温度在KD过程中的作用。[20]建议通过将温度设置为logit的加权标准差并执行

-score预处理来标准化logit。另一方面,在尝试软化logit的方法中,[28]在蒸馏时对logit添加了一些噪声,[34]在KD之前软化logit,并使用了一个带有注意力模块的学习简化器。然而,大多数现有方法旨在解耦蒸馏损失。例如,[35]-[37]将目标类和非目标类分布的蒸馏分开。[39]对多尺度logit蒸馏中的logit进行 Reshape ,[40]在蒸馏物体的边缘和主体时使用不同的权重,[38]将KL解耦为加权MSE和包含软标签的交叉熵损失。

总结来说,logit蒸馏是一种简单直接的方法,可以类比为标签平滑[41]和正则化[42]、[43],旨在通过防止过拟合[11]来提升学生网络的性能。然而,由于logit依赖于预定义的类别,其应用范围局限于监督学习。此外,模仿教师网络的最后一层预测并不能揭示教师网络中间层的洞察。当教师网络和学生网络具有不同架构时,学生网络仅从教师网络的最终输出中学习可能会面临挑战。因此,除了logit蒸馏之外,还需要从教师网络中蒸馏中间输出和相似性,以促进有效的知识迁移。

B.基于特征的蒸馏

深度神经网络(DNNs)已被证明能够在其层中提取不同 Level 的特征,而这些来自网络中间层的多级表示使其成为特征蒸馏的有价值来源,这种蒸馏方法被称为特征蒸馏。这些中间表示提供了逐步信息,这些信息最终导致预测结果,这在诸如表示学习等任务中尤为有价值,在这些任务中,模型的输出是一个表示而不是原始分数。

特征蒸馏的概念最早由[22]进行探索,他们提出了向学生网络提供教师网络的 Prompt 。更具体地说,他们建议最小化教师和学生网络之间特征差异以实现它们的对齐。一般而言,设

分别为教师和学生网络的中间特征。教师和学生网络之间的一般特征蒸馏损失

可以定义为如下:

是用于对齐特征的相似性函数,而

是一个变换函数,用于匹配教师和学生特征之间的空间尺寸或通道数量。

受FitNet理念的启发,提出了几种基于特征的知识蒸馏方法。最初,AT [23] 通过最小化教师和学生特征图之间的

范数差异来引入注意力转移。[64]关注于通过最小化最大均值差异(MMD)来匹配教师和学生之间神经元选择性模式的分布。[21]转移了由隐藏神经元形成的激活边界,而[65]转移了特征的因素。[66]对特征蒸馏进行了全面改革,提出蒸馏预激活特征图,[67]通过应用softmax到特征通道并匹配教师和学生之间的分布来引入通道蒸馏。

随后,一些方法探索了跨层特征蒸馏。[68]介绍了知识回顾,其中教师模型的每一层特征图应与学生的对应层特征图以及所有前层特征相匹配。[69]提出了一种更通用的框架,其中学生的每个特征应与教师的所有特征相匹配,学习权重以确定特征图之间的连接。这个框架是FitNet的通用版本,其中对应特征的权重被设置为1。

近期,许多论文的研究重点转向了特征变换函数,强调了其在特征匹配中的作用,而不仅仅是匹配特征大小。[21] 训练了一个自动编码器来变换学生的特征,以更好地与教师的特征对齐。[70] 随机 Mask 学生特征图的一些像素,并使用两个卷积层来变换 Mask 的特征,将其与教师模型中的对应特征对齐,以鼓励学生生成与教师相似的特性图。[71] 证明了 Mask 不是必需的,一个简单的多层感知器(MLP)层用于变换学生的特征就足够了。

最近,[72] 将扩散[73]的概念与KD结合,在教师的特征图上训练扩散模型,并使用它来去噪学生的特征图。它将学生的特征视为教师特征的噪声版本,并采用扩散作为学生特征的转换。在另一项并行工作中,[74] 使用卷积块注意力机制(CBAM)[75]作为转换,对教师和学生特征应用通道和空间注意力以突出最具判别性的部分。它定义了教师和学生精炼特征图之间的均方误差(MSE)损失。

与所概述的研究路径并行,还提出了几种其他方法。[76]重新思考了原始特征对齐,并将FitNets [22] 的损失函数分解为幅度差异项和角度差异项。[77]将教师模型的特征与学生特征增强版本进行匹配,而[78]在频域中提炼特征。[79]提出了学生和教师特征之间的N-to-one匹配,[80]建议提炼相应特征会导致教师模型中某些层的忽视。相反,他们提出融合教师模型的所有特征进行提炼。

总结来说,基于特征的蒸馏方法更具泛化性,因为学生可以访问教师中间层的知识,提供更丰富的信息。尽管大多数最先进的方法都是基于特征的,并且导致了性能的提升,但在特征蒸馏中选择适当的层、对齐教师和学生对应的特征以及匹配特征大小都带来了重大挑战。这在教师和学生具有不同架构的情况下尤其如此,而随着基础模型最近的增长,这种情况变得很常见。在这种情况下,由于教师和学生网络之间的容量差距,性能可能会显著下降。此外,由于基于特征的方 法的性能会因层的选择、特征对齐和特征变换组件等因素而显著变化,比较不同方面的基于特征的方法并不简单。这些方法对这些因素的敏感性使得它们的比较和评估变得复杂。

C. 基于相似度的蒸馏

除了对数几率和特征蒸馏外,相似度蒸馏是另一种蒸馏形式,它为学生提供了由教师学习的数据推导出的结构知识和关系。与仅依赖于精确预测或特征值不同,相似度蒸馏通过考虑特征或实例之间的成对相似度来传递更高层次的知识。

其中开创性的工作之一是[52],该工作引入了流解算过程(FSP)。该方法涉及计算教师网络中两层特征的内积,并将平方L2范数定义为教师和学生网络之间每对层的成本函数。在相关工作中,[44]建议提炼不同示例中间表示之间的相对差异。后续研究提出了提炼logits的8-邻域相似度[84]以及提炼多个教师之间特征和logits的相似度[85]。

一般来说,教师和学生之间的相似度蒸馏损失

定义如下:

其中,

分别代表教师和学生特征/逻辑值,而

表示来自不同层或不同样本的不同特征/逻辑值。函数

用于计算教师和学生特征/逻辑值之间的相似性知识,

是一个相关函数,用于衡量教师和学生之间的相似度。

近期,相似度蒸馏受到了越来越多的关注,提出了许多方法,每种方法都关注不同层次的相似性,如实例/样本级相似性[25]、[45]-[47]、[49]-[51]、[62]、[86]、特征/通道级相似性[24]、[26]、[53]以及类别级相似性[48]、[54]-[57]。在实例级方法中涌现出了一些杰出的作品。例如,RelationKD[45]通过蒸馏不同样本特征之间的距离和角度相关性。[25]采用类似的方法,通过计算每个样本特征的内积来蒸馏批次内样本的相关性。[46]利用实例关系图,其中每个样本的特征表示为节点,关系表示为边。[59]的CIRKD是一种流行的方法,通过利用记忆库来考虑样本之间的全局关系,从而扩展了实例相似性。[51]通过基于存储特征的成对相似关系蒸馏,揭示更完整的实例关系。

在特征/通道级相似度方面,IFVD [26] 和 ICKD [24] 是两项开创性工作。前者为每个类别定义了一个原型,并提取了每个原型与像素之间的距离,而后者通过使用特征图与其转置的点积来创建通道相关性矩阵,以实现通道级相似度蒸馏。 [53] 强制学生通过最小化学生和教师之间的通道相关性图之间的距离来模仿教师。

在类别相似度方面,DistKD [55] 是一种流行的方法,通过提炼类内和类间相似度显著提升了学生的表现。[54] 通过将logits与其 Reshape 版本相乘来提炼类别的成对相似度。[56] 提出通过提炼位置信息和类间距离来进行语义分割。[57] AICSD 通过为每个类别引入类内分布,并随后使用KL来计算这些分布的成对相似度,从而提炼类间相似度。

除了提到的相似度 Level 外,空间相似度也被用于提取像素到像素或像素到区域的相似度[58]-[61],[63],[87]。[58]是首先提出将特征池化到九个区域并提取这些区域相似度的方法之一。CIRKD [59]关注整个图像中的像素到像素和像素到区域的相似度。 [60]转移多尺度像素区域关系,[61]提取教师相邻块之间的相关性,[87]采用 Patch Level 的相似度进行蒸馏,而[63]从局部和全局角度引入了logits相似度的蒸馏。

  1. 方案

在知识源之后,蒸馏方案是教师-学生架构中的关键选择之一。根据教师架构及其训练模式,蒸馏方法可以分为三种主要方案:离线蒸馏、在线蒸馏和自蒸馏。在离线方案中,包括大多数蒸馏方法,教师是一个更大的预训练网络。在线方案中,教师和学生同时训练,而在自蒸馏中,教师和学生是同一个网络。每种方案都有其应用场景:当有可用的较大预训练教师时,首选离线方案;当无法访问预训练模型时,最合适的是在线方案;自蒸馏在无标签数据的自监督场景中发挥着重要作用。图4展示了每种方案的整体示意图。在接下来的章节中,将解释每种方案的细节。

picture.image

A. 离线蒸馏

最直接的知识蒸馏方法是离线蒸馏,它包含两个阶段。首先,在数据集上对一个大型的教师模型进行预训练。然后,在学生模型的训练过程中,将教师的知识进行迁移,同时保持其权重冻结。

大多数现有的蒸馏方法遵循这种离线方法,前一小节中提到的多数研究也采用了这种技术。离线蒸馏最早在[10]中提出,此后提出了许多方法来扩展和改进它。然而,离线蒸馏存在一些局限性。一个主要挑战是加载大型教师模型所需的内存和计算开销,这在资源受限的环境中可能是一个重大问题。此外,由于教师模型保持固定,学生模型的性能本质上受到教师能力的限制。教师中存在的任何偏差也可能转移到学生模型上,从而可能影响其泛化能力[29],[55]。

为了解决这些问题,结合自适应蒸馏技术与离线蒸馏有助于提升学生的表现[57],[67],[88]。此外,在LLM蒸馏中,由于教师模型是专有的且仅可通过API访问,离线蒸馏成为唯一可行的方案。总之,尽管存在挑战,但由于其简单性和有效性,离线蒸馏仍然是知识蒸馏中最广泛使用的方法。

B. 在线蒸馏

与离线蒸馏不同,在线蒸馏的训练发生在单阶段。[89]表明,通过使用一组学生作为虚拟教师,在线蒸馏提供了优势,消除了对大型预训练模型的需求。早期方法,如[90]和[91],利用多分支logits的集成来创建即时教师,并据此训练学生。此外,[92]通过使用先前预测的平均值作为辅助指导来增强学习,扩展了这种方法。[93]引入了分支深度的变化,每个Hourglass网络模仿所有分支的最终 Heatmap 和融合 Heatmap 。[94]提出了一种相互对比学习的框架,在训练阶段使用与 Anchor 点相同的或不同网络的对比嵌入。

近期的研究主要集中在提升在线知识蒸馏的其他方面。[95] 探讨了通过减少教师和学生之间logit空间中的锐度和方差差距来增强知识蒸馏的方法。[96] 旨在实现更平坦的损失最小值,以提升学生模型的泛化能力和稳定性。[97] 通过利用单任务网络作为教师并采用自适应特征蒸馏和在线任务加权来增强多任务网络。类似地,[98] 将这种方法应用于多域任务,使用多个教师,其中每个教师模型专门针对一个特定域。

C. 自蒸馏

自蒸馏是一种独特的在线蒸馏形式,其中不存在更大的预训练教师模型;相反,教师和学生是相同的网络[99]-[105]。这一概念最初在[99]中提出,其中教师最初在标签上进行训练,随后,从不同的随机种子初始化一个新的相同模型,并在前者的指导下进行训练。在类似的方法中,[101]首先使用标签训练网络,然后利用标签和已训练模型的特征进行后续的训练步骤。[105]将硬目标和前一个epoch(教师)模型的预测的线性组合纳入当前epoch(学生)网络的训练。[100]将模型划分为几个部分,并将更深层的知识转移到较浅的部分,而[104]在多个不同层使用多个浅层分类器,并将知识从最深层的分类器转移到较浅的部分。[103]首次提供了自蒸馏的理论分析,[106]建立了自蒸馏与标签平滑之间的理论联系。

近期,提出了多种多样的自蒸馏算法[107]-[117],每种算法都为该问题提供了新的视角。一些方法利用模型的深层作为教师,将知识蒸馏到模型的浅层部分[116]、[117]。其他方法利用先前epoch的预测作为教师,监督后续epoch的模型[113]-[115]。[112]和[110]通过迭代剪枝和丢弃模型的部分来创建学生模型进行自蒸馏。[111]和[108]将自蒸馏的概念与图相结合,而[109]结合了数据增强、深度对比学习和自蒸馏。在此方法中,将同一样本的不同视图输入到模型中,以增强学习。

  1. 算法

除了来源和方案之外,还提出了不同的算法以有效地将知识从教师模型传递到学生模型。在本节中,将回顾最重要的算法。这些算法包括基于注意力的蒸馏、对抗蒸馏、多教师蒸馏、跨模态蒸馏、基于图的蒸馏、自适应蒸馏和对比蒸馏。

A. 基于注意力的蒸馏

基于注意力的蒸馏方法关注于通过注意力机制将丰富的信息从教师模型传递到学生模型,因为注意力可以反映神经元的选择性。注意力图突出了教师模型中特征的关键区域,并使学生模型能够自动且有效地关注模仿教师模型中的重要信息。这种方法不同于精确预测匹配,它允许学生模型专注于图像中更关键的区域,类似于教师模型。

首次探索注意力蒸馏的工作是《注意力迁移》(Attention Transfer,AT)[23],该工作提出了在学生和教师模型中聚合特征通道。通过最小化教师和学生注意力图之间的损失,教师模型的有效注意力可以被传递给学生模型。[54]将两个不同层的特征残差注意力图进行迁移,而[118]则使用自注意力模块自适应地聚合学生和教师特征图中的上下文信息。[34]通过在蒸馏前软化logits来简化学习过程,使用了自注意力。

几种方法专注于利用类激活图(Class Activation Maps,简称CAM)[119]或梯度加权类激活图(Gradient-Weighted Class Activation Maps,简称GradCAM)[120]通过转移更多注意力的区域来进行注意力蒸馏[121]-[123]。[124]在特征上应用通道自注意力和位置自注意力进行蒸馏,[125]采用不同类型的注意力在深度表示学习的不同层次上转移知识以进行知识蒸馏(KD),[126]通过将学生特征作为 Query 和教师特征作为键值来计算注意力,并通过随机失活实现Sparse注意力值。这些Sparse注意力值随后被用于重新加权每个教师-学生特征对的特征距离,以防止负迁移。

近期,提出了强大的注意力蒸馏方法[72]、[74]、[127]。DiffKD[72]建议在教师的特征上训练扩散模型,并使用它来去噪学生的特征,以突出蒸馏的重要区域。AttnFD[74]研究了注意力在语义分割蒸馏中的作用,并采用CBAM[75]注意力机制,在蒸馏前通过考虑通道和空间注意力来细化特征。这种细化专注于传递关键信息,并强调重要区域,尤其是在涉及小目标的场景中,尤其能提升学生网络的性能。

B. 对抗蒸馏

在利用教师信息进行知识蒸馏的过程中,一个有前景的方向是将该过程嵌入到一个受生成对抗网络(GANs)中的min-max博弈启发下的对抗框架中[128]。在此背景下,出现了三种不同的方法。首先,当原始数据不可用时,可以使用生成网络来合成教师的训练数据。其次,集成一个判别器,在知识迁移过程中通过区分教师和学生输出提供精细的指导。第三,应用对抗训练来最小化面对扰动样本时教师和学生模型之间的差异,从而推动学生从更具挑战性的例子中学习。总体而言,这些方法旨在提升蒸馏后的学生模型的性能和鲁棒性,下文将详细阐述这三种方法。

    1. 无对抗数据知识蒸馏:对抗蒸馏被应用于多种方式,具体取决于蒸馏过程的目标。一种方法是无数据蒸馏[129]-[141],在这种方法中,由于隐私问题、传输问题或法律限制等原因,无法访问教师模型的原始训练数据,因此生成对抗样本。对抗样本的生成要么是为了模仿原始数据集,要么是为了增强它,从而提高蒸馏过程的效果。这类方法[129]、[130]、[132]、[135]、[137]、[140]通常利用预训练的教师网络及其内部统计信息作为判别器来指导生成器。其他技术通过提出使用学生模型的指数移动平均(EMA)作为更可靠的学习来源[136]或将过程框架为元学习问题,以平衡知识获取和保留[134]来解决生成样本中的分布偏移。自我对抗策略[138]也被探索以在无数据环境中扩展鲁棒性。最后,[133]研究了在数据不平衡的数据集中进行无数据蒸馏的挑战,其中教师模型是在偏斜的类别分布上预训练的,引入了类感知策略来缓解这种不平衡。
    1. 循环判别器:在教师网络和学生网络之间更好地对齐预测分布,使用判别器已被证明是有效的。利用这一直觉,对抗蒸馏中普遍采用的一种方法是在教师和学生网络中引入判别器网络以对齐logits [142]-[145] 或中间特征表示 [26]、[58]、[146]-[153]。此外,一些方法采用三参与者框架进行判别 [154]、[155],从而增强了蒸馏过程的有效性。对抗蒸馏技术也已被扩展到标准网络之外,用于生成对抗网络(GANs)的压缩[156]-[159],从而促进了将重型生成网络蒸馏为更高效的版本。值得注意的是,判别模块不仅限于GAN框架,还被应用于扩散模型以减少推理步骤的数量,显著提高了其推理效率[160]-[163]。此外,还引入了High-Level技术来利用得分函数而不是最终输出或logits进行蒸馏,从而产生了如对抗得分蒸馏[164]和变分得分蒸馏[165]等方法。这些方法采用得分匹配和变分近似来实现知识迁移中的更高鲁棒性和效率。
    1. 对抗鲁棒知识蒸馏:如前所述,知识蒸馏(KD)将知识从大型预训练教师网络传递到较小的学生网络,但它并不固有地保证对对抗攻击的鲁棒性。对抗鲁棒蒸馏(ARD)[166]通过结合对抗训练与蒸馏来解决这一局限性。在ARD中,目标是最小化学生在对抗扰动下的预测与教师预测之间的差异,具体定义如下:

分别表示学生网络和教师网络,

是温度常数,

(计算方式为

)代表对抗性扰动。

基于ARD,已经开发出几种方法来增强鲁棒知识的迁移。一组方法通过细化教师预测的可靠性:RSLAD [167] 将公式(6)中的分类损失替换为教师和学生预测之间的KL损失,以利用对抗性训练的教师产生的鲁棒软标签,而内省式对抗蒸馏(IAD) [168] 和MTARD [169] 进一步允许对教师输出的选择性信任,并分别使用双教师来处理干净和对抗性场景。另一组方法通过同步梯度和通过IGDM [170] 和AdaAD [171] 自适应地推导扰动来增强对齐和适应性;在SmaraAD [172] 和IGKD-BML [173] 中,通过斯皮尔曼相关、类别激活映射和注意力引导蒸馏等手段,实现了额外的改进,以更好地模拟教师的决策过程。

High-Level策略通过引入新颖的训练方案来解决鲁棒性迁移的局限性。DARWIN [174] 结合了中间对抗样本和基于三元组的损失,以平衡自然、对抗和中间分布,而PeerAiD [175] 在训练学生模型的同时训练一个同伴模型以实现动态适应。此外,DGAD [176] 将数据集划分为标准和对抗蒸馏组,并使用一致性正则化来管理数据不平衡,STARSHIP [177] 和TALD [178] 通过使用Stein变分梯度下降的Teacher对抗局部分布来迁移统计属性和采样多样化的对抗样本,进一步增强了鲁棒性。这些分组技术共同提升了学生在对抗环境中的鲁棒性和整体性能。

C. 多教师蒸馏

与通常的蒸馏场景不同,其中学生网络使用单个教师进行训练,多教师算法旨在通过融合多个教师的知识来训练学生网络。这种方法通过利用具有不同知识的教师集成,有可能提高学生的性能,从而增强学生的泛化能力。这一概念最初在[10]中提出,该研究利用多个教师的logits平均值作为软标签。后续工作探讨了这一主题的变体:[44]采用了投票策略,而[28]建议通过添加噪声扰动教师的logits,将这些扰动输出视为不同的教师,可以作为正则化器。[179]使用了一个教师池,每次蒸馏时随机选择一个教师。[180]训练了多个教师,每个教师专注于数据集的一个子集,并采用投票系统来蒸馏每个专家教师的知识。[99]采用了一种逐步策略,其中学生在每个阶段都作为后续步骤中学生的教师。

近年来,介绍了多种多教师方法,每种方法都针对不同的问题。由于学生与每位教师之间的能力差距,自适应地管理知识聚合带来挑战 [181]-[186]。[184] 采用自适应温度和多样化的聚合策略来提升蒸馏性能,而 [185] 将KD损失中的vanilla部分分离,并根据教师预测的熵为其分配自适应权重。[186] 利用数据关系知识动态分配教师权重,[182] 则采用元网络有效地为每位教师进行加权。

其他方法已被提出,以有效地聚合教师的知识进行蒸馏[187]-[191]。[188]训练了两个不同的教师,一个用于蒸馏复杂特征,另一个用于转移一般决策特征。[189]和[190]向学生网络引入了额外的分支,以学习教师的特征,而[191]建议了一种从多个教师中逐步蒸馏知识的方法。多教师蒸馏的另一个重要研究方向是使用集成预训练教师,称为知识融合(KA)[192]-[199]。通过KA,公开可用的训练网络可以在多教师蒸馏的背景下被重新利用。一些方法涉及使用多个教师,每个教师都在不同的数据集[174]或任务[187]、[192]上训练。[193]最初从共享相同子任务的异构教师中提取特定任务的知识,然后将提取的知识结合构建学生网络。[199]提出了一种基于不确定性抑制的KA框架,而[194]建议从每个来源的预训练分类器以及一组 未标注 的通用数据中训练一个统一的分类器。

总结来说,多教师蒸馏为学生网络提供了来自多个教师的更广泛、多样化的丰富信息,从而增强了学生的泛化能力。然而,有效聚合教师的知识、确定每个教师在蒸馏中的个体贡献以及管理复杂性和计算成本是多教师蒸馏方法面临的主要挑战。

跨模态蒸馏

picture.image

在许多场景中,某些模态具有丰富的标注,而其他模态则缺乏足够的标签。跨模态知识蒸馏(CMKD)通过利用标注良好的模态来提升标注较少的模态的学习效果,从而解决这一挑战。该技术使得模型在训练过程中能够从额外的模态中受益,即使在推理时该模态不可用,模型仍能保持功能。2016年,[200]提出了一种创新的框架,将高资源模态的知识转移到低资源模态,该方法自那以后在众多研究中得到了广泛应用。图5展示了跨模态蒸馏的整体概念,表4总结了现有方法。

picture.image

CMKD的早期方法是在训练期间使用两个并行流处理两种模态,然后在推理阶段使用单个流生成与教师模态相似的特征图。[201],[202]将此方法应用于从RGB生成深度图。后续工作集中于改进学生输出的模仿,以匹配教师模态并缩小模态之间的差距[203],其中[204]使用了两个学生网络,每个网络都试图复制另一个网络的输出。[205]采用了事件与帧之间的双向蒸馏。

[206]中提出的模型在训练阶段学会了从成对的2D输入中生成3D特征,并在推理阶段使用这些特征。文献[207]-[210]中的结构由独立的编码器和解码器组成,用于从激光雷达和RGB输入中提取特征,旨在对齐两种模态的不同特征,并将激光雷达的空间知识提炼到RGB中。[211]使用了相同的技巧,用雷达代替了激光雷达,雷达提供了较低的空间信息,并与RGB一起使用。与使用 Voxel 进行对齐不同,[212]从两个网络中生成深度和语义特征,旨在使它们相似。[213]在学生网络中使用了共享模型来从热成像和RGB输入中提取特征,而教师则使用了两个更重的模型。文献[214]将过程分解为特定任务的组件,并允许从网络右侧的光流效应中提取知识。

为了在文本和图像模态之间提炼知识,[215]分别提取了特征,并在对齐实例上对这些特征进行了训练,使用软对齐来监督学生网络。[216]应用了 Mask 技术,并使用文本特征来引导网络预测 Mask 图像。[217]对音频和视频帧进行了 Mask 处理,试图重建它们以实现两种模态的良好表示并有效地对齐这两个特征。

E. 基于图的蒸馏

基于图的知识蒸馏通过引入特征或实例之间的高阶关系信息,扩展了传统的知识蒸馏方法。与主要依赖成对相似度的方法不同,基于图的方法利用图结构作为通用框架来捕捉相互依赖的关系。在这些方法中,特征或实例被表示为顶点,而它们之间的依赖关系通过边权重进行建模。这些图结构封装了局部和全局关系,使得从教师模型到学生模型能够传递更丰富、更有结构化的知识[25]、[45]-[47]、[85]、[86]、[218]-[223]。此外,图结构可以有效地用于建模蒸馏过程中的信息流,特别是在涉及多个教师模型的情况下,通过调节知识传递过程[224]、[225]。

近年来,图神经网络(GNNs)的兴起引起了广泛关注,尤其是在数据挖掘和知识图谱建模领域。GNN蒸馏主要用于实现两个主要目标[226]:提升原始教师模型的性能(性能提升[227]-[235])或创建GNN的轻量级版本(压缩)。后者涉及将更大、更复杂的GNN蒸馏成一个紧凑高效的GNN[236]-[239]或甚至一个MLP[240]-[243],使蒸馏模型适用于实时应用。为了实现这些目标,教师和学生之间传递的信息通常包括logits[227]、[228]、[231]、[232]、[236]、[238]-[241]、[243]、特征表示[227]、[230]、[232]、[234]、[238]以及图结构本身[228]-[230]、[235]、[237]、[242]、[243],它封装了图中元素之间的连接性。这些组件共同实现结构化知识的有效传递,确保蒸馏模型在满足其各自的性能或效率目标的同时,保留基本特征。

F. 自适应蒸馏

自适应蒸馏最近受到了越来越多的关注。通过动态调整蒸馏过程的参数,而不是维持一个恒定的设置,可以增强知识迁移的有效性。表5总结了不同类别下的自适应蒸馏方法。

picture.image

自适应蒸馏可以以各种层次和形式表现出来,例如自适应损失定义[49]、[244]、[245]、自适应损失加权[57]、[88]、[246]、自适应教师剪枝[18]、[219]、[247]-[249],以及根据样本重要性动态加权蒸馏的不同方面[250]-[255]。

一个主要问题是教师网络可能会产生不正确的输出,这些输出不应直接传递给学生。为了解决这个问题,一些方法引入了自适应损失。[244]提出了一种自适应交叉熵损失,它用真实标签替换不正确的概率图。[49]提出了一种校准 Mask ,以防止教师模型的错误表示干扰学生模型的训练,而[245]根据两个教师网络的正确性和交叉熵幅度,整合了它们的积极预测分布,为引导学生网络提供更准确的输出分布。

此外,一些研究深入探讨了在整个蒸馏过程中改变蒸馏损失的影响。[88]是首批探索减少教师网络对学生影响以提升性能的策略之一。[246]指出,随着训练的进行,蒸馏损失的影响应该逐渐减弱,学生逐渐在训练过程的后期接管控制。[57]引入了一个权重衰减过程,将相似度蒸馏与普通蒸馏相结合。

鉴于教师模型和学生模型之间的容量差异,一些研究试图缩小这一差距。一个显著的例子是TAKD [18],它使用教学助手网络作为中介教师,以促进学生模型更好地理解知识。同样,[219]在蒸馏之前使用辅助教师模型,而[248]和[249]分别提倡在蒸馏之前进行通道和特征剪枝。[247]实现了过滤器剪枝以减少通道数,并采用课程学习策略从简单到具有挑战性的层次蒸馏层。

最后,某些方法根据区域或样本的重要性自适应地进行蒸馏。文献[251]从每个训练样本中提取详细的上下文特定信息,文献[253]自适应地识别混淆样本,文献[254]根据每个样本的能量水平调整温度参数。文献[250]在特征蒸馏中引入了自适应权重,而文献[255]使用真实信息来屏蔽对数蒸馏中的关键区域。文献[252]计算教师网络和学生网络之间的通道差异,将它们转换为蒸馏权重,文献[256]在蒸馏过程中,对教师和学生模型在训练过程中差异更明显的层的损失赋予更大的权重。

G. 对比蒸馏

picture.image

对比学习旨在通过在特征空间中对相似(正样本)和不同(负样本)样本进行对比来学习表示[257]。在KD中,大多数研究采用基于特征的对比学习方法,其中 Anchor 点、正样本和负样本集是通过教师和学生模型提取的特征来定义的,如图6所示。对比蒸馏损失可以表示为:

Anchor 点

通常为学生嵌入的特征,正样本

为相同输入对应的教师特征,而负样本

则是来自其他数据点的无关特征。这些方法采用对比损失来对齐学生的特征空间与教师的空间,从而实现高效的知识迁移。其他研究[258],[259]通过引入新的对比损失函数来创新,这些函数能够解决诸如噪声负样本和教师与学生模型之间容量不匹配等挑战,从而增强了知识蒸馏过程的鲁棒性和有效性。

对比蒸馏因其通过对比学习技术增强知识迁移的能力而受到广泛关注。Tian等人[260]通过采用对比损失来对齐教师模型和学生模型的特征,开创了这一方法。在此基础上,WCoRD[261]引入了一种方法,该方法结合了Wasserstein距离的原生形式和对偶形式。虽然对偶形式通过最大化互信息确保了全局知识迁移,但原生形式则专注于小批量内的局部特征对齐,提供了一种平衡的特征对齐和蒸馏方法。

在语义分割领域,[259]通过利用对比损失来对齐教师和学生特征图,解决了密集像素级表示的挑战。同样,[262]专注于单图像超分辨率领域。他们的方法利用对比损失从中间教师特征中提炼统计信息到轻量级学生网络中,使得在最小计算资源下实现高分辨率图像重建成为可能。

蒸馏大型语言-图像预训练模型的问题,例如CLIP [263],在[264]中得到解决,该研究开发了一个包含图像特征对齐和教育注意力模块的新框架。该方法通过对比损失有效地对齐多模态特征。为了解决句子嵌入的挑战,DistilCSE [258] 提出了一种压缩大型对比句子嵌入模型的方法。

在医学影像领域,CRCKD [265] 结合了类引导的对比蒸馏和类别关系保持技术,以增强类内相似性和类间差异。使用类别质心和关系图确保了在数据不平衡的情况下也能有效进行知识迁移。

在弱监督视觉定位领域,[266]利用由目标检测器生成的伪标签。通过应用对比损失进行区域-短语匹配,他们的方法消除了推理过程中目标检测的需求,简化了流程。[267]使用CRCD解决基于关系的知识迁移问题。通过最大化 Anchor -教师和 Anchor -学生关系分布之间的互信息,他们的框架通过关系对比损失对样本间关系进行对齐。

结论部分,将对比学习融入蒸馏方法在特征对齐、关系知识保留以及局部和全局信息的整合方面展现出卓越的能力。对比蒸馏在解决多模态对齐、密集特征映射和高效模型压缩等挑战方面的熟练程度凸显了其多功能性。此外,基于对比学习的蒸馏方法固有的灵活性使其能够有效解决包括数据集不平衡、标签噪声和计算限制在内的关键问题。

  1. 模态

尽管大多数蒸馏方法都是针对计算机视觉任务和图像提出的,但KD(知识蒸馏)已被有效地应用于其他模态,例如3D/多视图数据、文本、语音和视频。本节对每种模态的蒸馏方法进行了综述,并根据各自的任务对其进行分类。

A. 三维输入

知识蒸馏技术在提升各种与3D相关的任务中发挥着重要作用,包括目标检测、语义分割、形状生成和形状分类。本节探讨了知识蒸馏在3D数据中的应用,突出了创新方法,并根据任务领域对贡献进行了分类。

picture.image

图7展示了知识蒸馏技术成功应用的关键任务、领域和3D数据类型。表6总结了基于蒸馏源每种任务的蒸馏方法。

picture.image

3D目标检测:3D目标检测涉及使用点云、 Voxel 网格和多角度图像等数据在三维空间中识别和定位物体。知识蒸馏(KD)通过将更复杂模型的知识迁移到更简单的模型中,利用各种方法和模态,从而增强这一过程。这种方法在包括自动驾驶和多摄像头检测在内的任务中提高了准确性和计算效率。基于知识蒸馏的3D目标检测的最近进展主要集中在三个主要领域:基于激光雷达的、仅使用摄像头(单摄像头和多摄像头)以及跨模态,每个领域都针对3D感知的独特挑战。

激光雷达:精确的空间和深度感知对于自主系统至关重要,然而,如Sparse性和遮挡等挑战通常会降低3D目标检测的性能。为了解决这些问题,已经提出了几种KD框架[268]-[276]。X-Ray Distillation[274]在由聚合激光雷达扫描得到的目标完整帧上训练教师模型,以将知识转移到学生模型,从而提高其处理Sparse数据和遮挡的能力。同样,RadarDistill[275]通过对齐雷达和激光雷达特征来处理Sparse性和噪声。此外,RDD[271]通过对齐特征表示和细化输出,减少了教师模型和学生模型之间的不匹配。

此外,PointDistiller [272] 关注点云中的局部几何结构,通过动态图卷积和重新加权学习来关注重要点和 Voxel 。itKD [273] 通过特征降维和相互细化来转换粗粒度和细粒度的几何特征。此外,SRKD [276] 通过通过密度和形状相似性对实例特征进行对齐,弥合由天气变化引起的领域差距,并确保教师模型和学生模型之间预测的一致性。LiDAR Distillation [268] 也通过从高束激光雷达教师模型到低束激光雷达学生模型的蒸馏,解决由变化的激光雷达束密度引起的领域差距问题。

此外,另一项研究[269]引入了两种新颖的技术:关键位置对数KD,专注于增强蒸馏的关键区域,以及教师引导初始化,通过权重继承将教师的特征提取能力转移到学生模型。然而,如Sparse性、随机性和密度变化等内在挑战限制了常规蒸馏算法的有效性。为了克服这些限制,PVD[270]利用了点级和 Voxel 级知识的优势,以解决激光雷达目标检测任务中的这些挑战。

单摄像头(单或多摄像头):仅使用摄像头实现精确的3D目标检测具有挑战性,因为缺乏深度信息。为了解决这个问题,FD3D [277] 采用选择性 Mask 生成蒸馏和基于 Query 的焦点蒸馏来增强透视和鸟瞰视图(BEV)空间中的目标特定学习。类似地,X3KD [210] 集成了跨任务、跨模态和跨阶段的蒸馏,结合了如激光雷达特征对齐和对抗训练等技术以实现密集监督。

跨模态:将基于激光雷达的模型中的空间和深度知识迁移到成本效益更高的摄像头雷达或仅摄像头替代方案中,可以增强多传感器系统,提高检测性能并解决传感器不一致性问题。CRKD [211] 在BEV空间中将知识从激光雷达-摄像头教师迁移到摄像头雷达学生。类似地,DistillBEV [209] 使用区域分解、自适应缩放、空间注意力和多尺度蒸馏,将基于激光雷达的教师中的3D几何知识迁移到多摄像头BEV学生。此外,CMKD [207] 将基于激光雷达的教师中的空间知识迁移到单目学生,利用BEV特征和教师预测来解决深度估计挑战。此外,UniDistill [208] 提出了一种通用的KD框架,支持多个模态对(激光雷达到摄像头、摄像头到激光雷达、融合到摄像头和融合到激光雷达)。该模型采用BEV作为共享表示,以对齐跨模态的教师和学生检测器。

3D形状分类:点云分类是另一个可以应用教师-学生框架的关键任务。FAD [278] 提出了一种新的损失函数,该函数结合了对数似然蒸馏和特征蒸馏。JGEKD [281] 提出了一种基于联合图熵的损失函数,以解决分类任务中非独立同分布的3D点云数据带来的挑战。为了提高效率,张等人 [280] 引入了一种包含负权重自蒸馏方法的离线蒸馏框架。[279] 采用自蒸馏框架进行不完整点云分类。

三维语义分割:KD通过有效地将高容量教师模型的知识迁移到轻量级学生模型,提升了点云分割的准确性和鲁棒性[124]、[206]、[282]-[291]。

为了解决分割中的Sparse性、随机性和密度变化等挑战,[287] 提出了点至 Voxel 的知识蒸馏方法,该方法在点 Level (细粒度细节)和 Voxel Level (粗粒度结构信息)上提炼了教师模型的概率输出。邱等人[282] 提出了一种多到单的知识蒸馏框架,该框架融合了多扫描信息以处理困难类别,并采用多级蒸馏策略,包括特征、logit和实例感知相似度蒸馏。

有限标注数据是大规模点云语义分割的另一大挑战。尽管为这类数据集标注点级标签的成本高昂且耗时,现有方法通常依赖于需要密集标注的完全监督方法。PSD [289] 通过引入扰动分支并以自蒸馏的方式利用基于图的一致性来解决这个问题。Seal [286] 是一个自监督学习框架,它从现成的视觉基础模型中提取知识用于点云分割。PartDistill [291] 提出了一种从视觉语言模型中提取知识到3D分割网络的方法。

3D域适应:无监督域适应(UDA)在目标域与 Token 源域差异较大时,由于噪声、遮挡或缺失元素等因素,难以有效执行。[309]提出了一种自蒸馏UDA技术,用于生成目标域的判别性表示,并利用基于GNN的在线伪标签细化。[310]在UDA中引入了跨模态特征融合,用于语义分割。[311]提出了一种用于3D点云域适应的自集成网络,该网络利用半监督学习框架,从 Token 源域到 未标注 目标域进行有效的知识迁移。

三维深度估计:三维深度估计对于准确理解场景的几何结构至关重要,它使感知系统能够重建空间关系和物体结构。MVP-Net [292] 通过在多视角、跨模态蒸馏方法中使用深度估计来增强重建效果,以实现更好的点云上采样。KD-MonoRec [294] 利用单目RGB图像作为输入,并采用知识蒸馏(KD)和点云优化来提高深度估计。LiRCDepth [293] 利用RGB图像和雷达点云,并通过KD提出了一种轻量级深度估计模型。

三维表示学习:表示学习侧重于从数据中提取有意义的表示。在三维领域收集大量高质量的标注数据集是一个成本高且耗时的过程,而预训练三维模型需要访问大规模三维数据集,这并非易事。然而,一些工作,如DCGLR[296],已经有效地利用知识蒸馏(KD)仅使用三维数据来应对这一挑战。然而,鉴于二维领域有大量大规模数据集和强大的基础模型可用,一些方法[295]、[297]、[298]、[300]、[301]、[303]、[304]、[306]-[308]已经利用这些能力来学习三维点云的丰富表示。

[295] 引入了对比学习,将2D语义知识迁移到3D网络。SLidR [297] 提出了一种自监督的2D到3D表示蒸馏框架,该框架使用由超像素驱动的对比损失来对齐图像和激光雷达特征,从而实现自动驾驶中3D感知模型的有效预训练。[299] 提出了一种既适用于单模态也适用于跨模态设置的框架。

3D表示可以通过文本[305]或通过点云序列来学习,如[302]中所示,该研究开发了一种使用KD进行自监督学习4D点云表示的方法。

3D识别:视觉位置识别是计算机视觉和机器人学中的一个重要任务,其目的是根据摄像头图像和激光雷达点云等视觉输入识别之前访问过的位置。PointMCD [313] 和 DistilVPR [312] 是该领域中的两种创新跨模态KD框架,其中PointMCD采用多视角框架,这在第五节B中进行进一步讨论。

三维补全:点云补全是指恢复缺失的几何细节的过程。KD有助于从非配对数据中迁移学习先验知识,减少对大型标注数据集的需求,并在数据稀缺场景中提升补全性能。

形状补全:形状补全旨在从遮挡的输入点云中重建完整的点云。

RaPD [315] 是首个利用先验蒸馏的半监督点云补全方法。[316] 使用损失蒸馏,[322] 提出了一种分层自蒸馏点云补全方法。

场景补全:由于物体或其周围环境的遮挡,激光雷达传感器经常捕获不完整的点云,这使得大规模3D场景解释变得具有挑战性。KD如[314]、[317]、[323]、[324]中所述,可以增强其性能。

深度补全:深度补全是从Sparse或不完整的深度测量中估计密集深度图的过程,例如从激光雷达传感器获得的测量值。KD可以帮助预测缺失的深度信息[318]-[321]。

三维配准:KD可以通过将大型复杂模型的知识迁移到小型高效模型中,同时保持性能,从而增强点云配准 [325],[326]。

其他3D任务:KD被应用于各种其他3D任务,并采用了不同类型的蒸馏方法。这包括生成[327]、风格化[328]、采样[330]以及一致性检测,如[329]中所述,该研究利用了所有类型的KD

B. 多视角输入

近年来,多视角学习已成为解决复杂任务(如3D目标检测和重建)的有力方法。虽然利用来自多个视角的信息使模型能够实现更准确和鲁棒的结果,但数据模态的多样性和在不同模态之间迁移知识的挑战仍然很大。为了应对这些问题,一些研究探索了新的知识蒸馏(KD)技术,这些技术允许模型在不同视角或模态之间共享和细化知识。本节回顾了多视角蒸馏方法的最新进展,按照任务和模态对其进行分类。现有工作可以大致分为两大类:3D目标检测和3D形状识别,其他任务则由个别研究代表。

三维目标检测:三维目标检测是多视角学习的一个焦点,众多研究提出了新颖的蒸馏技术来提升性能[209],[210],[333]-[335],[340],[341]。为此,SimDistill[341]引入了一种基于激光雷达-摄像头融合的教师模型和基于模拟融合的学生模型用于多模态学习。通过保持相同的架构并集成几何补偿模块,学生模型仅从多视角图像中学习生成多模态特征。

[210] 提出了一种利用跨任务和跨模态蒸馏的综合框架,用于多摄像头3D目标检测。从实例分割教师中进行的跨任务蒸馏避免了模糊错误传播,而跨模态特征蒸馏和对抗训练则利用基于激光雷达的教师来细化3D表示。跨模态输出蒸馏进一步提高了检测精度。

[209] 提出了一种KD框架,用于将基于BEV的学生特征与基于LiDAR的教师特征进行对齐,相较于基于LiDAR的方法,解决了深度和几何推理问题。

跨模态KD通常遭受特征分布不匹配的问题。FSD方案[340]消除了对预训练教师和复杂策略的需求。

BEV-LGKD [333] 提出了一种基于LiDAR引导的KD框架,用于多视角BEV 3D目标检测。通过将LiDAR点转换为BEV空间并生成前景 Mask ,该方法在推理过程中无需LiDAR即可指导基于RGB的BEV模型。此外,还引入了深度蒸馏技术以提升深度估计,从而增强BEV感知性能。

BEVDistill [334] 提出了一种跨模态的BEV蒸馏框架,用于多视图3D目标检测,通过在BEV空间中统一图像和激光雷达特征,并在教师-学生范式下自适应地跨非同质表示传递知识。

STXD [335] 提出了一种用于多视角3D目标检测的结构和时序跨模态蒸馏框架。该框架通过正则化交叉相关来减少学生特征组件中的冗余,同时最大化跨模态相似性。此外,它使用相似图编码帧间的时序关系,并采用响应蒸馏来增强输出 Level 的知识迁移。

3D形状识别:3D形状识别是另一个多视角蒸馏技术被应用于弥合2D与3D表示之间差距的关键领域[313],[342]。PointMCD[313]通过多视角跨模态蒸馏框架,将知识从教师模型蒸馏到点编码器学生模型,从而连接2D视觉和3D几何领域。Group Multi-View Transformer (GMViT)[342]解决了基于视图的3D形状识别方法的局限性,这些方法通常难以处理大型模型,而大型模型对于内存受限的设备来说不适用。为了克服这一点,GMViT引入了一个大型高性能模型,旨在增强较小学生模型的能力。

其他任务:除了3D目标检测和3D形状识别之外,多视角蒸馏技术还被应用于一系列其他任务,包括多视角图像分类[332]、基于视觉的机器人操作[336]、多视角BEV检测[337]、多视角立体深度重建[331]、语义分割[338]、人类动作识别[339]以及医学应用[343]。这些研究总结如下:

MTS-Net [332] 将知识蒸馏(KD)与多视角学习相结合,重新定义了教师模型和学生模型的角色。这种端到端方法优化了视角分类和知识迁移,例如MTSCNN通过改进多视角特征学习来提升图像识别能力。

在机器人操作领域,[336]通过将具有多个摄像机视角的教师策略训练的知识迁移到使用单个视角的学生策略,从而改进了基于视觉的强化学习。

[337] 通过将学生的输出与教师的输出对齐,采用时空蒸馏和BEV响应蒸馏,解决了多视图BEV检测方法的计算复杂性。

监督式多视角立体匹配方法由于缺乏 GT 深度数据而面临挑战。自监督KD-MVS框架[331]使用经过光度一致性和特征度量一致性训练的教师,以概率方式将知识迁移到学生模型。

MVKD [338] 提出了一种用于高效语义分割的多视角KD框架。该框架从多个教师模型中聚合知识并将其转移到学生模型。为确保多视角知识的一致性,MVKD采用多视角协同调优策略。此外,它还提出了多视角特征蒸馏损失和多视角输出蒸馏损失,以有效地将知识从多个教师模型传递给学生模型。

MKDT [339] 提出了一种用于人类动作识别的多视角 KD Transformer 框架,解决了不完整多视角数据的问题。该框架包括一个教师网络和一个学生网络,两者都使用具有偏移窗口的分层视觉 Transformer 来有效地捕捉时空信息。

MT-MV-KDF [343] 提出了一种用于心肌梗死检测和定位的新型多任务多视图KD框架。多视图学习从不同的视角提取心电图特征表示,而多任务学习捕捉相关任务之间的相似性和差异性。

总之,多视角蒸馏技术在众多任务中展现出巨大的潜力,从3D目标检测和形状识别到机器人操作和医疗诊断等专门应用。如表7所示,这些方法的多样性强调了它们对各种模态和挑战的适应性。

picture.image

C. 文本输入

知识蒸馏已被广泛应用于各种自然语言处理(NLP)任务中。这项技术在NLP中尤其有价值,因为最先进的模型,如BERT和GPT,规模庞大。虽然这些模型具有高度的准确性,但在资源受限的环境中部署可能不太实用。通过将这些大型模型学习到的丰富表示蒸馏成轻量级版本,知识蒸馏(KD)有助于在神经机器翻译、问答、文本生成、事件检测、文档检索、文本识别、命名实体识别、文本摘要、自然语言理解、情感分析和文本分类等任务中保持高精度。

神经机器翻译(NMT):尽管NMT在性能上显著优于传统的统计方法,但像transformer这样的大型模型在计算上非常密集。知识蒸馏(KD)通过将教师模型的输出提炼给学生模型,实现了在降低计算成本的同时保持可比的翻译质量。这有助于开发更高效和可扩展的NMT解决方案[344]-[348]。问答(QA):在问答系统中,KD将答案预测和中间表示,如注意力分布,从大型教师模型转移到较小的学生模型。这个过程有助于在最小化计算成本的同时保持高精度,使问答系统更加高效并适用于实际应用[349]-[353]。

文本生成:在文本生成领域,KD技术能够将教师模型的生成能力迁移到较小的学生模型中,训练学生模型模仿教师模型的词汇分布和语言模式。[354]着重于利用BERT的上下文理解能力进行高效的文本生成,而[355]通过结合蒸馏和GANs技术,增强了文本的流畅性和多样性。

事件检测:KD在事件检测中应用于从更大的、更复杂的模型中提炼知识到更小、更高效的模型中。[356]通过从高资源模型提炼知识到低资源模型,提高了跨语言的事件检测,而[357]则利用蒸馏技术保留学习到的知识,同时适应新事件。与此同时,[143]采用对抗性模仿来提高检测精度。

文档检索:在文档检索中,KD将大型教师模型的排名和匹配能力转移到较小的学生模型上,通常复制相关性得分和交互特征[358],[359]。

文本识别:KD在文本识别中促进了从教师到学生的视觉和上下文特征的迁移,使学生能够在降低计算成本的同时保持高识别精度 [360],[361]。

命名实体识别(NER):在NER中,KD帮助较小的学生模型从教师的上下文理解和分类能力中学习[362],[363]。

文本摘要:KD在文本摘要中的应用将摘要能力从教师转移到学生,训练学生复制输出序列和概率分布[364]-[366]。

自然语言理解(NLU):NLU中的KD将教师模型的丰富语言理解转移到学生模型。在NLU中,学生模型学习复制教师模型在各种任务中的输出概率和内部表示,确保高性能的同时降低计算成本[367]-[369]。

情感分析:在情感分析中,KD将教师的情感分类能力提炼给学生,训练其模仿教师的概率分布和决策模式[370],[371]。

文本分类:在文本分类中,KD将分类能力从教师转移到学生,使学生能够模仿教师的特征表示和输出概率[372],[373]。

D. 语音输入

深度神经网络声学模型在语音识别任务中取得了显著的成就;然而,其复杂性给在计算资源有限的设备上实时部署带来了挑战。随着对嵌入式平台上高效和快速处理需求的增加,传统的大规模模型往往难以满足。为此,知识蒸馏(KD)在各种与语音相关的任务中引起了广泛关注,包括语音识别、语音增强、说话人识别与验证、语音翻译、语音合成、语音分离、口语语言识别与理解、深度伪造语音和欺骗检测、音频分类和 Token 、口语问答和对话式人工智能,以及音频标题和检索。

语音识别(ASR):知识蒸馏(KD)在增强ASR模型中起着重要作用,通过将高精度教师模型的专业知识迁移到学生模型,支持快速推理同时最小化准确度损失。这也有助于领域自适应,使得ASR在较差的声学环境中或专家领域(如医学转录[374]-[385])中也能有效应用。

语音增强:在语音增强中,KD通过高保真语音表示和模型压缩实现去噪[386]-[390]。

语音识别与验证:在语音识别和验证中,KD有助于降低模型复杂度,同时保留说话人身份特征,从而实现快速安全的身份验证。此外,KD还能增强对对抗攻击和跨域变化的鲁棒性,在嘈杂或多语言环境下提升性能[391]-[397]。

语音翻译:KD通过实现高资源语言与低资源语言之间的知识共享,提高了多语言翻译模型的效率[398]-[401]。这增强了翻译流畅性,同时保持了实时应用中低延迟。

语音合成(文本到语音):在语音合成中,KD降低了深度生成模型的复杂性,同时保留了自然语音输出[402]-[404]。它还有助于提炼表达特征,使合成声音更加接近人类,同时降低计算成本。

语音分离:KD将复杂的分离模型压缩成更小的网络,同时保持说话人区分度[405],[406]。它使得在低功耗设备上实现实时说话人和鸡尾酒会效应的降低成为可能。

语音语言识别与理解:在此任务中,KD通过在资源丰富的多语言教师模型[407]-[413]之间转移信息,实现了低资源语言中的语言适应性。因此,这种机制赋予了轻量级、加速的模型在语言识别和语音对话理解方面实现高性能的能力。

深度伪造语音与欺骗检测:随着对合成语音欺诈的担忧日益增加,对深度伪造检测的可靠方法的需求也在增长。KD通过在一系列深度伪造语音数据集上训练的DNN之间转移知识,增强了轻量级检测架构的抗欺骗能力[414]-[419]。

音频分类与标注:KD强化了与声音事件检测相关的特征学习,提升了模型效率,并允许在物联网和边缘AI平台等嵌入式平台上部署[420]-[425]。

口语问答与对话式AI:KD通过在深度、长序列的Transformer模型中提炼上下文信息,将其映射到高效、快速生成答案的模型上,从而实现高效的问答 [380],[426]-[428]。

音频标题与检索:在此任务中,KD技术使得深度音频-文本嵌入模型在保持泛化能力的同时实现压缩,使其适用于高效的多媒体搜索架构[429],[430]。

E. 视频输入

知识蒸馏在图像和语言任务中得到了广泛应用,但其视频应用潜力正日益受到关注。近期研究探讨了知识蒸馏在视频动作识别[431]、[432]、[439]-[441]、视频分类[435]、[436]、视频目标分割[433]、[442]、视频实例分割[437]、部分相关视频检索(PRVR)[438]、轨迹预测[443]以及通过 Mask 视频建模进行表征学习[434]、[444]等方面的应用。表8总结了视频蒸馏方法。

picture.image

深度学习模型的主要挑战,尤其是在视频质量估计[445]和注意力预测[449]等应用中,是大型模型的高计算成本和复杂性,这限制了它们在边缘设备上的执行。KD通过允许一个较小、更高效的模型(学生)从一个大型的复杂模型(教师)中学习,同时最小化性能损失,并显著降低计算和内存需求,有效地解决了这一问题。MobileVOS[442]专门关注资源受限设备(例如手机)上的半监督视频目标分割,并提出了一种像素级表示蒸馏损失,以有效地将结构信息从教师模型传递到学生模型,同时确保帧间特征一致性。在[437]中,作者提出了一种实时方法,从离线教师模型中提取相似性信息,该模型处理整个视频序列,并将其传递到在线模型,该模型处理单个帧。[450]介绍了一种在线方法,该方法在实时视频中应用特征蒸馏,以实现低成本语义分割。

此外,KD在多模态学习中适用,能够实现跨模态知识迁移,例如视频到图像[433]、视频到文本[446]、文本到视频[438]、音频到视频[447]以及视频到音频[448]。值得注意的是,[451]利用KD在时空图模型中应用于视频字幕任务,使模型对虚假相关性具有更强的鲁棒性。

V2I-DETR通过从基于视频的教师模型中提炼时间知识到基于图像的学生模型,实现了高精度与实时推理速度的提升[433]。

  1. 应用

知识蒸馏可以应用于各个领域,并具有重要的应用价值,包括在大语言模型(LLMs)中的蒸馏、在基础模型和视觉Transformer中的蒸馏、在自监督学习中的蒸馏、在扩散模型中的蒸馏以及在视觉识别任务中的蒸馏。以下对每种应用进行详细解释。

A. 大语言模型中的蒸馏

大语言模型(LLMs)近期在自然语言处理(NLP)领域引发了革命,其在学术界和工业界的各个领域都得到了显著的应用。然而,这些模型由于其庞大的参数数量,面临着关键挑战,这限制了它们在实时场景中的应用。此外,这些包含大量注意力块的巨型模型已被证明是过参数化的[3],[4]。因此,知识蒸馏(KD)在将LLMs压缩成小型语言模型(SLMs)方面发挥着至关重要的作用。现有的LLMs知识蒸馏方法主要分为两大类:白盒蒸馏和黑盒蒸馏。在白盒KD中,LLMs的logits和中间输出是可访问的,使学生能够从教师的内部信息中受益。这些信息可以是logits[10]或中间特征[22],例如每个注意力块的输出或注意力分数。另一方面,在黑盒蒸馏中,只有教师的预测可用于蒸馏,这在许多闭源LLMs(如GPT-4[487]和Gemini[488])中很常见,这限制了蒸馏过程仅限于预测。黑盒方法分为情境学习(ICL[484])、思维链(CoT[466])和指令遵循(IF[478])。图8总结了LLMs的黑盒和白盒蒸馏方法。

picture.image

大多数白盒知识蒸馏(KD)方法集中于BERT [2] 模型 [452]-[459]。DistilBERT [453] 是其中一项工作,它通过在预训练阶段使用预训练的教师模型初始化学生,并最小化学生和教师之间的软概率。在同时期的研究中,MiniLM [457] 提出了从教师模型的最后一层Transformer的self-attention模块中进行蒸馏。MobileBERT [456] 首先训练一个特殊的教师模型,然后使用特征和注意力迁移将知识蒸馏到学生模型中。TinyBERT [452] 通过蒸馏logits、注意力矩阵、隐藏状态以及教师嵌入层的输出,引入了一种针对较小版本BERT的预训练和任务特定训练的知识蒸馏方法。PKD [454] 提出了两种增量蒸馏策略,而 [458] 和 [459] 分别提出了架构无关和任务无关的蒸馏方法。

近期,提出了几种新的白盒KD方法[460]-[465],这些方法主要针对基于解码器的LLMs设计。MetaDistill[460]利用元学习框架内的反馈机制,GKD[462]在学生模型上训练其自生成的输出序列,PC-LoRA[464]同时进行渐进式模型压缩和微调。其中最引人注目的近期工作是MiniLLM[465],该方法建议使用Kullback-Leibler散度的逆来防止学生模型高估教师模型的低概率分布。

黑盒知识蒸馏(KD)近期因封闭源大语言模型(LLMs)的兴起而受到越来越多的关注。黑盒KD的第一类是ICL,最初由GPT-3 [483] 提出。在ICL中,教师接收一个任务描述、几个任务示例和一个 Query ,教师预测一个学生试图模仿的响应。[484] 将上下文学习目标与语言模型目标相结合,将解释上下文示例和任务知识的能力蒸馏到更小的模型中。AICD [486] 探索了上下文学习和推理的同时蒸馏,利用LLMs的自回归特性来优化上下文中所有理由的可能性。[485] 提出了一种新的框架,用于迭代训练密集检索器,使其能够为LLMs识别高质量的上下文示例。

第二类黑盒KD是IF,它通过指令 Prompt 来增强LLMs的零样本能力。具体来说,在IF中,教师生成特定任务的指令,学生网络据此进行微调[478]-[482]。Self-Instruct [478]生成指令、输入和输出样本,过滤掉无效样本,然后对学生模型进行微调。UniversalNer [479]探索以任务为导向的指令调整,以训练能够在广泛的应用类别中表现出色的学生模型。Lion [481]利用对抗框架为学生生成具有挑战性的指令,而LaMini-LM [480]则基于现有和新生成的指令,编制了一个包含258万条指令的大型数据集。

最后且最受欢迎的黑色盒KD方法是COT,其中教师模型在生成预测的同时生成解释,为学生网络提供中间推理步骤。在COT中,学生被期望生成与教师相似的预测和推理,类似于特征学习,学生模仿教师的中间步骤以获得更好的预测。这一概念首先由[466]提出,并在后续工作中得到扩展[467]-[477]。[467]探讨了模型和数据集大小之间的权衡,证明了LLMs的推理能力可以转移到SLMs。MCC-KD[469]为每个样本生成多个推理,并强制执行它们之间的一致性和多样性。[470]采用多任务学习框架,用教师的推理训练学生。与其他忽视带有错误标签的推理的方法不同,[475]利用了正负数据。最近,[476]证明了生成反向问题和推理,并在正向和反向推理上训练学生,显著提高了学生的泛化能力。

总结来说,白盒知识蒸馏方法通过使学生能够访问教师的内部信息,在知识迁移方面具有更高的效率。然而,在学生训练过程中进行知识蒸馏时,它们通常伴随着较高的计算成本。此外,目前大多数强大的大语言模型并非开源,这使得白盒知识蒸馏对这些模型来说不可行。另一方面,黑盒方法允许从任何模型中进行知识蒸馏。然而,由于黑盒方法无法访问教师的内部工作原理,并且仅依赖于使用教师生成数据进行学生训练,它们可能无法涵盖所有可能性,并且可能表现出较低的泛化能力。一种利用白盒蒸馏的潜在策略可能涉及首先使用黑盒知识蒸馏从封闭源模型中提取知识到开源模型,然后应用白盒方法进行进一步蒸馏。

B. 基础模型蒸馏

基础模型(FMs)是大规模、预训练的架构,旨在跨多个下游任务进行泛化。知识蒸馏(KD)作为一种关键技术,通过将知识迁移到更小、任务特定或高效的学模模型中,优化了这些模型。KD解决了计算成本和资源受限设备上的部署等挑战,对于扩展FMs的应用至关重要。

显著的预训练模型,包括如CLIP [263]这样的视觉语言模型,对话 Agent 如ChatGPT [483]、[489]、[490],以及生成模型如DALL-E [491],展示了知识蒸馏(KD)可以从众多领域提取知识。KD被用于将这些模型的复杂、多模态表示简化为针对特定任务优化的简单表示。此外,如SAM [492]和DINO [493]这样的视觉特定模型,作为知识蒸馏的有价值来源,可用于各种应用,包括分割和无监督目标发现。基于Transformer的模型,包括ViT [494]、DETR [495]、Swin Transformer [496]和DeIT [497],也提供了可以通过KD进行迁移的基础知识,以增强视觉相关任务的表现。

为了全面概述这些FM,本节将分别探讨每个模型的KD。图9展示了本节涵盖的主题结构概述,概述了不同类型的FM及其相应的应用。为了补充说明,图10描绘了这些突出模型的架构,突出了数据通常被提取和提炼用于下游任务的关键点。

picture.image

picture.image

视觉-语言模型与知识蒸馏:VLMs通过联合表示学习连接视觉和文本数据,提供有效对齐这些数据类型的能力。知识蒸馏在优化这些模型中扮演着核心角色[485]、[498]、[499],使其通用知识能够适应更紧凑或特定任务的模型,从而提高可扩展性并减少计算开销。

CLIP(对比语言-图像预训练)[263],作为最显著的视觉语言模型之一,展示了这种整合。CLIP通过在成对的图像和文本数据上训练,通过对全局视觉和文本表示的对齐实现了显著的泛化能力。通过知识蒸馏(KD),这些能力被转移到为下游任务设计的子模型中,包括以下几个关键领域:

a) 开放词汇任务:在传统的视觉任务,如语义分割和目标检测中,通常采用数据集导向的方法,其中最成功的技巧依赖于为预定义和狭窄范围类别手动标注的训练数据集。然而,High-Level视觉语言模型(VLMs),特别是CLIP的兴起,正在推动向开放世界范式的转变。这些模型通过简单且可扩展的过程进行训练,通过将图像-文本对进行对齐,利用广泛且描述性松散的标题,这些标题可以以大量收集,且几乎不需要人工干预。在目标检测中,KD技术[500]-[506]、[506]-[517]将CLIP的全局视觉-文本知识提炼成能够检测固定词汇之外目标的模型,而在语义分割[501]、[518]-[530]和部分分割[531]中,KD有助于将CLIP的文本对齐转移到密集的像素级任务中,从而实现精细的场景理解。此外,[532]通过数据无关知识蒸馏(DFKD)探索了从CLIP到开放词汇定制的可能性,引入了一个框架,使得CLIP模型能够适应,而无需原始训练数据。

b)弱监督语义分割:近期,CLIP在弱监督语义分割中的应用得到了广泛探索[533]-[540]。它通过利用其将文本和视觉表示对齐到共享嵌入空间的能力,能够在最小化标注数据的情况下生成分割 Mask 。通过这种方法,代表类别标签的文本 Prompt 通过 Query CLIP的预训练图像-文本对齐能力来引导图像中相关区域的识别。CLIP的图像编码器提取的视觉特征与文本嵌入中封装的语义意义相匹配,生成粗略的类别激活图,以定位与给定标签相关的目标和区域。

c) Prompt 学习: Prompt 学习是一种方法,它使得可以使用大型预训练模型(如CLIP)来完成特定任务,而无需重新训练整个模型。这种方法建议通过使用可学习的软 Prompt (基于文本或视觉的)来调整模型对特定任务的表示,而不是依赖于预先设计的硬 Prompt 。已经提出了几种方法[541]-[545]来实现这一方法。

d) 生成与编辑:在需要文本引导修改的2D[546]-[548]和3D图像[549]-[556]生成与编辑应用中,CLIP引导的KD也显著受益。

e) 其他应用:在VLMs中,特别是CLIP,KD所解决的问题范围广泛,包括行人重识别[557]、零样本人-物交互(HOI)检测[558]、开放词汇的分布外分类[559]、领域泛化[560]、视频-语言检索[561]、功能检测[562]、视频精彩片段检测[563]和单目深度估计[564]。这些应用展示了KD如何将大规模VLMs转化为满足特定需求的易于访问、高效的工具,其中一些工作[565]-[568]同时解决多个任务。

Segment Anything (SAM):Segment Anything Model(SAM)[492]是一种通用型模型,旨在实现跨不同图像领域的目标分割的高效和准确。SAM在开发时注重灵活性,采用了一种强大的视觉Transformer架构,能够根据 Prompt (如点、框或 Mask )对图像中的任何目标进行分割。由于其预训练的特性,SAM能够在不进行特定任务微调的情况下,很好地泛化到各种任务中,成为许多应用的宝贵资源。一些研究[323]、[569]、[570]通过提炼SAM的分割能力,将其转化为更轻量、特定于任务的模型,使得其强大的分割性能能够转移到数据标注受限、计算资源有限或具有特定领域需求的场景中。

a) SAM在弱监督语义分割中的应用:SAM通过利用其预训练能力,从最小或弱监督信号(如图像级标签、点或边界框)生成高质量的伪标签,用于弱监督语义分割[571]-[575]。这些伪标签作为训练更高效模型的基础,弥合了有限监督与完全标注数据之间的差距。SAM输出的鲁棒性使得语义分割模型能够在没有大量手动标注的情况下学习复杂的模式和目标边界。这种方法显著降低了标注成本,同时保持了有竞争力的性能。

多模型应用:在某些情况下,研究已经探讨了多个特征匹配器(FMs)的协同使用,通过知识蒸馏(KD)结合它们的优点,以增强分割、检测和多模态应用中的性能。这种KD的协同使用促进了统一模型的发展,这些模型继承了各种教师架构的互补优点。一般研究表明,在跨任务中整合不同的FMs是有效的[576]-[583],突出了效率和准确性的提升。一种常见的方法是结合具有互补优点的模型。例如,

[584]-[586] 利用SAM的鲁棒图像分割和CLIP的语义理解,提高了各种视觉任务的性能。同样,

[587],[588] 也是一种探索,它利用了DINO的自监督学习能力以及CLIP强大的视觉-语言对齐能力。在此基础上,[589] 中提出了

用于开放词汇目标检测,其中DETR作为检测模型,而CLIP提供基于文本的 Prompt 。此外,[590],[591] 的研究探讨了使用

的互补优点进行目标检测和分割。

视觉Transformer:视觉Transformer(ViTs)利用自注意力机制来捕捉图像中的长距离依赖关系,使其能够建模复杂和全局的视觉特征。这种能力使它们在图像分类、分割和检测等任务中非常有效。然而,ViTs训练和部署的高计算成本突显了从预训练的Transformer模型中提取知识以用于更专业任务的必要性。下文将讨论突出的ViTs及其蒸馏方法。

a) 视觉Transformer:ViT [494] 是一种深度学习模型,它将最初为自然语言处理开发的Transformer架构 [592] 扩展到图像分析领域。多项研究 [593]-[599] 探讨了知识蒸馏(KD)在ViT中的应用,研究了旨在实现多种目标的多种策略,具体总结如表9所示。

picture.image

b)无标签蒸馏(DINO):DINO [493] 是一种自监督视觉Transformer,能够从无标签数据中学习丰富的视觉表示。由于其强大的特征捕捉能力,许多研究利用Dino预训练的特征进行目标定位,应用于各种下游任务,如无监督目标发现 [478]、[600]-[604]、开放世界计数 [605] 和零样本语义分割 [606]。

c)检测Transformer(DETR):DETR [495] 是一个基于ViT的端到端目标检测模型,能够在统一的框架内直接预测边界框和类别标签,从而消除了对 Anchor 点或复杂后处理的依赖。其有效捕捉全局上下文和目标之间交互的能力,使其成为目标检测任务中的领先 Backbone 。然而,DETR的大模型尺寸和巨大的计算需求,为在计算预算有限的现实场景中的部署带来了重大挑战。为了克服这些限制,近期的研究 [607]、[608] 探索了通过知识蒸馏(KD)压缩DETR,旨在保持其强大的性能同时减少实时和资源受限应用的计算开销。

d) Swin Transformer:Swin Transformer [496] 是一种强大的架构,通过其分层设计和高效的基于窗口的注意力机制,有效地结合了卷积神经网络(CNNs)和视觉Transformer(ViTs)的优势。通过在每个窗口内使用局部窗口注意力,并在层之间移动窗口,Swin能够捕捉到局部和全局上下文,使其在建模细粒度细节以及长距离依赖关系方面表现出色。这种丰富的特征表示使Swin成为各种计算机视觉任务的首选。近期的工作 [609]-[621] 将Swin Transformer用作编码器,利用其在不同视觉任务中的特征,具体总结如表10所示。

picture.image

C. 自监督学习中的蒸馏

自监督学习(SSL)是一个重要的领域,因为它不依赖于 Token 数据,而自蒸馏是SSL中最突出工作的基础,尤其是在计算机视觉领域。SSL中最突出的工作是基于自蒸馏[622]。SimCLR[622]提出了一种共享网络,该网络接收图像的两个不同增强版本,并最小化它们提取的嵌入。在SimCLR之后,提出了不同的扩展[623]-[628]。MOCO[623]、[624]和BYOL[625]是其中成功的方法,它们提出使用相同的网络,但采用不同的训练过程。学生网络使用反向传播进行训练,而教师网络是学生网络的指数移动平均(EMA)。SwAP[627]使用一些原型并为同一图像的增强分配一个代码。然后对学生网络进行训练,使其预测与教师网络相同的类别ID。DINO[493]和DINOv2[629]是KD在SSL中最新的重要应用,其中图像的全局和局部块通过类似的教师和学生网络。教师网络使用EMA进行更新,并强制教师和学生网络的表示相似。这种从局部到全局的方法使其非常适合分割任务。

近期,基于KD的更复杂形式的SSL方法被提出[444]、[626]、[628]、[630]-[632]。BINGO[628]使用预训练的SSL方法将数据集的图像分组为样本袋。然后,在每个epoch中,从样本袋中抽取样本,并最小化样本间的和样本内的损失。[444]使用 Mask 建模训练图像和视频的两个SSL教师,并遵循与SimCLR类似的场景,使用图像教师最小化空间特征,使用视频教师最小化时空特征。[630]采用并行SSL方法,并定义了它们之间的一致性损失,而[631]则将已知的KD方法集成到SSL框架中,使用SSL预训练的教师。

除了上述论文外,一些研究试图将预训练的SSL网络的知识提炼到一个更小的网络中[633]-[637]。研究表明,两个相似网络之间的差距,一个完全监督训练,另一个自监督训练,随着模型规模的增大而减小[633]。[635]展示了在学生的表示之后添加MLP层的影响,而[633]提出了一种基于相似度的提炼方法,用于提炼预训练网络的知识,这种方法可以优于相应的完全监督训练网络。[636]的SEED方法使用样本队列,最小化学生表示与队列中 Anchor 点的距离以及 Anchor 点与教师表示之间的距离。[637]提出了一种新颖的方法,通过为小型 未标注 数据集的辅助预训练阶段来补充自监督预训练。

D. 扩散蒸馏

扩散模型[73]、[638]通过迭代去噪过程生成高质量的图像、文本和3D数据,这个过程可能需要数百或数千步。这导致计算成本高昂,限制了在低资源硬件上的部署。KD通过将大型教师模型中的软输出和内部表示转移到较小的学生模型来缓解这一问题。蒸馏后的模型以远少的采样步骤达到相同的质量,需要显著减少推理时间和计算量[639]。

已开发出多种策略来加速扩散模型。特征级方法使学生模仿教师的内部表示[72],[640]-[642]。采样过程蒸馏通过将多个步骤合并为一个或匹配一步学生的输出与完整教师的输出来减少迭代去噪[643],[644]。对抗性和无数据方法使用GAN损失或无需大型合成数据集的自举来对齐输出[160],[645],[646]。一致性模型将去噪重新表述为直接、通常是单步转换,从而减少推理时间[647]-[652]。在以下各节中,将详细解释每个类别。

特征级:特征级蒸馏通过将学生表示与教师表示拉近,并减少推理步骤来加速扩散模型的效率。最近的方法通过去噪[72]、外部指导[640]和跨样本一致性[641]强化特征对齐,从而促进收敛和提高了采样效率。此外,将特征蒸馏与模型压缩相结合可以减少模型大小和推理时间[642]。这些技术在不牺牲输出质量的情况下加速了生成过程,从而使扩散模型更加逼真。

采样过程:对采样过程进行蒸馏以简化扩散模型固有的迭代降噪过程。渐进蒸馏[643]通过将两个步骤合并为一个步骤来实现这一点;通过重复应用这种简化,可以显著缩短采样过程的持续时间。分布匹配蒸馏[644]试图将整个迭代过程压缩为单步。这种对齐是通过将单步学生模型的输出分布直接与组合的多步教师模型的输出分布相匹配来实现的。

对抗和无数据:对抗方法[160]、[645]利用基于GAN的损失函数来强制学生的输出分布与教师的输出分布紧密匹配。另一方面,无数据方法如EM蒸馏[646],通过在连续的降噪步骤之间进行自举,消除了在训练过程中需要大量合成数据集的需求。

一致性模型:一致性模型[647]-[649]将去噪过程重新表述为从噪声数据到其干净版本的直接、通常是单一转换。它们的潜在空间变体[650]、[651],以及专注于稳定性和可扩展性的改进[652],在推理时间上实现了显著的加速。然而,训练这些模型可能需要仔细调整以防止质量崩溃。

此外,蒸馏技术在最近的发展中使其在多模态和多模型环境中的应用变得更加容易,从而提高了跨任务和不同架构的迁移性。ProlificDreamer [653] 和 DREAMFUSION [654] 在文本到3D翻译领域应用了这些方法,而通用系统如DiffInstruct [655] 可以促进任务的泛化。

总之,各种方法提供了不同的优势:采样蒸馏过程可以显著加速生成,但往往需要繁琐的训练以维持样本质量。对抗性和无数据方法提供了更多的灵活性,尽管有时会以训练稳定性为代价。一致性模型在调整得当的情况下可以实现低延迟生成。此外,结合跨模态和通用方法可以显著扩大这些蒸馏技术在广泛生成任务中的应用范围。

E. 视觉识别蒸馏

知识蒸馏在计算机视觉任务中得到了广泛应用,使得训练出能够复制大型、资源密集型教师模型行为的紧凑型学生模型成为可能。基于两个主要因素:知识转移的类型(基于特征、基于logit、基于相似度和组合)以及采用的蒸馏方案(离线、在线和自蒸馏),表11总结了知识蒸馏在视觉识别中的关键应用。表中涵盖了多个重要的视觉识别任务,包括深度估计[656]-[671]、人脸识别[672]-[683]、图像分割[40]、[54]、[57]、[59]、[67]、[70]、[76]、[77]、[196]、[251]、[595]、[684]-[695]、医学图像分析[265]、[696]-[716]、目标检测[70]、[507]、[686]、[717]-[744]、目标跟踪[745]-[748]、姿态估计[93]、[749]-[760]、超分辨率[262]、[761]-[773]、动作识别[214]、[431]、[774]-[780]和图像检索[781]-[790]。

picture.image

  1. 性能比较

KD技术能够在保持强大性能的同时,将深度网络压缩成更小的模型。由于该领域提出了大量方法,因此在不同设置下对现有方法进行全面比较是必要的。然而,KD的复杂性质,包括各种方案、算法、来源和师生架构,使得对所有现有方法进行全面和公正的比较变得具有挑战性。例如,精确的预训练教师模型以及诸如训练轮数和批量大小等因素,都可能影响蒸馏的结果。这些因素高度依赖于每种方法所使用的硬件资源,而这正是最终结果的决定性因素。

在本工作中,对现有的方法进行了比较,针对两个著名的任务:分类和语义分割,因为几乎所有提出的蒸馏方法都是在这两个任务上评估其结果的。对于分类,使用了CIFAR-100数据集;对于语义分割,使用了Cityscapes数据集,因为这两个数据集在现有方法中得到广泛应用。CIFAR-100由100个类别的

图像组成,包含50,000/10,000个训练/测试图像,每个类别具有相同数量的训练和测试图像。Cityscapes旨在理解城市场景,包括19个类别,在训练/验证/测试阶段分别有2,975/500/1,525个图像。

此外,鉴于蒸馏在LLMs中的重要性,本文比较了现有的LLMs蒸馏方法。这包括比较黑盒和白盒方法。然而,不同论文中使用的LLMs数据集和模型存在显著差异,尤其是在白盒方法中。报告了在现有方法中更常用到的数据集和模型的结果,使得比较更加容易和公平。所使用的数据集包括:GLUE、多语言NER、DollyEval、IMDB、GSM8K、CrossFit、CommonsenseQA、SVAMP、通用NER基准、OpenBookQA、BBH、StrategyQA和MATH。

表12总结了用于分类和分割任务的蒸馏方法。对于每种方法,报告了知识源、教师和学生架构,以及蒸馏后的准确率(对于分类)和mIoU(对于分割)。为了进行公平比较,数字直接来自相应的论文。然而,在某些情况下,原始论文没有在提到的数据集上提供结果,且无法进行直接比较时,报告了通过实现他们的模型获得的结果(用*表示)。

picture.image

在类似的意义上,表13展示了针对LLMs的蒸馏方法的比较。它显示了每种方法的压缩率和相对于教师模型的改进。如图所示,在LLMs中,蒸馏比其他领域更为关键,因为它允许以高压缩率压缩大型模型,同时仍能保持可比较的性能。需要注意的是,在未报告教师模型确切性能的情况下,报告了蒸馏前后学生模型的性能(用*表示)。

picture.image

  1. 结论与讨论

知识蒸馏在模型压缩领域引发了革命,近年来在多个研究领域中发挥了重要作用。本研究提出了一项关于知识蒸馏的全面综述,从多个角度对其方法进行了回顾,包括:来源、方案、算法、模态、应用和性能比较。与现有综述相比,本综述介绍了该领域的最新进展,并聚焦于知识蒸馏中最重要的话题。自适应蒸馏和对比蒸馏被提出作为近年来受到更多关注的两种重要算法。此外,知识蒸馏在不同模态中的应用也得到了回顾,特别是对于点云等3D输入,它们在最近的研究中与知识蒸馏建立了重要的联系。此外,还探讨了蒸馏在自监督学习、扩散模型、基础模型和大语言模型中的应用。自监督学习方法主要依赖于自蒸馏技术,扩散模型利用蒸馏来减少生成阶段中的步骤数量,而大语言模型则通过知识蒸馏被缩小为更小的版本。随着基础模型如CLIP的最近进展,将它们丰富的知识蒸馏到其他模型中变得越来越普遍。

以下将讨论现有蒸馏方法所面临的挑战,并就知识蒸馏未来的研究方向提供见解。

A. 挑战

虽然KD是提高较小网络性能的有效方法,但它也伴随着一些挑战。以下将讨论其中一些最重要的挑战。

知识提取:在蒸馏过程中,找到合适的知识源是主要挑战之一 [66],[791],[792]。尽管使用logits是蒸馏的最直接方法,但其有效性在不同场景中有所不同。例如,在标签不可用的任务中,基于logits的蒸馏不可行。此外,随着像CLIP这样的基础模型的兴起,丰富特征和嵌入的蒸馏变得至关重要,这仅通过基于logits的蒸馏是无法实现的,需要基于特征和基于相似度的蒸馏方法。在大语言模型(LLMs)中,这个问题更为突出,因为一些最近的LLMs不是开源的 [487],[488],限制了访问中间特征或logits,使得黑盒蒸馏特别具有挑战性。现有方法通常利用不同蒸馏源的组合,以有效地将教师模型的知识传递给学生模型。

选择合适的蒸馏方案:选择合适的师生架构也是一个挑战,因为它取决于具体情境。在可利用预训练大型模型的场景中,离线蒸馏通常更有效,而在其他情况下,在线蒸馏可能是一个更好的选择。在自监督学习中,自蒸馏方案已被证明非常有效。此外,使用多个教师训练较小的网络是一种有前景的方法,通常被称为专家混合。然而,这也带来了自己的挑战,包括需要更强大的内存和GPU,以及将不同的教师加载到不同资源上的复杂性。在大多数现有方法中,离线蒸馏更常被使用。具体来说,当从基础模型或LLM中进行蒸馏时,由于教师模型参数数量巨大,无法在教师和学生一起训练。

容量差距:另一个重要的挑战是教师模型和学生模型之间的容量差距。人们可能会认为更大的教师模型总是会导致学生网络性能的显著提升,但当教师模型和学生模型之间存在相当大的规模差异时,可能会引发容量差距问题[29],[55],[88]。这是因为教师模型和学生模型的感受野存在显著差异。在基础模型中,这一挑战尤为突出,因为它们包含着大量的参数,将这些参数的知识提炼到更小的模型中是一项挑战。此外,在LLMs的黑盒蒸馏中,由于中间层不可访问,直接从教师模型向学生模型转移知识是一项严重的挑战。现有方法采用各种算法来缩小这一差距,使教师的知识对学生来说更加易于理解。

架构差异:教师模型和学生模型架构的差异构成了另一个重大挑战,这可能会影响蒸馏方法的表现。在教师和学生具有不同架构的场景中,这种情况非常普遍,转移适当的知识成为了一个新的挑战。当从具有不同架构的教师向学生蒸馏知识时,这一问题尤为明显,通常会导致性能下降[29],[88]。在基础模型中,学生的架构可能与教师的架构有显著差异。尽管基于logit的蒸馏在这种情况下仍然有效,但基于特征和基于相似度的蒸馏方法面临额外的挑战。更具体地说,选择具有相似语义信息的适当层进行特征蒸馏在方法性能中起着重要作用,因为教师和学生甚至可能具有不同的归纳偏差。在LLMs的黑盒蒸馏中,CoT蒸馏可以帮助解决这个问题,因为它不会强迫学生模仿教师的确切中间层。相反,它为学生提供了从教师那里推导出的中间推理步骤。然而,生成适当的推理和解决教师与学生之间的容量差距仍然是一个重大挑战。

B.未来方向

尽管KD(知识蒸馏)不是一个新概念,自其最初提出以来一直存在,但提出的新方法数量正在迅速增加,其在各个领域的应用也在不断扩展。这为进一步的研究提供了重大机遇。以下将讨论潜在的未来的研究方向。

基于特征的蒸馏:尽管基于logit和基于相似度的蒸馏方法有效,但近期趋势和结果表明,基于特征的蒸馏可以带来学生性能的更大提升。然而,它也可以与其他方法相结合。近期基于特征的蒸馏方法已经证明,无需定义复杂关系,对教师或学生特征进行简单的转换就足以实现提升学生性能的最新成果 [71],[76]。此外,随着基础模型如CLIP的快速增长,从这些大规模模型中蒸馏嵌入的方法越来越受到关注。

自适应蒸馏:尽管存在许多蒸馏方法,但有效地从教师模型中提取并传递给学生的信息性知识仍然 largely 未被探索 [791],[792]。已经提出了几种自适应蒸馏方法,以有效地传递教师模型的暗知识,同时忽略未使用的知识。这一研究方向特别有趣,因为它防止了错误知识的传递,并有助于缩小教师和学生网络之间的差距。这个过程与人类学习过程非常相似:教师向学生传授知识,但直接传递所有知识并不总是有效或实用 [18],[88]。因此,可以采用各种形式的自适应蒸馏,例如使用教师助手、减少训练后期蒸馏的影响,或根据样本的重要性应用自适应损失函数。所有这些方法都与人类训练过程中的现实学习场景相一致。

从基础模型中提取知识:随着各种基础模型和多模态模型的涌现,它们已成为知识蒸馏的丰富来源[793]。例如,CLIP模型凭借其图像和文本编码器,可以为学生模型提供丰富的嵌入,其中文本可用于提升视觉任务,如弱监督语义分割,使其成为研究的热点[533]。此外,由于这些大型模型具有通用特征,它们可以用于开放词汇任务[604],其中任务不仅限于预定义的类别。这些蒸馏的有趣应用为未来的研究提供了巨大的潜力。

在LLMs中的蒸馏:虽然蒸馏在视觉、文本和语音任务中是一种非常有效的技术,但在LLMs中的应用更为重要。如前所述,LLMs已被证明是过参数化的[3],[4],拥有数十亿甚至数万亿的参数,远远超过其他领域模型的大小。这些权重矩阵通常很Sparse[5],因此在保持性能的同时减少模型大小,蒸馏变得至关重要。此外,大多数强大的模型都不是开源的[487],[488],这使得黑盒蒸馏的重要性增加。CoT蒸馏是一种特别有趣的从LLM向SLM转移推理能力的技术。与传统的蒸馏方法不同,CoT旨在通过教授学生模型如何推理来增强其泛化能力。结果表明,通过蒸馏LLM的知识,学生模型可以达到与教师模型相当的性能,同时显著减少模型大小。这尤其重要,因为教师模型可能太大,无法在常见的GPU上运行,而蒸馏后的学生模型可以高效地部署在常见硬件上,使High-LevelAI对更广泛的受众更加可访问。

蒸馏的应用:除了提出新的蒸馏方法外,蒸馏还被应用于各种任务中,从而实现了显著的性能提升。例如,蒸馏在对抗攻击[166]、[794]中得到了成功应用,减轻了后门攻击[795]、[796],以及异常检测[797]。此外,蒸馏的概念在数据集蒸馏[798]中得到了应用,使其成为一个有趣的研究方向。蒸馏的另一个应用是将其与其他压缩方法相结合,例如量化或低秩分解。

参考

[1]. A Comprehensive Survey on Knowledge Distillation

picture.image

扫码加入👉「集智书童」交流群

(备注:方向+学校/公司+昵称)

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生环境下的日志采集存储分析实践
云原生场景下,日志数据的规模和种类剧增,日志采集、加工、分析的多样性也大大增加。面对这些挑战,火山引擎基于超大规模下的 Kubernetes 日志实践孵化出了一套完整的日志采集、加工、查询、分析、消费的平台。本次主要分享了火山引擎云原生日志平台的相关实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论