模型的训练后量化¶
训练后模型优化是指应用无需重新训练或进行微调的特殊方法,将模型转换为对硬件更友好的表示的过程。该领域最受欢迎、应用最广泛的方法是 8 位训练后量化,因为该方法:
简单易用。
不会严重降低精度。
能够显著提升性能。
适合许多硬件现货,因为它们当中的大多数硬件都对 8 位计算提供本机支持。
8 位整数量化将权重和激活的精度降低到 8 位,从而使模型占用空间减少近四分之三,并显著提高推理速度(这主要是由于推理所需的吞吐量较低)。这个降低精度的步骤是在进行实际推理之前离线完成的,因此模型会转换为量化表示。该过程不需要深度学习框架源码中的训练数据集或训练管道。
要应用 OpenVINO 中的训练后方法,您需要具备以下条件:
一个 FP32 或 FP16 浮点精度模型,转换为可在 CPU 上运行的 OpenVINO 中间表示 (IR) 格式。
一个代表性校准数据集(例如 300 个样本),代表了某个用例场景。
如果存在精度限制,则应该具备可用的验证数据集和精度指标。
OpenVINO 目前提供两个具有训练后量化功能的工作流程:
使用 POT 进行训练后量化 - 仅适用于 OpenVINO 中间表示 (IR) 格式的模型。
使用 NNCF 进行训练后量化 - 跨框架模型优化解决方案,提供一个简单的全新 API,用于训练后量化。