术语表

模型量化

利用模型量化优化人工智能性能。为实际部署减少体积、提高速度和能效。

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

了解更多

模型量化是深度学习(DL)中一项重要的模型优化技术,用于降低模型的计算和内存成本。它通过将模型参数(权重和激活)的数值精度从高精度表示(通常是 32 位浮点数(FP32))转换为低精度格式(如 16 位浮点数 (FP16)、8 位整数(INT8) 或更低的位表示)来实现。这一过程使机器学习模型更小、更快、更节能,这对于在移动设备或边缘人工智能系统等资源有限的环境中部署复杂模型尤为重要。

模型量化的工作原理

模型量化的核心是将高精度张量中的数值范围(如 FP32 中的权重和激活度)映射到低精度数据类型(如 INT8)所能表示的更小范围。这种转换大大减少了存储模型所需的内存和推理所需的计算资源,因为在GPUCPU 以及TPUNPU 等专用加速器等现代硬件上,对低精度数(尤其是整数)的运算通常更快、更节能。我们的目标是在对模型预测性能影响最小的情况下实现这些效率提升。

模型量化的优势

将量化技术应用于深度学习模型具有几个关键优势:

  • 缩小模型尺寸:低精度数据类型所需的存储空间更小,使模型更易于存储和分发,特别是在设备上部署时。
  • 更快的推理速度:使用低精度数字(尤其是整数)进行计算时,在兼容硬件上的执行速度更快,从而减少了推理延迟。这对实时应用至关重要。
  • 提高能效:更快的计算速度和更少的内存访问可降低功耗,延长移动设备边缘设备的电池寿命。
  • 增强的硬件兼容性:许多专用硬件加速器(Edge TPUARM 处理器上的 NPU)针对低精度整数运算进行了优化,可显著提升量化模型的性能。

量化技术

模型量化主要有两种方法:

  • 训练后量化(PTQ):这种方法是使用标准浮点精度对已经训练过的模型进行量化。由于不需要重新训练或访问原始训练数据,因此实施起来比较简单。不过,这种方法有时会导致模型精度明显下降。TensorFlow 模型优化工具包等工具提供 PTQ 功能。
  • 量化感知训练(QAT)这种技术在模型训练过程中模拟量化的影响。通过让模型 "意识到 "即将到来的精度降低,QAT 通常能获得比 PTQ 更高的精度,尤其是对于对量化敏感的模型,不过它需要修改训练工作流程和访问训练数据。PyTorch 提供 QAT 支持

实际应用

模型量化被广泛应用于各个领域:

  • 移动视觉应用:在智能手机上直接执行复杂的计算机视觉任务,如实时物体检测(如使用量化的Ultralytics YOLO 模型)或图像分割,用于增强现实、照片编辑或视觉搜索等应用。量化技术使这些要求苛刻的模型在移动硬件上变得可行。
  • 自动驾驶汽车和机器人:在汽车或无人机中部署感知模型(用于检测行人、车辆和障碍物),低延迟和高能效对安全性和运行耐久性至关重要。量化模型有助于满足这些严格的实时处理要求
  • 边缘人工智能设备:在低功耗微控制器或专用边缘处理器上运行用于工业缺陷检测、智能家居自动化或可穿戴健康监测等任务的人工智能模型。

考虑因素和相关概念

量化虽然大有裨益,但有可能影响模型的准确性。量化后,使用相关性能指标进行仔细评估至关重要。正如在部署量化 YOLOv8 模型时所讨论的那样,使用量化友好型模型架构(如在 YOLOv8 中替换某些激活函数)等技术有助于减轻精度下降。

模型量化是多种模型优化技术之一。其他技术包括

  • 模型剪枝删除神经网络中多余或不重要的连接(权重)。
  • 混合精度在训练或推理过程中使用不同数值精度(如 FP16 和 FP32)的组合。
  • 知识蒸馏训练一个较小的 "学生 "模型来模仿一个较大的、预先训练好的 "教师 "模型的行为。

Ultralytics 支持将模型导出为各种格式,以便于量化和部署,包括 ONNX, OpenVINO(针对Intel 硬件进行了优化)、 TensorRT(针对NVIDIA ®)图形处理器)、 CoreML(适用于苹果设备)和TFLite,从而实现在不同硬件平台上高效部署模型。您可以使用Ultralytics HUB 等工具管理和部署您的模型,包括量化版本。集成 Neural Magic等集成工具还能利用量化技术优化CPU 。

阅读全部