术语表

修剪

通过剪枝优化人工智能模型--降低复杂性、提高效率,并在不牺牲性能的情况下更快地部署到边缘设备上。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

剪枝是人工智能(AI)和机器学习(ML)中的一种模型优化技术,用于减小训练模型的规模和复杂性。它包括有选择性地删除被认为不太重要或多余的参数,如神经网络(NN)中的权重或连接。其主要目标是创建更小、更快的模型,这些模型所需的计算能力和内存更少,而准确率通常不会显著下降。这一过程对于高效部署模型至关重要,尤其是在资源有限的设备上。

修剪的意义

随着深度学习(DL)模型变得越来越大,以应对复杂的任务,它们需要大量的计算资源。剪枝技术通过使模型更加轻量级来应对这一挑战。这种优化降低了存储要求,减少了能耗,并降低了推理延迟,这对实时推理场景至关重要。剪枝对在移动设备、嵌入式系统和边缘人工智能应用等环境中部署模型尤其有益,因为在这些环境中,效率是最重要的。

修剪的应用

剪枝技术广泛应用于各个人工智能领域。下面是两个具体的例子:

  1. 移动计算机视觉Ultralytics YOLOYOLO模型通常用于智能手机上的物体检测,可在不耗尽电池或占用过多内存的情况下进行剪枝,从而高效运行。这使得移动增强现实或设备图像分析等实时应用成为可能。在装有Google EdgeTPURaspberry Pi等硬件上部署经过剪枝的模型,可以显著提高性能,如《Raspberry Pi 上的 EdgeTPU 教程》等指南所示。
  2. 自动驾驶系统:自动驾驶汽车依靠复杂的模型来完成检测行人和其他车辆等任务。修剪这些模型可以缩短做出关键决策所需的时间,从而提高安全性和响应速度。优化后的模型可以使用以下工具进一步加速 NVIDIA TensorRT等工具进一步加速,以便在自动驾驶汽车常用的 GPU 上部署。

类型和技术

修剪方法多种多样,但一般可分为以下几类:

  • 非结构化剪枝:根据大小或重要性去除单个权重,从而建立稀疏模型,这可能需要专门的硬件或软件(如Neural Magic 的 DeepSparse)才能高效执行。Ultralytics 为以下工具提供集成指南 Neural Magic.
  • 结构修剪:删除整个结构,如过滤器、通道或层。这样可以得到更小、更密集的模型,通常更容易在标准硬件上部署。有关结构化方法的更多详情,请参阅NVIDIA在结构化稀疏性(structured sparsity)方面的研究。

剪枝可应用于不同阶段:训练前(确定架构)、训练中或训练后(微调预训练模型)。像 PyTorch等平台提供了各种剪枝技术的实用工具。

剪枝与其他优化技术的比较

剪枝是几种模型优化策略之一。重要的是要将其与相关概念区分开来:

  • 模型量化降低模型权重的数值精度(例如,从 32 位浮点数到 8 位整数),在不删除参数的情况下减小模型大小并加快计算速度。
  • 知识提炼训练一个较小的 "学生 "模型,以复制一个较大的、预先训练好的 "教师 "模型的输出结果。

这些技术并不相互排斥,通常与剪枝技术相结合,以实现最高效率。有关更广泛的概述,请参阅本模型优化指南。通过剪枝优化的模型通常可以导出为标准格式,如 ONNX等标准格式,以实现更广泛的部署兼容性。

总之,剪枝是一种有价值的技术,可用于创建适合各种部署需求的高效人工智能模型,极大地促进了计算机视觉(CV)和其他人工智能任务的实际应用。Ultralytics HUB等工具和平台通常都包含或促进此类优化方法。

阅读全部