通过模型剪枝优化机器学习模型。针对资源有限的部署,实现更快的推理、更少的内存使用和更高的能效。
模型剪枝是一种机器学习(ML)技术,用于通过减少模型的大小和复杂性来优化训练有素的模型。这包括识别和删除对模型整体性能贡献最小的不太重要的参数,如神经网络(NN)中的模型权重或连接。其主要目的是创建更小、更快的模型,所需的计算能力和内存更少,而精度通常不会显著下降。这一过程是剪枝这一更广泛概念的具体应用,直接应用于 ML 模型,使其在部署时更加高效。
模型剪枝的主要驱动力是效率。现代深度学习(DL)模型,尤其是计算机视觉(CV)等领域的模型,可能非常庞大,而且计算密集。这给模型部署带来了挑战,尤其是在资源有限的设备上,如智能手机、嵌入式系统或边缘计算场景。模型剪枝可通过以下方式帮助解决这些问题:
模型剪枝技术各不相同,但一般都根据去除内容的粒度划分为不同类别:
剪枝可以在模型完全训练完成后进行,也可以在训练过程中进行。剪枝后,模型通常会进行微调(在较小的架构上进一步训练),以恢复参数去除过程中损失的性能。像 PyTorch等框架提供了实现各种剪枝方法的实用程序,如PyTorch 剪枝教程所示。
模型剪枝在许多人工智能领域都很有价值:
模型剪枝是用于模型优化的几种技术之一。它有别于以下几种技术,但往往是它们的补充:
这些技术可以结合使用;例如,可以先对一个模型进行剪枝,然后进行量化,以达到最高效率。优化后的模型通常会导出为标准格式,如 ONNX(Ultralytics 导出选项)等标准格式,以实现广泛的部署兼容性。Ultralytics HUB等平台提供了管理模型和数据集(如 COCO)的环境,并简化了优化部署的路径。