了解知识蒸馏如何压缩 AI 模型,以实现更快的推理、更高的准确性和边缘设备部署效率。
知识蒸馏是一种复杂的 模型优化策略。 知识蒸馏是机器学习中一种复杂的模型优化策略。 学生 "模型进行训练,以重现更大、更复杂的 "教师 "模型的性能和行为。 "教师 "模型的性能和行为。其主要目标是将泛化能力和 "知识" 从庞大的教师网络转移到较小的学生网络。通过这一过程,可以在资源有限的硬件上 在资源有限的硬件上部署高精度模型,如 边缘计算设备上部署高精度模型,而不会出现 在较小的架构中,精度通常会大幅下降。通过压缩信息,开发人员 可以实现更快的推理延迟和更少的 内存使用量,同时保持强大的预测能力。
这一过程依赖于 "软标签 "的概念。在标准的 监督学习中,模型是根据 训练数据中的 "硬标签"(例如,一张图像 100% 是 "猫",0% 是 "狗")来训练模型、 一张图片 100% 是 "猫",0% 是 "狗")。然而,预先训练的教师模型会产生 然而,预先训练好的教师模型会在所有类别中产生概率分布,即所谓的 "软标签"。例如,教师可能会预测一幅图像 90%是猫、9%是狗、1%是汽车。这些软标签包含了关于类之间关系的丰富信息。 表明特定的猫看起来有点像狗。
在提炼过程中,对学生模型进行训练,使其预测结果与教师软标签之间的差异最小化。 软标签之间的差值,通常使用特定的 损失函数,如库尔巴克-莱伯勒发散。这样 这样,学生就能学习到教师已经发现的 "暗知识 "或数据的细微结构。 的细微结构。对于基础知识的理解,研究人员通常会参考 Geoffrey Hinton 的开创性论文。
虽然库通常会在内部处理复杂的损耗计算,但初始化一个学生模型进行训练
是实际操作的第一步。下面是加载轻量级学生模型的方法,例如
YOLO11 使用 ultralytics 包装
from ultralytics import YOLO
# Load a lightweight student model (YOLO11n)
# 'n' stands for nano, the smallest and fastest version
student_model = YOLO("yolo11n.pt")
# Train the student model on a dataset
# In a distillation workflow, this training would be guided by a teacher model's outputs
results = student_model.train(data="coco8.yaml", epochs=5, imgsz=640)
在效率与准确性同样重要的行业中,知识蒸馏至关重要。
必须将知识蒸馏与其他用于提高模型效率的技术区分开来,因为它们的工作原理不同。 它们的工作原理不同。
通过将这些技术相结合--例如,将教师提炼为学生,然后进行量化--开发人员可以最大限度地提高嵌入式系统的性能。 就能最大限度地提高嵌入式系统的性能。

