术语表

量化感知训练(QAT)

利用量化感知训练(QAT)优化边缘设备的人工智能模型,确保在资源有限的环境中实现高精度和高效率。

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

了解更多

量化感知训练(QAT)是一种用于优化深度学习(DL)模型的强大技术,例如 Ultralytics YOLO模型,以便在计算资源有限的设备(如手机或嵌入式系统)上部署。标准模型通常使用高精度数(如 32 位浮点数或FP32)进行计算,这需要大量的处理能力和内存。QAT 的目的是通过在训练阶段为模型做好准备,使其在使用低精度数(如 8 位整数或INT8)时也能表现出色,从而缩小边缘设备高精度和高效性能之间的差距,从而降低这种需求。这种优化对于在智能手机 或物联网传感器等硬件上直接执行复杂的人工智能任务至关重要。

量化感知训练的工作原理

与在模型完全训练完成后才对其进行量化的方法不同,QAT 将量化效果的模拟直接集成到训练过程中。在训练过程中,它在模型架构中引入了称为 "假量化 "节点的操作。这些节点会在前向传递过程中模拟较低精度(如INT8 精度对模型权重和激活的影响,将数值四舍五入,就像在真正量化的模型中一样。但是,在后向传递过程中(模型通过反向传播进行学习),通常使用标准的高精度浮点数来计算梯度和应用更新。这样,模型的参数就能适应和学习实际量化推理过程中出现的精度损失。通过在训练过程中 "看到 "量化的影响,模型可以最大限度地减少在低精度格式下部署模型时经常出现的精度下降,这也是模型优化策略中讨论的一个关键方面。TensorFlow LitePyTorch等框架提供了实现 QAT 的工具。

与相关概念的区别

QAT 与模型量化(培训后)

主要区别在于何时进行量化。模型量化(通常指训练后量化(PTQ))是指在训练完成后,将预先训练好的全精度模型转换为低精度格式。PTQ 通常比较简单,因为它不需要重新训练或访问原始训练数据集。不过,它有时会导致模型精度的明显降低,特别是对于执行物体检测图像分割等任务的复杂模型。相比之下,QAT 会在训练过程中模拟量化,从而使模型本身对精度降低具有更强的鲁棒性。与 PTQ 相比,虽然 QAT 需要更多的计算资源训练数据,但最终量化模型的精度往往更高。对于像YOLO 这样包含量化友好块的模型来说,QAT 能以最小的精度损失带来显著的性能优势。

QAT 与混合精度

虽然这两种技术都涉及数值精度,但它们的目标有所不同。混合精度训练的主要目的是通过结合使用低精度(如 16 位浮点或FP16)和标准精度(32 位浮点)格式进行计算和存储,加快训练过程本身并减少训练过程中的内存使用。QAT 特别注重优化模型,以便在模型部署后使用低精度整数格式(如 INT8)进行高效推理。虽然混合精度有助于训练,但 QAT 可确保最终模型在量化推理硬件(如NPU(神经处理单元)或TPU)的限制下运行良好。

QAT 的实际应用

量化感知训练对于在资源有限的环境中部署复杂的人工智能模型至关重要,因为效率是关键所在。

  1. 设备上的计算机视觉:运行复杂的计算机视觉模型,如 Ultralytics YOLOv8直接在智能手机上运行复杂的计算机视觉模型,如增强现实应用中的实时物体检测或照片管理工具中的图像分类。QAT 可使这些模型高效运行,而不会造成严重的电池损耗或延迟。
  2. 汽车和机器人领域的边缘人工智能:自动驾驶汽车中的行人检测或车道保持辅助等任务或机器人技术中的物体操纵部署模型。QAT 可使这些模型在Google Edge TPU NVIDIA Jetson 等专用硬件上运行,确保关键实时决策的低推理延迟。这对于安全警报系统停车场管理等应用至关重要。

Ultralytics 支持将模型导出为各种格式,如 ONNX, TensorRTTFLite 等多种格式,这些格式与 QAT 工作流程兼容,可以在各种硬件上高效部署。您可以使用Ultralytics HUB 等平台管理和部署经过 QAT 优化的模型。在 QAT 之后使用相关指标评估模型性能对于确保满足准确性要求至关重要。

阅读全部