术语表

模型量化

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

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

了解更多

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

模型量化的工作原理

模型量化的核心是将高精度张量中的数值范围(如 FP32 中的权重和激活度)映射到低精度数据类型(如INT8)所能表示的更小范围。这种转换大大减少了存储模型所需的内存和推理所需的计算能力,因为在GPU等现代硬件和TPU 等专用加速器上,对低精度数(尤其是整数)的运算通常更快、更节能。

模型量化的优势

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

  • 缩小模型尺寸:更低的精度要求每个参数的位数更少,从而大大减少了模型的存储空间。这对无线更新和存储空间有限的设备非常有利。
  • 更快的推理速度:使用较低精度数字进行计算,尤其是整数运算,在兼容硬件上通常会更快,从而降低推理延迟
  • 功耗更低:减少内存访问和简化计算可降低能耗,这对电池供电的边缘设备至关重要。
  • 提高部署能力:可部署大型复杂模型,如 Ultralytics YOLO等大型复杂模型。

量化技术

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

  1. 训练后量化(PTQ):这种方法是使用标准浮点精度对已经训练过的模型进行量化。由于不需要重新训练,因此实施起来比较简单,但有时会导致模型精度明显下降。通常使用具有代表性的数据集进行校准,以尽量减少精度损失。
  2. 量化感知训练(QAT)QAT 在训练过程中模拟量化的影响。模型通过学习来适应较低的精度,通常会比 PTQ 获得更高的精度,不过它需要访问原始的训练管道和数据。

实际应用

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

  1. 移动计算:可直接在智能手机上实现复杂的人工智能功能,如用于相机滤镜的实时物体检测图像分类和自然语言处理,而无需严重依赖云计算。TensorFlow Lite等框架大量使用了量化技术。
  2. 自动驾驶汽车量化模型可以更快地处理行人检测、车道保持和交通标志识别等任务的传感器数据(摄像头、激光雷达),这对自动驾驶系统的实时决策至关重要。Ultralytics 提供适合此类应用的各种模型部署选项

考虑因素和相关概念

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

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

  • 模型剪枝删除不重要的权重或连接,以降低模型的复杂性。
  • 混合精度在训练或推理过程中结合使用 FP16 和 FP32,在速度/内存和精度之间取得平衡。
  • 知识提炼训练一个较小的 "学生 "模型,以模仿一个较大的、预先训练好的 "教师 "模型的输出。

Ultralytics 支持将模型导出为各种便于量化的格式,包括 ONNX, OpenVINO, TensorRT, CoreMLTFLite,从而实现在不同硬件平台上的高效部署。您可以使用Ultralytics HUB 等工具管理和部署您的模型,包括量化版本。

阅读全部