Quantization-Aware Training (QAT)
了解量化感知训练(QAT)如何优化 Ultralytics YOLO26 模型以进行边缘部署。探索如何使用 INT8 精度保持高准确率。
量化感知训练 (QAT) 是一种专门技术,在机器学习模型的训练阶段使用,用于让模型适应低精度环境。在标准的深度学习工作流中,模型通常使用高精度的 32 位浮点数 (FP32) 运行。虽然这种精度能够提供出色的准确率,但计算成本和内存占用可能很高,尤其是在边缘设备上。QAT 会在模型仍处于训练状态时,模拟量化的影响,即将精度降低到 8 位整数 (INT8) 等格式。通过在学习过程中引入这些量化误差,模型能够学习调整其权重,从而有效恢复在训练后转换过程中可能损失的准确率。
QAT 对边缘部署的重要性#
将计算机视觉模型部署到资源受限的设备上,通常需要在速度和性能之间取得平衡。标准量化方法称为训练后量化 (PTQ),仅在模型完成训练后才降低精度。虽然 PTQ 速度快,但由于神经网络权重会在没有调整机会的情况下发生显著变化,因此有时会降低敏感模型的准确率。
QAT 通过让模型“练习”进行量化来解决这一问题。在训练的前向传播过程中,权重和激活值会被模拟为低精度值。这使得梯度下降过程能够以专门针对量化状态最小化损失的方式更新模型参数。最终得到的模型具有较强的鲁棒性,即使部署在微控制器或移动处理器等硬件上,也能保持较高的准确率。
区分 QAT 与训练后量化 (PTQ)#
了解 QAT 与模型量化(尤其是训练后量化 (PTQ))之间的区别会很有帮助:
- 训练后量化 (PTQ): 模型以 FP32 正常训练。训练完成后,权重会被转换为 INT8。这种方法速度更快且不需要重新训练,但对于复杂架构,准确率损失可能更大。
- 量化感知训练 (QAT): 在微调阶段模拟量化过程。模型会调整其内部参数,以适应低精度引入的噪声,通常比 PTQ 获得更高的准确率。
实际应用#
对于实时推理至关重要的边缘硬件应用行业,QAT 不可或缺。
- 自主无人机: 在AI 无人机作业中,电池续航和机载处理能力都受到严重限制。使用经过 QAT 优化的模型的无人机可以利用 INT8 加速器,以高精度检测障碍物或跟踪目标;与 FP32 模型相比,这能显著延长飞行时间。
- 智能零售摄像头: 超市使用零售业计算机视觉来监控货架库存或管理结账队伍。这些系统通常运行在低功耗边缘网关上。QAT 可确保在这些设备上运行的目标检测模型保持所需的准确率,从而区分相似商品,而无需依赖昂贵的云连接。
使用 Ultralytics 实现 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 Runtime 进行跨平台兼容,或使用 OpenVINO 针对 Intel 硬件进行优化。这样无论目标设备是 Raspberry Pi 还是专用的 Edge TPU,模型都能以尽可能高的效率和速度运行。
与 QAT 相关的核心概念#
要全面理解 QAT,熟悉几个相关的机器学习概念会很有帮助:
- 精度: 指表示数字时所使用的细节程度。半精度 (FP16) 和 INT8 是常见的量化目标。
- 校准: 确定动态激活值范围(最小值/最大值)的过程,用于有效地将浮点数映射为整数。这是部署量化 YOLO 模型的关键步骤。
- 推理延迟: QAT 的主要优势之一是降低推理延迟,从而实现实时系统中的更快速决策。
- 微调: QAT 通常作为预训练模型上的微调步骤执行,而不是从头开始训练,从而节省计算资源。
将量化感知训练集成到 MLOps 流水线中,开发者可以弥合高准确率研究模型与高效、可用于生产的边缘 AI 应用之间的差距。









