大模型知识蒸馏Knowledge Distillation笔记一、 知识蒸馏概述1. 核心目标与原理蒸馏目标通过迁移大模型教师模型/Teacher的知识训练出一个推理速度更快、资源占用更小的小模型学生模型/Student。核心原理将训练数据输入至教师模型将其输出包括软标签/分布作为监督信号指导参数较少的学生模型进行学习使其具备类似教师的能力。应用场景移动设备部署、边缘计算、垂直领域模型、实时推理场景。2. 知识蒸馏的基本要素教师模型 (Teacher Model)通常是一个参数量巨大、性能卓越的预训练大模型如 GPT-4, DeepSeek-R1。学生模型 (Student Model)参数量较小的目标模型如 Qwen-1.5B, Llama-3.1-8B。知识载体包括模型的输出概率分布Logits、中间层特征、层间关系等。二、 知识蒸馏的主流技术方法根据教师模型是否可见蒸馏主要分为两大类1. 白盒蒸馏 (White-box Distillation)教师模型结构开源可见主要分为三种形式响应式、特征式、关系式A. 响应式知识蒸馏 (Response-Based) -最经典核心直接匹配教师模型与学生模型的最终输出 (Logits)。蒸馏损失 (L d i s t i l l L_{distill}Ldistill​)使用温度系数 (T TT) 对学生和教师的 Logits 进行“软化”Label Smoothing 思想然后计算二者的KL 散度。温度T TT越大概率分布越平滑能更好地让学生学到类间关系抑制“过度自信”。p ( z i , T ) exp ⁡ ( z i / T ) ∑ j exp ⁡ ( z j / T ) p(z_i, T) \frac{\exp(z_i/T)}{\sum_j \exp(z_j/T)}p(zi​,T)∑j​exp(zj​/T)exp(zi​/T)​学生损失 (L s t u d e n t L_{student}Lstudent​)学生模型预测结果与数据集给出的“硬标签”计算交叉熵损失。总损失函数T o t a l L o s s α ⋅ L d i s t i l l ( 1 − α ) ⋅ L s t u d e n t Total\ Loss \alpha \cdot L_{distill} (1-\alpha) \cdot L_{student}TotalLossα⋅Ldistill​(1−α)⋅Lstudent​α \alphaα为权重系数。B. 特征式知识蒸馏 (Feature-Based) -更细粒度核心不仅匹配输出还强制要求学生模型的中间层特征图与教师模型对齐。适合需要保留空间信息的任务如目标检测、语义分割。代表方法特征图匹配 (FitNet)直接计算特征图的 L2 距离。注意力迁移 (Attention Transfer)匹配学生与教师的特征注意力图利用平方和归一化计算注意力。Gram矩阵匹配 (Gram Matrix)匹配特征通道之间的相关性。不关心单个特征的具体位置只关心通道间的二维统计信息适用于处理图像和文本特征。C. 关系式知识蒸馏 (Relation-Based) -结构特征核心挖掘样本之间或特征层之间的关系构建关系矩阵通过计算矩阵差异损失来指导蒸馏。代表方法FSP矩阵 (Flow of Solution Procedure)计算两个特征层的内积体现层与层之间的信息流动。RKD算法 (Relational Knowledge Distillation)构建“样本对”的欧式距离或“样本三元组”的角度关系让学生模型学习教师模型样本间的相对结构关系。2. 黑盒蒸馏 (Black-box Distillation)教师模型不可见如闭源 API无法获取中间层特征只能获得输入和输出的数据。特点蒸馏效率略低但操作简单、普适性强。本质实际上就是利用大模型生成高质量的数据对较小模型进行 SFT监督微调。实践提醒正如您 PPT 截图中的代码llamafactory cli train examples/train_lora/qwen3_4b_sft_lora.yaml所示当前很多框架如 LLaMA-Factory进行的黑盒蒸馏本质上就是 SFT 微调技术门槛相对较低。三、 数据蒸馏与优化策略 (以 Qwen-distill 为例)在大模型蒸馏中由于数据量或质量不足常需要对数据做以下优化数据扩展使用 Prompt 模板让教师模型大模型对原指令数据进行改写和扩增。难度打分筛选机制将教师模型作为裁判进行打分。计算模型拟合难度分数 (教师回答得分 - 学生回答得分)。过滤掉拟合难度分数较低的样本即学生已经很轻松就能答对的样本缺少训练价值。任务格式与多样性优化数据任务多样性、长度多样性、语种多样性。通过多语言机器翻译、任务相关重采样优化训练集。训练策略一般任务使用 SFT监督微调较难的指令任务使用 DPO直接偏好优化。四、 知识蒸馏的高级演化方向自蒸馏 (Self-Distillation)特点没有独立的教师模型。模型向自己学习利用深层次的特征去指导浅层特征或者反之训练出的小模型甚至能超越原始大模型的性能。多教师蒸馏 (Multi-Teacher Distillation)特点结合多个教师模型的知识提升学生模型的泛化能力。例如微软 MKD 框架同时使用 BERT 和 RoBERTa 等作为教师。渐进式蒸馏与对抗蒸馏类似于 DeepSeek 技术采用自适应温度调节引导学生由浅入深地学习。对抗蒸馏机制让 Student 模型学习并适应“假乱”的困难样本提升鲁棒性。五、 大模型蒸馏成功案例幻灯片中特别强调了DeepSeek-R1 蒸馏系列利用强大的 DeepSeek-R1 作为 Teacher将知识蒸馏到其他架构的小型模型中如DeepSeek-R1-Distill-Qwen-1.5B、DeepSeek-R1-Distill-Qwen-7B、DeepSeek-R1-Distill-Llama-70B等。这些蒸馏后的模型在数学、编程等基准测试中取得了极其优异的成绩证明了蒸馏在 LLM 时代的巨大潜力。六、详细实战操作步骤1. 训练任务配置蒸馏方法白盒蒸馏 - 输出对齐Response-based即匹配Teacher和Student的最终输出Logits分布。模型架构以Qwen3-4B-Instruct-2507作为教师模型以Qwen3-1.7B作为学生模型。数据集identity_modify.json训练方式LoRA 微调参数高效微调。2. 实战具体操作步骤四步走第一步训练教师模型使用identity_modify数据集以 LoRA 方式微调Qwen3-4B-Instruct-2507大模型训练 30 个 Epoch最终得到一个权重大小为4B 的 LoRA 适配器lora(4b) adapter。第二步合并教师模型权重将第一步得到的lora(4b) adapter与原始的Qwen3-4B-Instruct-2507模型进行权重合并得到一个在目标数据集上表现优异的全参数微调的教师模型。这一步是为了确保后续蒸馏时教师给出的“软标签”足够准确。第三步执行知识蒸馏使用上一步合并后的全参数教师模型依然使用identity_modify数据集通过知识蒸馏技术对Qwen3-1.7B学生模型进行 LoRA 训练同样训练 30 个 Epoch得到权重大小为1.7B 的 LoRA 适配器lora(1.7b) adapter。第四步合并学生模型与效果验证将第三步生成的lora(1.7b) adapter与Qwen3-1.7B基础模型进行权重合并得到最终的全参数小模型。最后使用合并后的小模型进行推理和效果验证。 实战经验补充基于PPT红框及代码截图工程实现建议PPT底部的终端截图显示这种操作在实际项目中通常可以使用LLaMA-Factory等开源训练框架来完成配置和训练llamafactory cli train ...。核心逻辑这个流程的精髓在于**“教师模型先基于业务数据进行SFT微调再拿着这个懂业务的教师去教小模型”**。如果直接拿未微调的原始基础模型当老师在特定业务场景下的蒸馏效果可能会大打折扣。最后一步合并模型是为了脱离LoRA依赖变成可直接用于推理的safetensors或gguf格式模型以便在实际设备上部署。附录核心数学基础公式KL散度KL 散度衡量两个概率分布P PP和Q QQ之间差异的统计量非对称。离散情况公式D K L ( P ∣ ∣ Q ) ∑ P ( x ) log ⁡ P ( x ) Q ( x ) D_{KL}(P || Q) \sum P(x) \log \frac{P(x)}{Q(x)}DKL​(P∣∣Q)∑P(x)logQ(x)P(x)​连续情况公式D K L ( P ∣ ∣ Q ) ∫ p ( x ) log ⁡ p ( x ) q ( x ) d x D_{KL}(P || Q) \int p(x) \log \frac{p(x)}{q(x)} dxDKL​(P∣∣Q)∫p(x)logq(x)p(x)​dx应用在知识蒸馏中用来衡量学生模型输出的概率分布与教师模型“软标签”概率分布之间的距离从而作为梯度下降的优化目标。