了解量化感知训练(QAT)如何Ultralytics 以实现边缘部署。探索如何在INT8精度下保持高精度。
量化感知训练(QAT)是一种在机器学习模型训练阶段使用的专业技术,旨在使其适应低精度环境。在标准深度学习工作流中,模型通常采用高精度32位浮点数(FP32)运行。虽然这种精度能提供卓越的准确性,但计算成本高昂且内存消耗大,尤其在边缘设备上更为显著。 QAT在模型训练期间模拟量化效应——将精度降至8位整数(INT8)等格式。通过在学习过程中引入量化误差,模型学会调整权重,从而有效恢复训练后转换可能丢失的精度。
在资源受限设备上部署计算机视觉模型时,通常需要在速度与性能之间取得平衡。标准量化方法(即后训练量化PTQ)仅在模型完全训练完成后才进行精度降低。虽然PTQ速度快,但有时会降低敏感模型的准确性,因为神经网络权重在未经调整的情况下被大幅改变。
QAT通过让模型"练习"量化过程来解决这个问题。 在训练的前向传播过程中, 权重和激活值均以低精度数值进行模拟。这使得梯度下降过程能够 以最小化量化状态下损失的方式更新模型参数。最终获得的稳健模型 即使部署在微控制器 或移动处理器等硬件上, 仍能保持高精度。
区分QAT与模型量化(特别是后训练量化PTQ)是有帮助的:
QAT对于需要在边缘硬件上进行实时推理的行业至关重要。
Ultralytics YOLO 支持将模型导出为量化格式。虽然量化训练(QAT)是复杂的训练流程,但现代框架能简化模型准备工作,使其适用于量化推理。
以下是一个示例,展示如何将训练好的YOLO26模型导出为INT8量化TFLite 该格式利用量化原理实现高效的边缘部署。
from ultralytics import YOLO
# Load a trained YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format with INT8 quantization
# This prepares the model for efficient execution on edge devices
model.export(format="tflite", int8=True)
通过量化技术优化的模型旨在运行于专用推理引擎。QAT训练的模型 常通过ONNX 部署以实现跨平台兼容性,或 OpenVINO 进行优化。Intel 确保无论目标是树莓派还是专用EdgeTPU模型都能以最高效率和速度运行。
要充分理解QAT,熟悉几个相关的机器学习概念会有所帮助:
通过将量化感知训练整合到 机器学习运维(MLOps)管道中,开发者能够 弥合高精度研究模型与高效、可投入生产的边缘人工智能应用之间的鸿沟。