4.1.1.1. PTQ 转换的流程与步骤¶
模型转换是指将原始浮点模型转换为地瓜机器人混合异构模型的过程。
原始浮点模型(文中部分地方也称为浮点模型)是指您通过 TensorFlow/PyTorch 等等 DL 框架训练得到的可用模型,这个模型的计算精度为 float32;混合异构模型是一种适合在地瓜机器人计算平台上运行的模型格式。
本章节将反复使用到这两种模型名词,为避免理解歧义,请先理解这个概念再阅读下文。
配合地瓜机器人工具链的模型完整开发过程,需要经过 浮点模型准备 、 模型检查 、 模型转换 、 性能评估 和 精度评估 共五个重要阶段,如下图所示。
浮点模型准备 阶段的产出是输入到模型转换工具的浮点模型, 这些模型一般都是基于公开 DL 训练框架得到的, 需要您注意的是将模型导出为地瓜机器人工具支持的格式。 具体要求与建议请参考 浮点模型准备 章节。
模型检查 阶段用来确保算法模型是符合计算平台要求的。 地瓜机器人提供了指定工具完成此阶段检查,对于不符合要求的情况, 检查工具会明确给出不符合要求的具体算子信息,方便您结合算子约束的说明将模型调整过来。 具体使用请参考 验证模型 章节。
模型转换 阶段将完成浮点模型到地瓜机器人混合异构模型的转换。 为了模型能在地瓜机器人计算平台上高效运行,地瓜机器人转换工具内部会完成模型优化、量化和编译等关键步骤, 地瓜机器人的量化方法经过了长期的技术与生产验证,在大部分典型模型上可以保证精度损失小于 1%。 具体使用请参考 校准数据准备 及 模型量化与编译 章节。
性能评估 阶段提供了系列评估模型性能的工具。 在应用部署前,您可以使用这些工具验证模型性能是否达到应用要求。 对于部分性能不及预期的情况,也可以参考地瓜机器人提供的性能优化建议进行调优。 具体评估请参考 模型性能分析与调优 章节。
精度评估 阶段提供了系列评估模型精度的工具。 大部分情况下,地瓜机器人转换后模型可以保持与原始浮点模型基本一致的精度效果, 在应用部署前,您可以使用地瓜机器人工具验证模型的精度是否符合预期。 对于部分精度不及预期的情况,也可以参考地瓜机器人提供的性能优化建议进行调优。 具体评估请参考 模型精度分析与调优 章节。
注意
通常在模型转换后就已经得到了可以上板的模型, 但是为了确保您得到的模型性能和精度都是符合应用要求的, 地瓜机器人强烈建议每次转换后都完成后续的性能评估与精度评估步骤。
模型转换过程会生成 onnx 模型,该模型均为中间产物,只是便于用户验证模型精度情况, 因此不保证其在版本间的兼容性。若使用示例中的评测脚本对 onnx 模型单张或在测试集上进行评测时, 请使用当前版本工具生成的 onnx 模型进行操作。