3. 精度调优建议

3.1. 精度损失排查

转换后的模型出现精度损失时, 请按照以下推荐方式排查出现问题的 stagelayer

3.1.1. CheckLists

  • 第一步, 明确发生精度损失的硬件平台

    • 仅发生在 AX 平台上请继续往下排查. 其他平台均有掉点问题发生 共性问题, 需要用户自行斟酌是否要训练一个更好的模型然后再重新量化;

  • 第二步, 确定发生精度损失的阶段

    • pulsar2 build 对分精度低 (Cosin Distance < 98%)

      • 请按照 [第三步] 建议继续往下排查

    • 上板接入用户 后处理 程序, 解析之后精度很低

      • 请按照 [第四步] 建议继续往下排查

  • 第三步, Cosin Distance 低于 98%

    • 排查建议

      • 使用逐层对分查看发生精度损失的 layer,并参考精度调优建议进行调优。

  • 第四步, 上板精度低,

    • 排查建议

      • 确定后处理是否有误

      • 后处理没问题,联系 AX 反馈问题

  • 第五步, 寻求 AXera 帮助

    • 当用户通过前四步排查建议依然无法解决问题时, 请将相关 log 以及 结论 发送给 FAE 同学, 以便 AX 工程师定位问题

3.1.2. 逐层对分

pulsar2 build 提供了一套浮点模型与量化后模型的逐层精度对比工具。具体使用方式请参考 《逐层对分》 章节

3.1.3. 其他注意事项

如果需要 AX 工程师排查问题, 请提供详细的日志信息以及相关实验结论.

备注

如果能够提供最小复现集可以提高解决问题的效率.

3.2. 精度调优建议

3.2.1. 调整量化数据及配置

  • 调整 meanstd:保证 meanstd 与训练时模型的预处理参数一致;

  • 调整 rgb/bgr 顺序:该参数也会影响量化精度,需要保证与模型训练时输入一致;可通过 quant 中的 input_configs.tensor_format 字段配置;

  • 量化数据:

    • 校准图片与使用场景尽量相同

    • 各类别样本数量应当均衡且覆盖所有类别

3.2.2. 调整量化策略

目前支持 MinMaxMSEPercentile 三种量化策略。可以通过修改 quant 字段中的 calibration_method 进行设置。建议如下:

  • 先使用 MinMax 策略进行量化,如精度不理想再尝试其它量化策略;

  • 针对分类和检测模型:建议使用 MinMax 以及 Percentile 进行量化;

  • 针对序列模型:建议使用 MSE 策略进行量化。

3.2.3. 混合精度

如果尝试了不同量化策略后精度依然不满足需求,可以通过逐层精度分析对比,找到余弦相似度值低于 98% 的层,将该层量化精度设置为 U16。 详请可参考 《混合精度量化详解》