功能介绍
当前训练后量化工具自动对ONNX模型中的卷积(Conv)和矩阵乘法(Gemm)进行识别和量化,并将量化后的模型保存为.onnx文件,量化后的模型可以在推理服务器上运行,达到提升推理性能的目的。量化过程中用户需自行提供模型与数据集,调用API接口完成模型的量化调优。
ONNX模型的量化可以采用不同的模式,包括Label-Free和Data-Free模式。这些模式在量化过程中是否需要数据集以及如何使用数据集方面有所不同。msModelSlim工具提供的squant_ptq接口和post_training_quant接口支持这两种量化模式,并且都可以处理静态和动态shape模型。
- Data-Free模式
Data-Free模式则不需要数据集来进行量化矫正。这种模式通常使用模型本身的统计信息或其他无需实际数据的技巧来估计量化参数。Data-Free模式的优势在于,它可以用于那些难以获取或无法获取真实数据的场景。当前以Data-Free模式(以squant_ptq接口为例)(无需校准数据集)为例演示量化步骤。
- Label-Free模式
在Label-Free模式下,量化过程需要少量的数据集来矫正量化因子。这种模式允许量化工具根据实际数据分布调整量化参数,从而提高量化后的模型精度。当前以Label-Free模式(以post_training_quant接口为例)为例演示量化步骤。
目前支持对包括但不限于已验证模型中的模型进行模型训练后量化。
- 若量化任务完成后发现模型性能下降,需要使用AOE工具对模型进行调优,具体方法可参考《AOE工具使用指南》。其中昇腾社区ModelZoo提供的模型一般为AOE工具调优后的模型,量化后改变了模型结构,需要再次使用AOE工具进行调优。
- 量化任务完成后,可能会存在模型精度下降的情况,需要通过一定的配置减少精度损耗。在调用squant_ptq接口量化时,可参考精度保持策略进行配置;在调用post_training_quant接口进行量化时,可以自行配置矫正数据或在QuantConfig接口下指定量化节点,以保持模型的精度。
父主题: 训练后量化(ONNX)