知识提炼
了解知识蒸馏如何压缩人工智能模型,以加快推理速度、提高准确性和边缘设备部署效率。
知识蒸馏(Knowledge Distillation)是机器学习(ML)中的一种模型优化和压缩技术,通过这种技术可以训练出一个紧凑的 "学生 "模型,从而再现一个更大、更复杂的 "教师 "模型的性能。其核心思想是将强大但繁琐的教师模型中的 "知识 "转移到更小、更高效的学生模型中。这样就可以在边缘设备或手机等资源受限的环境中部署高精度模型,而不会明显降低性能。这一过程缩小了大规模、最先进的研究模型与实际、现实世界模型部署之间的差距。
知识蒸馏的工作原理
教师模型通常是一个大型神经网络或模型集合,首先在大型数据集上进行训练,以达到较高的准确度。在提炼过程中,学生模型通过尝试模仿教师的输出来学习。学生模型不是只从训练数据中的地面实况标签中学习,而是根据教师对每个预测的完整概率分布(通常称为 "软标签")进行训练。这些软标签提供了比 "硬标签"(正确答案)更丰富的信息,因为它们揭示了教师模型是如何 "思考 "和概括的。例如,教师模型可能会以 90% 的置信度预测猫的图像是 "猫",但也会给 "狗"(5%)和 "狐狸"(2%)分配较小的概率。这些细微的信息有助于学生模型更有效地学习,通常会比仅根据硬标签进行训练的模型具有更好的泛化效果。这项技术是深度学习工具包中创建高效模型的关键部分。
实际应用
知识蒸馏被广泛应用于各个领域,使强大的人工智能变得触手可及。
- 自然语言处理 (NLP):像BERT这样的大型语言模型(LLM)功能强大,但对于许多应用来说却过于庞大。DistilBERT就是一个著名的 BERT 简化版。它的体积小了 40%,速度快了 60%,同时保留了 BERT 97% 以上的性能,因此适用于消费类设备上的情感分析和问题解答等任务。
- 边缘设备上的计算机视觉:在计算机视觉领域,一个用于图像分类或物体检测的大型高精度模型可以提炼成一个较小的模型。这样,复杂的视觉任务(如智能安防摄像头的实时人员检测)就可以直接在计算能力有限的硬件(如Raspberry Pi)上运行,从而提高速度和数据私密性。像YOLO11这样的 UltralyticsYOLO模型可以成为此类工作流程的一部分,其中来自大型模型的知识可以为小型可部署版本的训练提供参考。
知识蒸馏与其他优化技术的比较
知识蒸馏与其他模型优化技术既有联系又有区别。了解两者的区别是为项目选择正确方法的关键,而这种方法可以通过Ultralytics HUB 等平台进行管理和部署。
- 模型剪枝:这种技术是从已经训练好的网络中删除多余或不太重要的连接(权重),以缩小其规模。相比之下,蒸馏技术则是从头开始训练一个全新的、更小的网络,以模仿教师。
- 模型量化:量化降低了模型权重的数值精度(例如,从 32 位浮点数变为 8 位整数)。这样可以缩小模型,加快兼容硬件的计算速度。量化改变了现有模型的表示,而蒸馏则创建了一个新模型。量化通常与蒸馏或剪枝结合使用,模型可以导出为ONNX等格式,或使用TensorRT 等引擎进行优化。
- 迁移学习:这包括重复使用预训练模型的部分内容(通常是其特征提取主干),然后在一个新的、较小的数据集上对其进行微调。其目的是使现有模型适应新任务。另一方面,蒸馏的目的是将教师模型的预测行为转移到学生模型中,而学生模型的架构可能完全不同。