使用量化感知训练 (QAT) 优化边缘设备的 AI 模型,确保在资源受限的环境中实现高精度和高效率。
量化感知训练(QAT)是一种复杂的 模型优化技术 是一种复杂的模型优化技术,旨在使神经网络 在计算资源有限的硬件上部署。虽然标准的 深度学习模型通常使用 高精度 32 位浮点数 (FP32)来处理数据,但许多边缘人工智能设备需要更低的精度,例如 8 位浮点数 (FP32)。 边缘人工智能设备需要较低精度,如 8 位 整数 (INT8),以节省内存和能源。QAT 通过以下方法解决了这种转换经常造成的精度下降问题 在训练阶段本身模拟量化的效果。 训练阶段本身的量化效果。这种主动方法允许 模型调整其权重,以适应精度的损失。 精度的损失,从而建立起高效的模型,并保持其预测性能。
量化感知训练 "的核心机制是在训练过程中向模型架构中插入 "假 "量化节点。 模型结构中插入 "假 "量化节点。这些节点模拟将 FP32 值转换为 INT8 时出现的舍入和箝位误差。 FP32 值转换为 INT8 时出现的舍入和箝位误差。在前向传递过程中,模型的运行就像被量化了一样,而在后向传递过程中,模型的运行就像被量化了一样。 反向传递--使用反向传播--以高精度更新权重。 补偿模拟误差。
这一过程主要是对模型进行微调,使其能够抵御精度降低带来的噪音。主要 框架,如 PyTorch和 TensorFlow等框架提供了专门的 API 来促进这一工作流程。通过尽早集成这些约束,最终导出的模型能更好地 更符合目标硬件能力,例如嵌入式系统中的硬件能力。 嵌入式系统。
必须将 QAT 与 训练后量化 (PTQ)。 它们的目标相似,但执行方式不同:
QAT 对以下行业至关重要 推理延迟和功耗是 关键因素。
虽然完整的 QAT 管道通常涉及特定的培训配置,但 ultralytics 库
简化了导出过程,可生成量化的模型以供部署。下面的示例演示了
如何将YOLO11 模型导出到 TFLite 采用 INT8 量化的格式、
为高效边缘执行做好准备。
from ultralytics import YOLO
# Load the YOLO11 model (latest stable version)
model = YOLO("yolo11n.pt")
# Export to TFLite with INT8 quantization
# This creates a compact model optimized for edge devices
model.export(format="tflite", int8=True)
为了最大限度地提高效率,QAT 通常与其他 模型部署技术。 模型剪枝可在量化之前去除冗余连接,进一步缩小模型大小。 量化,进一步缩小规模。此外 知识提炼可用于训练 紧凑的学生模型,然后使用 QAT 对其进行完善。最终量化的模型与 ONNX Runtime等高性能运行时兼容。 OpenVINO等高性能运行时兼容,确保广泛兼容 各种硬件平台的广泛兼容性,包括 Intel到 Google 珊瑚

