3. 精度调优建议
3.1. 精度损失排查
转换后的模型出现精度损失时, 请按照以下推荐方式排查出现问题的 stage
或 layer
。
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. 调整量化数据及配置
调整
mean
和std
:保证mean
和std
与训练时模型的预处理参数一致;调整
rgb/bgr
顺序:该参数也会影响量化精度,需要保证与模型训练时输入一致;可通过quant
中的input_configs.tensor_format
字段配置;量化数据:
校准图片与使用场景尽量相同
各类别样本数量应当均衡且覆盖所有类别
3.2.2. 调整量化策略
目前支持 MinMax
, MSE
, Percentile
三种量化策略。可以通过修改 quant
字段中的 calibration_method
进行设置。建议如下:
先使用
MinMax
策略进行量化,如精度不理想再尝试其它量化策略;针对分类和检测模型:建议使用
MinMax
以及Percentile
进行量化;针对序列模型:建议使用
MSE
策略进行量化。
3.2.3. 混合精度
如果尝试了不同量化策略后精度依然不满足需求,可以通过逐层精度分析对比,找到余弦相似度值低于 98% 的层,将该层量化精度设置为 U16
。
详请可参考 《混合精度量化详解》