ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

知识蒸馏(KD)瘦身都瘦在哪里了?

知识蒸馏(KD)瘦身都瘦在哪里了? 知识蒸馏Knowledge DistillationKD定义学术标准定义知识蒸馏是一种模型迁移与模型压缩技术利用一个能力强、参数量大的教师模型Teacher将它学到的隐式知识暗知识包含类别之间相似关系、推理倾向、概率分布迁移训练给一个参数量更小的学生模型Student学生模型通过拟合教师输出的软概率分布而不仅仅拟合真实标签最终用更小体积逼近教师的表现。出自 Hinton 2015 原始论文《Distilling the Knowledge in a Neural Network》。通俗版定义不直接用标准答案训练小模型让大模型把自己的思考模式、判断倾向输出出来教给小模型得到体积更小、推理更快的模型。蒸馏以后小在了哪里蒸馏前后变化——教师例如 70B700 亿参数 学生例如 7B70 亿参数蒸馏本身不是把大模型 “裁剪” 变小蒸馏是重新训练一个参数量天生就更小的新模型学生去模仿大模型教师的行为。注意区分剪枝把同一个模型内部没用的神经元删掉原始大模型原地瘦身。蒸馏不是改教师大模型是另起炉灶训练一个规模更小的全新网络。1、“变小” 到底小在哪里教师例如 70B700 亿参数 学生例如 7B70 亿参数变小的部分 神经网络参数总量变少Transformer 里面注意力头数量变少网络层数变少教师 80 层学生可能只用 32 层每一层隐藏维度hidden‑size压缩向量维度更小FFN 前馈网络维度缩小参数量代表模型的“记忆容量、表达空间”。 大模型有海量参数可以记住海量模式、复杂逻辑小模型参数少硬件开销直接下降显存占用降低、推理速度变快、可以跑在低配机器。蒸馏没有把 70B 模型压缩成 3B是直接训练一个 3B 模型强迫它模仿 70B 的输出习惯。2、既然模仿大模型为什么小模型不能 100% 复刻参数相当于模型的 “大脑存储空间”存储空间本身就不够。 教师 70B 能记住的知识、复杂推理模式学生 7B 的网络容量有物理上限。 哪怕训练数据无限小模型也装不下全部的暗知识。举通俗类比教师是资深老专家70B经验极丰富。 蒸馏就是让专家出大量例题 解题思路软标签教给一个普通本科生7B。 本科生可以学会大部分常见问题做得很像专家 但超复杂难题本科生大脑容量有限永远达不到专家水平。3、参数变少具体会影响哪些能力保留较好蒸馏收益明显简单问答、客服、分类、意图识别固定格式输出、简单摘要日常通识、短文本任务。这类任务小模型通过学习教师的软标签可以做到接近大模型效果。会明显受损蒸馏短板复杂逻辑推理、多步数学计算 多步骤推导、复杂逻辑链极度依赖大模型参数量容量蒸馏后容易推理断裂、算错。长上下文能力 同样上下文窗口下小模型记住长文本细节的能力下降容易遗忘前文。冷门知识、小众细节 大模型记住大量冷门事实小模型容量有限会遗忘很多细粒度知识。复杂代码、复杂改写创作 复杂算法代码高阶写作能力会显著滑坡。抗干扰能力下降 输入稍微带歧义、噪声小模型更容易幻觉。另外两个附带负面影响继承教师的错误 教师幻觉、偏见学生一并学会。泛化能力上限锁死 学生模型的天花板就是它自身参数量无论怎么蒸馏训练不能突破这个上限。4、一个关键误区误区蒸馏损失是蒸馏这个操作带来的。 真相能力下降主要来自学生模型本身参数量更小不是蒸馏算法本身。 如果你直接拿这个 7B 模型不用蒸馏、直接普通训练效果会比蒸馏出来的 7B 还要差很多。 蒸馏的价值把小模型尽量拉高逼近它自己参数能达到的理论上限而不是追上大模型。5、结合业务怎么权衡如果业务都是简单业务并发高要低延迟蒸馏用小模型牺牲部分高阶能力换取速度。如果业务大量复杂推理、代码、长文档不要蒸馏压缩保留大模型可以考虑 LoRA 做业务适配。简短总结蒸馏不是把大模型改小是训练一个天生更小的新学生模型网络层数、维度、参数量整体缩小。“小掉” 的是神经网络参数代表模型存储、表征复杂模式的总容量下降。简单任务效果尚可多步推理、长文本、冷门知识、复杂代码会受损。蒸馏的作用让小模型尽可能变强但不能突破小模型本身硬件 / 参数带来的能力天花板。
返回列表