总览
在 工具链概览 章节中,我们对 PTQ 和 QAT 的基本概念做了介绍,帮助您对两种量化方式有了初步认知。 接下来,我们将进一步结合实际使用流程为您介绍,帮助您了解模型量化编译的实际使用路径。
如果您是第一次使用工具链,建议您先根据手头模型的形态选择入口:
-
已有
ONNX模型,建议您先阅读ONNX 模型量化章节了解相关知识。 -
已有
PyTorch模型和训练代码,建议您阅读PyTorch 模型量化章节相关知识。
ONNX 模型量化
ONNX 模型量化整体过程如下图所示:
整体基于 horizon_tc_ui 命令行工具或 HMCT+HBDK API 转换模型,一站式完成模型的图优化、校准、量化、编译全流程。 适合已经完成模型导出,快速完成结构验证、量化编译、性能评估和精度评估的场景,适合作为首次接触工具链时的标准链路或结构简单的模型量化场景。
建议您优先阅读 ONNX 模型快速入门 和 ONNX 模型量化概述 章节进行基本理解。
PyTorch 模型量化
PyTorch 模型量化 整体过程如下图所示:
整体于PyTorch开源框架,以plugin插件的形式提供模型量化能力,并调用hbdk编译器的API实现模型的定点化和编译。 该链路支持对校准后的模型进行进一步的finetune训练,上手难度和训练成本相对较高,但对应地,精度上限也会更高,更适用于围绕模型结构、量化配置和训练策略进行模型迭代优化。
建议您优先阅读 PyTorch 模型快速上手、PyTorch 模型量化简介 以及 PyTorch 模型量化基本流程说明 章节进行基本理解。
两条链路的基本区别
推荐使用方式
推荐您优先阅读 平台差异说明 章节,理解不同平台在量化策略、输出精度、输入输出处理和部署能力上的差异。
针对在不同平台上进行模型量化与部署验证的场景,以PyTorch框架的原始模型为例,整体推荐流程如下:
使用时您可按如下建议选择路径:
-
如果当前目标是先完成模型结构验证、快速性能验证或部署可行性验证,建议您优先选择更轻量的路径。
-
如果快速验证后精度不满足需求,再进入精度调优或
QAT路径继续优化。 -
无论走哪条链路,最终都应回到部署侧结果验证,包括
quantized.bc / hbm精度、性能及一致性检查。
快速验证优先走更轻量的路径
如果您的目标是先确认模型是否能顺利量化、编译并完成基础验证,建议优先选择更轻量的路径:
-
对
ONNX模型,优先走ONNX 模型量化链路。 -
对
PyTorch模型,优先完成一次Calibration最小闭环验证。
正式精度迭代再进入 QAT
如果快速验证后发现精度仍不满足需求,再进入更完整的优化路径:
-
ONNX链路下,继续参考 精度调优指导 完成精度调优。 -
PyTorch链路下,在Calibration基础上继续进入QAT训练,并结合 QAT 精度调优工具、精度调优指导和 部署一致性分析说明 继续定位问题。
后续章节中,我们将分别对 ONNX 模型量化、PyTorch 模型量化、模型转换编译过程中可能涉及的模型修改场景以及 X86 仿真环境下的进一步操作进行详细的说明介绍。
