精度预检
前提条件
完成精度数据采集,得到MindSpore或PyTorch训练场景昇腾NPU环境的精度数据。
执行预检
- (可选)数据准备。
- PyTorch训练场景将昇腾NPU环境下dump的精度数据拷贝至GPU环境。(用于保证预检执行的精度数据一致)
- MindSpore训练场景无需执行此步骤。
- 启动预检。
- MindSpore训练场景直接在昇腾NPU环境下执行预检。
msprobe -f mindspore run_ut -api_info ./dump_data/step0/rank/dump.json -o ./checker_result
- PyTorch训练场景分别在GPU和昇腾NPU环境下使用run_ut命令执行预检操作。(预检场景GPU环境需要使用昇腾NPU环境拷贝的精度数据)
msprobe -f pytorch run_ut -api_info ./dump_data/step0/rank/dump.json -o ./checker_result
出现如下日志表示预检完成。
Successfully completed run_ut/multi_run_ut
此时-o参数指定的路径下会生成两个csv文件,分别为accuracy_checking_details_{timestamp}.csv和accuracy_checking_result_{timestamp}.csv。
- 对于MindSpore训练场景,accuracy_checking_result_{timestamp}.csv标明每个API是否通过测试。对于其中没有通过测试的或者特定感兴趣的API,根据其API Name字段在accuracy_checking_details_{timestamp}.csv中查询其各个输出的达标情况以及比较指标。图1 accuracy_checking_result图2 accuracy_checking_details
- 对于PyTorch训练场景,这两个文件是预检的中间结果,需要完成下一步,才能得到预检的最终结果。
- MindSpore训练场景直接在昇腾NPU环境下执行预检。
- 预检结果比对。(仅PyTorch训练场景支持)
将NPU和GPU的预检结果进行比对,查看NPU数据中是否存在精度问题的API。
可以将GPU环境上的accuracy_checking_details_{timestamp}.csv文件传到昇腾NPU环境,执行如下命令。msprobe -f pytorch api_precision_compare -npu ./npu/accuracy_checking_details_{timestamp}.csv -gpu ./gpu/accuracy_checking_details_{timestamp}.csv -o ./compare_result/accuracy_checking
- 预检结果分析。(仅PyTorch训练场景支持)
api_precision_compare会在./compare_result/accuracy_checking目录下生成两个csv文件。
父主题: 模型精度调试