msProbe 工具功能模块简介、适用场景和当前版本局限性

1 PyTorch框架

功能名(英文) 简介 适用场景/优势 当前版本局限性
数据采集
(dump)
采集模型训练过程中的API或Module层级的前反向输入输出数据,包括层次关系、统计值信息、真实数据和调用栈等。 1、将模型中训练的API或Module的前反向输入输出数据保存下来分析
2、模型出现溢出时,可用于查看哪些API或Module出现了溢出
1、API级数据采集仅支持白名单列表上的API
2、工具会做一些同步操作,引入工具可能会导致一些同步问题消失
3、当前对inplace操作API或Module的支持度有限
4、暂不支持参数及参数梯度的采集
离线预检
(api_accuracy_checker)
为网络中每个API创建用例,检验其精度,并根据不同比对算法综合判定API在NPU上的精度是否达标,快速找出精度差异API。 1、对模型中所有的API做精度初步排查
2、精度排查不受模型累计误差影响
1、依赖GPU环境
2、不支持通信算子
3、仅支持部分融合算子
整网比对
(compare)
计算模型整网NPU和标杆设备的精度误差指标,标记精度异常API或Module,助力快速定位精度问题根因。 1、整网比对定位精度可疑算子 1、由于使用整网dump数据,定位的可疑算子受累计误差影响
2、当模型规模较大时,比对所需时间较长
训练状态监测
(monitor)
收集模型训练过程中的激活值、梯度和优化器状态,助力分析计算、通信、优化器各部分异常情况。 1、通过监测模块级统计量指标,快速定位异常模块位置,如loss出现nan 1、仅支持模块级别统计量指标分析
2、仅支持megatron、deepspeed框架
3、少量增加时间和显存膨胀
可视化比对
(visualization)
解析dump的精度数据,还原模型图结构,比对各层级精度数据,助力理解模型结构、分析精度问题。 1、整网精度比对定位可疑算子,通过浏览器展示比对结果,支持快速搜索到可疑算子
2、支持查看模型层级结果,比对模型层级结构差异
1、由于使用整网dump数据,定位的可疑算子受累计误差影响
2、当模型规模较大时,比对所需时间较长

2 MindSpore框架

功能名(英文) 简介 适用场景/优势 当前版本局限性
数据采集
(dump)
采集模型训练过程中的API或Cell层级的前反向输入输出数据,包括层次关系、统计值信息、真实数据和调用栈等。 1、将模型中训练的API或Cell的前反向输入输出数据保存下来分析
2、模型出现溢出时,可用于查看哪些API或Cell出现了溢出
1、API级数据采集仅支持白名单列表上的API
2、当前对inplace操作API或Cell的支持度有限
3、暂不支持参数及参数梯度的采集
离线预检
(api_accuracy_checker)
为网络中每个API创建用例,检验其精度,并根据不同比对算法综合判定API在NPU上的精度是否达标,快速找出精度差异API。 1、对模型中所有的API做精度初步排查
2、精度排查不受模型累计误差影响
1、仅针对MindSpore.mint API
整网比对
(compare)
NPU精度数据与标杆数据的比对,支持MindSpore框架内和与PyTorch跨框架的比对,助力快速定位精度异常API或Cell。 1、MindSpore同框架静态图比对
2、MindSpore同框架动态图比对
3、MindSpore vs PyTorch跨框架动态图比对
1、部分PyTorch的API关联不到MindSpore,需要手动配置映射关系
可视化比对
(visualization)
解析dump的精度数据,还原模型图结构,比对各层级精度数据,助力理解模型结构、分析精度问题。 1、整网精度比对定位可疑算子,通过浏览器展示比对结果,支持快速搜索到可疑算子
2、支持查看模型层级结果,比对模型层级结构差异
1、由于使用整网dump数据,定位的可疑算子受累计误差影响
2、当模型规模较大时,比对所需时间较长
训练状态监测
(monitor)
收集模型训练过程中的激活值、梯度和优化器状态,助力分析计算、通信、优化器各部分异常情况。 1、通过监测模块级统计量指标,快速定位异常模块位置,如loss出现nan 1、仅支持模块级别统计量指标分析
2、仅支持megatron、deepspeed框架
3、少量增加时间和显存膨胀