趋近智
虽然像 DPM-Solver 这样的优化的采样器可以减少生成所需的步数,但基础扩散模型通常仍然庞大且计算密集。模型蒸馏提供了一种补充方法,通过创建更小、更快的“学生”模型来模拟较大、预训练的“教师”扩散模型的行为,从而加速推理。这项技术沿用了更广义的深度学习实践,即将知识从复杂模型迁移到更高效的模型中。
蒸馏技术在扩散模型中的主要目标是训练一个学生网络 θstudent,使其模仿一个固定的、预训练的教师网络 θteacher 所做的预测。学生模型通常具有明显更小的架构(例如,更少的层、通道或注意力头),使其在推理时更快、内存占用更少。
有几种策略可以定义学生模型应如何模仿教师模型:
匹配去噪预测: 最直接的方法是训练学生模型,使其在给定带噪声输入 xt 和时间步 t 时,预测与教师模型相同的输出。如果两个模型都预测噪声 ϵ,则蒸馏损失旨在最小化其预测之间的差异:
Ldistill=Ex,ϵ,t[w(t)∣∣ϵθstudent(xt,t)−ϵθteacher(xt,t)∣∣2]这里,x 是数据样本,ϵ 是采样噪声,t 是时间步,xt=αˉtx+1−αˉtϵ 是带噪声输入,w(t) 是一个可选的加权项,可以优先在特定时间步进行匹配。如果模型预测去噪样本 x0,也可以定义类似的目标。在此过程中,教师模型的参数 (θteacher) 保持不变。
匹配概率流 ODE 解: 学生模型可以被训练来近似由与教师模型相关联的概率流 ODE 定义的轨迹,而不仅仅是匹配离散步长的输出。这通常包括匹配预测的分数场或速度场。
特征层蒸馏: 除了仅仅匹配最终输出外,还可以鼓励学生模型复制教师模型在特定层的内部特征表示。这需要添加辅助损失项,以最小化中间激活之间的差异,这可能提供更丰富的训练信号。
一个主要挑战是,执行单步生成的学生模型可能难以复制多步教师模型的质量。Salimans & Ho (2022) 的论文“用于扩散模型快速采样的渐进式蒸馏”提出了一种有效的技术来解决此问题。
主要思路是迭代地蒸馏采样过程。
这种渐进式方法使学生模型能够跨多个中间阶段学习复杂的映射,与尝试大幅减少步数的单阶段蒸馏相比,通常能获得更好的样本质量。
示意图展示了渐进式蒸馏过程。每个学生模型学习模拟前一个模型(教师或前一个学生模型)的两步,从而迭代地减少所需的采样步数。
模型蒸馏,特别是渐进式蒸馏,与一致性模型(在第 5 章中讨论过)具有相同的加速采样的目标。然而,其机制有所不同:
在实践中,这两种方法都能带来明显的加速,通常能够在 1 到 8 步内完成生成。渐进式蒸馏在保留原始多步采样过程的某些方面可能提供更大的灵活性,而一致性模型则是专门为基于一致性属性的极少步或单步生成而设计。
蒸馏技术的一个主要优点是选择学生模型架构的灵活性。它无需与教师模型匹配。常见选择包括:
选择很大程度上取决于目标应用、所需的推理速度、可接受的质量权衡以及可用于推理的计算资源。
优点:
缺点:
“模型蒸馏为优化扩散模型提供了一系列有价值的技术,并在采样方面进行了算法改进。通过创建更小、更快的学生模型,蒸馏使当前前沿的生成能力在应用中更具实用性,补充了本章稍后讨论的量化和硬件加速等方法。”
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造