更新时间:2024-12-30 GMT+08:00
分享

精度调优总体思路

精度问题定位首先要能在昇腾环境上稳定地复现问题,这样才可以在该异常场景下进行针对性分析。大模型训练通常使用多机训练,多机训练的问题复现成本通常较高,且难以直接Dump分析(例如直接使用精度工具采集整网Tensor信息可能会产生TB级的Dump数据,存储和复制都比较困难),所以建议用户在复现前先进行模型裁剪,例如第一优先级是缩小DP、将模型转为单机训练等,这样会大大降低后续定位的难度。

根据精度问题现象可以选择合适的定位方式,Msprobe是MindStudio Training Tools工具链下精度调试部分的工具包,主要包括精度预检、溢出检测和精度比对等功能,通过采集和对比标杆(GPU/CPU)环境和昇腾环境上运行训练时的差异点来判断问题所在。整体流程如下图所示,更多介绍请参考昇腾精度调试指南

图1 精度调优流程

溢出检测和Dump比对是通过在PyTorch模型中注入Hook从而Dump模型训练过程的输入输出数据,比对NPU环境和标杆环境的所有输入输出的差异来发现异常信息。更多介绍请参考Msprobe工具溢出检测精度比对介绍。

API精度预检是通过提取模型中所有的API前反向信息,通过工具构造相应的API单元测试,将NPU输出与标杆比对,从而检测出精度有差异的API。更多介绍请参考Msprobe工具离线预检在线预检介绍。

相关文档