术语表

模型量化

利用模型量化优化人工智能性能。为实际部署减少体积、提高速度和能效。

模型量化是一种强大的模型优化技术,通过将神经网络(NN)的权重和激活值从高精度浮点数(如 32 位浮点数或 FP32)转换为低精度数据类型(如 8 位整数 (INT8)),可以减少神经网络的内存占用和计算成本。这一过程大大缩小了模型的体积,加快了模型的运行速度,使其能够在移动电话和嵌入式系统等资源有限的硬件上部署。其主要目标是提高性能,尤其是推理延迟,同时将对模型预测准确性的影响降至最低。

模型量化的工作原理

量化过程包括将训练模型中连续的浮点数值范围映射为较小的、离散的整数数值集。这种转换减少了存储每个参数所需的位数,从而缩小了整个模型的大小。此外,在许多现代中央处理器和专门的人工智能加速器(如GPUTPU)上,使用低精度整数进行计算的速度要快得多,因为它们有专门的整数运算指令。

量化主要有两种方法:

  1. 训练后量化(PTQ):这是最简单的方法,将已训练好的模型转换为低精度格式。这是一个快速的过程,包括在一个小的校准数据集上分析权重和激活的分布,以确定从浮点数到整数的最佳映射。
  2. 量化感知训练(QAT)在这种方法中,在模拟量化效果的同时对模型进行训练或微调。训练过程的前传模拟量化推理,使模型能够适应精度降低的情况。QAT 通常比 PTQ 获得更高的精度,因为模型在训练阶段学会了补偿潜在的信息损失。PyTorchTensorFlow等框架为实现 QAT 提供了强大的工具。

实际应用

量化对于在真实世界场景中运行复杂的计算机视觉模型至关重要,尤其是在边缘人工智能设备上。

  • 设备上图像分析:许多智能手机应用都使用量化模型来实现实时功能。例如,通过摄像头提供实时物体检测(如识别产品或地标)的应用程序依赖于像Ultralytics YOLO11这样的量化模型,以便在手机硬件上高效运行,而不会耗尽电池或需要云连接。
  • 汽车和机器人:自动驾驶汽车中,行人检测和车道保持模型必须以极低的延迟运行。量化这些模型可使其在英伟达 Jetson 或谷歌 Coral Edge TPU 等专用硬件上运行,确保在几分之一秒内做出决策,这对安全至关重要。

量化与其他优化技术的比较

模型量化经常与其他优化方法一起使用,但其方法与众不同。

  • 模型剪枝这种技术可以去除神经网络中多余或不重要的连接(权重),从而减小其规模和复杂度。剪枝技术通过删除部分神经网络来缩小其规模,而量化技术则通过降低数字精度来提高剩余部分的效率。这两种方法通常结合使用,以实现最大程度的优化。
  • 知识蒸馏这包括训练一个较小的 "学生 "模型来模仿一个较大的、预先训练好的 "教师 "模型。目的是将教师的知识转移到一个更紧凑的架构中。这与量化不同,量化修改的是现有模型的数字表示,而不是训练一个新的模型。
  • 混合精度这种技术在模型训练过程中结合使用不同的数值精度(如 FP16 和 FP32),以加快进程并减少内存使用。虽然相关,但它主要是一种训练优化,而量化通常侧重于优化推理模型

考虑因素和支持

虽然量化非常有益,但可能会影响模型的准确性。量化后必须使用相关性能指标进行全面评估,以确保性能权衡是可以接受的。

Ultralytics 通过支持导出到量化友好的格式,为量化模型的部署提供了便利。这些格式包括具有广泛兼容性的ONNX、在英特尔硬件上进行优化的OpenVINO以及在英伟达™(NVIDIA®)图形处理器上实现高性能的TensorRTUltralytics HUB等平台可以帮助管理从训练到部署优化模型的整个生命周期。与Neural Magic等工具的集成还可利用量化和剪枝技术在 CPU 上实现 GPU 级性能。

加入 Ultralytics 社区

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

立即加入
链接复制到剪贴板