知识蒸馏的说明

文章探讨了ChatGPT中的温度系数如何影响模型预测的不确定性,解释了知识蒸馏的概念,特别是响应基KD算法,以及为何需要平滑标签来优化模型学习。此外,提到了知识蒸馏在模型压缩中的作用,允许小型模型模仿大型教师模型的知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文参考:

ChatGPT 温度系数t与top-p, 超参怎么设置最优? - 知乎

 知识蒸馏系列(一):三类基础蒸馏算法_OpenMMLab的博客-优快云博客

知识蒸馏算法汇总 - 知乎

知识蒸馏__Old_Summer的博客-优快云博客 

目录

1、 ChatGPT温度系数temperature

 2、蒸馏概述

3、Response-based KD

4、为什么要“平滑标签”


1、 ChatGPT温度系数temperature

chatgpt生成文字序列是随机的。在模型生成最终序列的过程中,总过涉及到两个环节,分别是模型预测以及解码策略

举个例子:

假设输入为"汤姆猫喜欢",模型预测后续的字,根据语言模型P(y | x= 汤姆猫喜欢),先由模型预测下一个字是什么,且对应概率为多少,会产生N个候选序列,最后根据不同的解码策略(如贪心策略、BeamSearch等)解码出最优的序列进行输出。

 这其中温度系数temperature影响的就是模型预测的字符概率。

以Softmax函数说明,添加温度系数T的形式如下:

 当T趋于无穷大时,将趋于1,输出概率分布将趋于均匀分布,概率为1/K,此时信息不确定非常大,即信息量很大,即信息熵是最大的。

反过来,T趋于0时, 假如m为正确的序号,j为非正常的序号,则zj - zm小于0,此时当T趋近于0时,趋于0-。那么正确类别的概率接近1,输出结果就是确定的,信息熵为0,softmax的效果与argmax差不多。

 所以,温度系数T越大则输出越平滑,结果越不确定;T越小则越确定

 2、蒸馏概述

知识蒸馏(Knowledge Distillation,简称KD)是一种经典的模型压缩方法,核心思想是通过引导轻量化的学生模型“模仿”性能更好、结构更复杂的教师模型,在不改变学生模型结构的情况下提高其性能。

简单来说就是:轻量化模型达到复杂模型的一种压缩优化方案。

对比其他的模型压缩方法,参数裁剪、精度转换、神经网络结构搜索这些模型压缩方法会破坏原模型的结构,也就是会损坏原模型从数据中学习到的知识,而知识蒸馏通过蒸馏的手段保护原模型中学习到的知识,然后将这些知识迁移到压缩模型中,使压缩模型虽然相比原模型体积要小的多,但是也可以学习到相同的知识。

目前比较流行的三类蒸馏方法:

relation-based knowledge

feature-based knowledge

response-based knowledge

3、Response-based KD

 如上图所示,Response-based KD算法以教师模型的分类预测结果为“目标知识”,这里的分类预测结果指的是分类器最后一个全连接层的输出(称为logits,而非softmax之后的输出)。

与模型的最终输出相比,logits没有经过softmax进行归一化,非目标类别对应的输出值尚未被抑制。

在得到教师和学生的logits后,使用温度系数T分别对教师和学生的logits进行“平滑”,进而计算两个softmax之间的差异,具体的loss计算公式为:

其中z为logits,zi为logits中第i个类别的对应值,损失函数L一般使用KL散度计算差异。T一般取大于1的整数值,此时目标类与非目标类的预测值差异减小,logits被“平滑”。相反地,T小于1时会进一步拉大目标类与非目标类的数值差异,logits趋向于argmax(onehot)。

4、为什么要“平滑标签”

假设我们现在的任务是利用神经网络识别1~5的手写体数字图片,也就是将一张手写体数字图片输入到神经网络中,神经网络要判断出这张图片中的数字究竟是几。

假设我们将数字2的手写体图片输入到神经网络中,神经网络输出了A=,我们称A为Logits,然后我们会将Logits输入到SoftMax层,将Logits中的数字都转换为概率。

假设转换完后的值为B=[0.0001, 0.8, 0.1, 0.0002, 0.0997],然后我们一般的做法是取概率值最大的那个类别作为识别的结果,也就是我们取0.8对应的类别'2'作为识别的结果输出。

但是如果我们仔细思考,其实虽然0.0001这个概率值小到可以忽略,但是它也传递着神经网络学习到的知识:数字2以0.0001的概率和数字1很像。所以我们应该利用这些知识。

但是这些数字的大小相差太大,得先想办法在不改变它们原有分布得情况下,改变这些数值得大小,使其具有可比性。Hinton在这里引入了一个称为"温度"的参数,对Logits进行平滑处理,知识蒸馏这个词语也是来自于这个过程。

 当T趋于很大时,所有的概率值也会趋向于相等,也就是高温会抹掉原先因为数值大小不同而产生的差别。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值