Deepseek鲨疯了,但90%的人都不知道它提到的蒸馏技术是什么

B站影视 2025-01-29 11:14 2

摘要:上周,DeepSeek 发布了 R1 模型。如重磅炸弹在 AI 圈引发轰动。作为国产模型,在各类测试中表现亮眼,不少指标直逼甚至超越 OpenAI 的 o1 系列等行业标杆。消息一出,AI 爱好者们瞬间沸腾,纷纷在各平台讨论 R1 模型的神奇之处,研究人员也开

上周,DeepSeek 发布了 R1 模型。如重磅炸弹在 AI 圈引发轰动。作为国产模型,在各类测试中表现亮眼,不少指标直逼甚至超越 OpenAI 的 o1 系列等行业标杆。消息一出,AI 爱好者们瞬间沸腾,纷纷在各平台讨论 R1 模型的神奇之处,研究人员也开始钻研其技术报告,试图揭开其强大能力背后的秘密。

然而,在大家为 R1 强大表现赞叹时,文科出身的我却被困在了官方介绍的第二行 --「蒸馏技术」-- 这又是个啥?好吧,大佬们都去测评R1的能力表现了,我还是先去老老实实的补课吧。

AI 领域的知识蒸馏技术一般认为是由 Geoffrey Hinton、Oriol Vinyals 和 Jeff Dean 在 2015 年提出的。

他们在论文《Distilling the Knowledge in a Neural Network》中首次正式阐述了知识蒸馏这一概念和技术。通过将一个复杂的教师模型的知识迁移到一个简单的学生模型中,使学生模型能够在保持较高性能的同时,具有更小的模型规模和更快的推理速度,为解决深度学习模型部署和效率等问题提供了一种有效的方法。

简单地说就好像在学校里,老师拥有丰富的知识和经验,学生通过学习老师传授的知识,不断提升自己。在 AI 中,大模型经过大量的数据训练,学到了很多 “知识”,这些知识包含了对各种数据特征的理解、模式的识别等。而小模型由于参数较少、结构相对简单,直接训练的话,很难达到大模型的性能。这时候通过蒸馏,小模型可以学习大模型的 “思考方式” 和 “知识经验”,在保持一定性能的同时,还能拥有更快的推理速度和更低的计算成本,就像一个学生虽然没有老师那么渊博的知识,但通过向老师学习,也能在考试中取得不错的成绩。

例如,在图像识别任务中,大模型可以准确地识别出各种不同类型的图像,小模型通过蒸馏技术学习大模型的知识后,也能在图像识别上有较好的表现,而且在手机等计算资源有限的设备上,小模型可以更快地运行,实现实时的图像识别,比如快速识别照片中的物体、场景等 。

教师模型与学生模型的准备

在进行 AI 蒸馏技术的第一步,就是要准备好教师模型和学生模型 。就像一场精心筹备的教学活动,得先有一位经验丰富、知识渊博的 “老师”,以及一位渴望学习、潜力无限的 “学生”。

对于教师模型而言,它需要在大量的数据上进行长时间的训练,从而具备强大的能力,能够对各种复杂的数据模式进行准确的识别和分析。比如在图像识别领域,教师模型可能经过数百万张图像的训练,能够精准地识别出不同种类的动物、风景、人物等。它就像是一个训练有素的专家,对各种情况都了如指掌。在实际应用中,像 ResNet - 101 这样的大型卷积神经网络,常常被用作教师模型,它在大规模图像数据集(如 ImageNet)上的预训练,使其对图像特征有着极其出色的提取和分类能力。

而学生模型呢,则是一个结构相对简单、参数较少的模型,它的计算资源需求也相对较低。这就好比一个刚刚起步的学习者,虽然没有老师那么丰富的经验和深厚的知识储备,但它有着学习的热情和潜力。学生模型可以是教师模型的简化版本,例如减少层数、降低神经元数量等。以基于 Transformer 架构的模型为例,如果教师模型是一个具有多层 Transformer 块和多头注意力机制的大型模型,那么学生模型可能只包含较少的 Transformer 层和头数 。在准备学生模型时,还需要对其参数进行初始化,这可以采用随机初始化的方式,就像让学生带着一张白纸开始学习;也可以基于一些预训练模型进行初始化,这就好比给学生提供了一些基础的知识框架,让他们在这个基础上更好地学习。

知识传递的过程

当教师模型和学生模型都准备好后,就进入了关键的知识传递阶段 。在这个阶段,学生模型不仅要学习原始数据的标签,也就是我们通常所说的 “硬目标”,还要努力模仿教师模型的输出,这个输出通常被称为 “软目标”,它是一种概率分布形式的标签,包含了比硬目标更丰富的信息。

比如说在一个图像分类任务中,有一张图片,它的真实标签是 “猫”,这就是硬目标。教师模型经过对这张图片的分析后,输出的结果可能是 “猫” 的概率为 0.8,“狗” 的概率为 0.1,“其他动物” 的概率为 0.1 。这个概率分布就是软目标,它告诉学生模型,虽然这张图片大概率是猫,但也有一定的可能性是其他动物,这就为学生模型提供了更多的学习信息。

在实际训练过程中,为了让学生模型更好地模仿教师模型的输出,通常会引入一个温度参数(通常用 T 表示) 。这个温度参数就像是一个调节旋钮,用来控制软目标概率分布的平滑程度。当温度 T 较大时,软目标的概率分布会更加平滑,各个类别的概率差异会变小,这就意味着学生模型会更多地学习到教师模型对各个类别的 “综合判断”,而不仅仅是关注可能性最大的那个类别;当温度 T 较小时,软目标的概率分布会更加陡峭,可能性最大的那个类别的概率会更加突出,学生模型就会更侧重于学习教师模型对最可能类别的判断。例如,在一个 10 分类的任务中,当 T = 1 时,教师模型输出的软目标可能是 [0.9, 0.05, 0.02, 0.01, 0.01, 0.0, 0.0, 0.0, 0.0, 0.02] ,而当 T = 10 时,软目标可能会变成 [0.5, 0.15, 0.1, 0.08, 0.07, 0.03, 0.03, 0.02, 0.01, 0.01] ,可以明显看出温度对软目标分布的影响。

T = 1
[0.9, 0.05, 0.02, 0.01, 0.01, 0.0, 0.0, 0.0, 0.0, 0.02]
T = 10
[0.5, 0.15, 0.1, 0.08, 0.07, 0.03, 0.03, 0.02, 0.01, 0.01]

为了看出学生模型和教师模型之间有多大差别,还会设置一个损失函数。这个损失函数一般包含两部分:第一部分是学生模型和教师模型输出的概率分布差别,通常用 KL 散度(Kullback - Leibler Divergence)来计算,KL 散度可以用来判断两个概率分布有多相似;第二部分是学生模型预测的结果和真实标签之间的差别,在分类任务里,常用交叉熵损失函数来计算。通过不断调整学生模型的参数,让这个损失函数变得最小,这样学生模型就能慢慢学到教师模型的知识和经验。在实际训练时,根据具体任务和实验情况,调整这两部分损失的比重,从而达到最好的训练效果。比如,要是更在意学生模型预测真实标签的准确性,那就可以适当加大交叉熵损失的比重;要是希望学生模型能更好地模仿教师模型的输出,那就可以加大 KL 散度损失的比重。

从模型部署上说,在 AI 的实际应用中,模型的部署场景是多种多样的,其中很多设备的计算资源和内存都非常有限,就像一个小户型的房子收纳空间就会非常有限一样。像手机、智能手表等移动和物联网设备,它们的芯片算力、内存与大型服务器相比差距很大。若在这些设备上运行未经蒸馏的大模型,AI 应用会运行缓慢、卡顿甚至无法运行。

通过知识蒸馏,小模型可以在保持一定性能的基础上,顺利地在这些资源受限的设备上运行,同时又不会因为过高的计算需求导致设备过热、电量消耗过快等问题 。在自动驾驶领域,边缘计算设备需要实时处理大量的传感器数据,如果使用大模型进行计算,很难满足实时性的要求,而蒸馏后的小模型则可以在有限的硬件资源下,快速地做出决策,保障行车安全。

在推理速度上,小模型由于参数少、结构简单,在进行推理时,可以快速地得出结果。因此在一些对实时性要求极高的场景,小模型的快速推理能力就显得尤为突出,它可以让用户享受到更加流畅、无延迟的体验。

从能耗方面来看,小模型的运行就像是一个节能灯泡,消耗的电量很少;而大模型则像一个大功率的电暖器,能耗很高 。在数据中心,大量的服务器运行着各种 AI 模型,如果都使用大模型,那么电力成本将是一个巨大的开支。通过蒸馏技术使用小模型,不仅可以降低能耗,还能减少对散热设备的需求,进一步降低运营成本 。在一些依靠电池供电的设备中,如无人机、移动机器人等,降低能耗就意味着可以延长设备的工作时间,提高设备的使用效率。

《Distilling the Knowledge in a Neural Network》专业论文:https://arxiv.org/pdf/1503.02531

往期「学习笔记」:

对不起,o3都出了我才搞明白GPT4o和o1的区别

AI 化身学习搭子,费曼学习法实战【二】AI技术应用和实践

AI 化身学习搭子,费曼学习法实战开启!【一】AI基础知识概念

来源:opendotnet

相关推荐