深圳Yolo 视觉
深圳
立即加入
词汇表

量化感知训练 (QAT)

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

量化感知训练(QAT)是一种复杂的 模型优化技术 是一种复杂的模型优化技术,旨在使神经网络 在计算资源有限的硬件上部署。虽然标准的 深度学习模型通常使用 高精度 32 位浮点数 (FP32)来处理数据,但许多边缘人工智能设备需要更低的精度,例如 8 位浮点数 (FP32)。 边缘人工智能设备需要较低精度,如 8 位 整数 (INT8),以节省内存和能源。QAT 通过以下方法解决了这种转换经常造成的精度下降问题 在训练阶段本身模拟量化的效果。 训练阶段本身的量化效果。这种主动方法允许 模型调整其权重,以适应精度的损失。 精度的损失,从而建立起高效的模型,并保持其预测性能。

QAT 如何工作

量化感知训练 "的核心机制是在训练过程中向模型架构中插入 "假 "量化节点。 模型结构中插入 "假 "量化节点。这些节点模拟将 FP32 值转换为 INT8 时出现的舍入和箝位误差。 FP32 值转换为 INT8 时出现的舍入和箝位误差。在前向传递过程中,模型的运行就像被量化了一样,而在后向传递过程中,模型的运行就像被量化了一样。 反向传递--使用反向传播--以高精度更新权重。 补偿模拟误差。

这一过程主要是对模型进行微调,使其能够抵御精度降低带来的噪音。主要 框架,如 PyTorchTensorFlow等框架提供了专门的 API 来促进这一工作流程。通过尽早集成这些约束,最终导出的模型能更好地 更符合目标硬件能力,例如嵌入式系统中的硬件能力。 嵌入式系统

与训练后量化的差异

必须将 QAT 与 训练后量化 (PTQ)。 它们的目标相似,但执行方式不同:

  • 训练后量化(PTQ):在模型完全训练完成后应用。它分析一个 将浮点数值映射为整数。虽然 PTQ 快速且易于实现,但有时会导致精度大幅下降。 有时会导致敏感模型的准确度大幅下降。 敏感模型的准确性。
  • 量化感知训练(QAT):将量化纳入训练或 微调过程。它比 PTQ 但通常能获得更高的准确度,因此成为部署 等先进模型的首选。 Ultralytics YOLO11在 等先进模型的首选。

实际应用

QAT 对以下行业至关重要 推理延迟和功耗是 关键因素。

  1. 自动驾驶:车辆依靠 计算机视觉来完成行人 检测和车道跟踪等任务。这些系统通常在专用硬件上运行,如 NVIDIA Jetson模块。QAT 可确保模型 保持足够的准确性,同时又能快速做出实时决策。
  2. 移动医疗:手持诊断设备通常使用 图像分类来分析医疗 扫描。使用 QAT,开发人员可以在移动处理器上部署强大的人工智能模型,例如 高通骁龙芯片等移动处理器上部署强大的人工智能模型,从而实现先进的 诊断,而不会耗尽设备的电池。

用Ultralytics实现量化

虽然完整的 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等高性能运行时兼容,确保广泛兼容 各种硬件平台的广泛兼容性,包括 IntelGoogle 珊瑚

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入