MindStudio-Probe:基于昇腾的模型精度调试工具项目

针对昇腾提供的全场景精度工具链,帮助用户快速提高模型精度定位效率。

分支15Tags0
文件最后提交记录最后更新时间
7 个月前
8 个月前
7 个月前
11 个月前
11 个月前
7 个月前
7 个月前
7 个月前
7 个月前
8 个月前
8 个月前
8 个月前
9 个月前
11 个月前
7 个月前
8 个月前
7 个月前

MindStudio Probe

简介

MindStudio Probe(MindStudio精度调试工具,msProbe)是针对昇腾提供的全场景精度工具链,专为模型开发的精度调试环节设计,可显著提升用户定位模型精度问题的效率。

msProbe主要包括精度数据采集(dump)、精度预检、训练状态监测和精度比对等功能,这些功能侧重不同的训练或推理场景,可以帮助定位模型训练或推理中的精度问题。

环境部署

环境和依赖

使用msProbe工具前,要求已存在可执行的用户AI应用,其中要求昇腾环境:

工具安装

安装msProbe工具,具体请参见《msProbe工具安装指南》。

快速入门

msProbe工具快速入门当前提供在PyTorch和MindSpore训练场景中,通过一个可执行样例,串联msProbe工具的训练前配置检查、精度数据采集、精度预检、训练状态监测及精度比对功能,帮助用户快速上手。详细快速入门可参见《PyTorch场景msTT工具快速入门》中的“模型精度调试”或《MindSpore场景msTT工具快速入门》中的“模型精度调试”。

工具限制与注意事项

  • 工具读写的所有路径,如config_path、dump_path等,只允许包含大小写字母、数字、下划线、斜杠、点和短横线。

  • 出于安全性及权限最小化角度考虑,本工具不应使用root等高权限账户,建议使用普通用户权限安装执行。

  • 使用本工具前请确保执行用户的umask值大于等于0027,否则可能会导致工具生成的精度数据文件和目录权限过大。

  • 用户须自行保证使用最小权限原则,如给工具输入的文件要求other用户不可写,在一些对安全要求更严格的功能场景下还需确保输入的文件group用户不可写。

  • 使用工具前,建议先浏览工具功能模块简介、适用场景和当前版本局限性,了解功能特性。

  • msProbe建议执行用户与安装用户保持一致,如果使用root执行,请自行关注root高权限触及的安全风险。

功能介绍

vLLM推理场景

eager模式

  1. 数据采集

    完成msProbe精度数据采集操作。

  2. 数据比对

    将msProbe工具dump的精度数据进行精度比对,进而定位精度问题。

    请参考分级可视化构图比对或精度比对。

aclgraph图模式

  1. 数据采集

    通过acl_save接口完成精度数据采集操作。

torchair图模式

  1. 数据采集

    通过set_ge_dump_config接口完成精度数据采集操作。

  2. 精度比对

    将msProbe工具dump的精度数据进行精度比对,进而定位精度问题。

SGLang推理场景

eager模式

  1. 数据采集

    完成msProbe精度数据采集操作。

  2. 数据比对

    将msProbe工具dump的精度数据进行精度比对,进而定位精度问题。

    请参考分级可视化构图比对或精度比对。

ATB推理场景

  1. 数据采集

    通过在ATB模型运行前,加载ATB dump模块的方式,实现对ATB模型运行过程中的精度数据的采集。

  2. 精度比对

    将ATB dump的精度数据进行精度比对,进而定位精度问题。

  3. 数据转换

    将ATB dump的精度数据转换为numpy(.npy)或PyTorch tensor(.pt)格式文件。

离线模型推理场景

  1. 数据采集

    完成msProbe精度数据采集操作。

  2. 精度比对

    提供一键式离线模型比对功能,仅需输入模型即可完成比对,无需提前采集数据,快速输出结果。

  3. 离线模型数据精度比对 提供离线模型数据比对功能,输入离线模型的dump数据进行精度比对。

  4. 数据转换

    将离线模型的dump数据转换为numpy(.npy)或PyTorch tensor(.pt)格式文件。

PyTorch训练场景

  1. 训练前配置检查

    训练前或精度比对前,对比两个环境下可能影响训练精度的配置差异。

  2. 数据采集

    通过config.json配置,完成msProbe精度数据采集操作。

    config.json配置文件详细介绍请参见配置文件介绍和config.json配置样例。

  3. 精度预检

    在昇腾NPU上扫描训练模型中的所有API,给出精度情况的诊断和分析。

  4. 分级可视化构图比对

    将msProbe工具dump的精度数据进行解析,还原模型图结构,实现模型各个层级的精度数据比对,方便用户理解模型结构、分析精度问题。

  5. 精度比对

    将msProbe工具dump的精度数据进行精度比对,进而定位精度问题。

  6. 训练状态监测

    收集和聚合模型训练过程中的网络层,优化器,通信算子的中间值,帮助诊断模型训练过程中计算,通信,优化器各部分出现的异常情况。

  7. checkpoint比对

    训练过程中或结束后,比较两个不同的checkpoint,评估模型相似度。

  8. 整网首个溢出节点分析

    多rank场景下通过dump数据找到首个出现Nan或Inf的节点。

  9. 趋势可视化

    将msProbe工具数据采集或训练状态监测的统计量数据从迭代步数、节点rank和张量目标三个维度进行趋势可视化,方便用户从整体的趋势分布观测精度数据。

MindSpore训练场景

  1. 训练前配置检查

    训练前或精度比对前,对比两个环境下可能影响训练精度的配置差异。

  2. 数据采集

    通过config.json配置,完成msProbe精度数据采集操作。

    config.json配置文件详细介绍请参见配置文件介绍和config.json配置样例。

  3. 精度预检

    在昇腾NPU上扫描训练模型中的所有API,给出精度情况的诊断和分析。

  4. 分级可视化构图比对

    将msProbe工具dump的精度数据进行解析,还原模型图结构,实现模型各个层级的精度数据比对,方便用户理解模型结构、分析精度问题。

  5. 精度比对

    将msProbe工具dump的精度数据进行精度比对,进而定位精度问题。

  6. 训练状态监测

    收集和聚合模型训练过程中的网络层,优化器,通信算子的中间值,帮助诊断模型训练过程中计算,通信,优化器各部分出现的异常情况。

  7. 溢出检测与解析

    溢出检测用于采集溢出API或模块的精度数据,而溢出解析则是通过对溢出数据的分析,进一步判断是否为正常溢出。

    推荐直接使用数据采集功能采集统计量信息,检测溢出问题,具体请参见。

  8. checkpoint比对

    训练过程中或结束后,比较两个不同的checkpoint,评估模型相似度。

  9. 趋势可视化

    将msProbe工具数据采集或训练状态监测的统计量数据从迭代步数、节点rank和张量目标三个维度进行趋势可视化,方便用户从整体的趋势分布观测精度数据。

MSAdapter场景

  1. 数据采集

    通过config.json配置,完成msProbe精度数据采集操作。

    config.json配置文件详细介绍请参见配置文件介绍和config.json配置样例。

  2. checkpoint比对

    训练过程中或结束后,比较两个不同的checkpoint,评估模型相似度。

补充材料

FAQ

FAQ汇总了在使用msProbe工具过程中可能遇到的问题,具体请参见FAQ。

贡献指导

介绍如何向msProbe反馈问题、需求以及为msProbe贡献的代码开发流程,具体请参见为MindStudio Probe贡献。

联系我们

安全声明

描述msProbe产品的安全加固信息、公网地址信息等内容,具体请参见安全声明。

免责声明

  • 本工具仅供调试和开发之用,使用者需自行承担使用风险,并理解以下内容:
    • 数据处理及删除:用户在使用本工具过程中产生的数据属于用户责任范畴。建议用户在使用完毕后及时删除相关数据,以防信息泄露。
    • 数据保密与传播:使用者了解并同意不得将通过本工具产生的数据随意外发或传播。对于由此产生的信息泄露、数据泄露或其他不良后果,本工具及其开发者概不负责。
    • 用户输入安全性:用户需自行保证输入的命令行的安全性,并承担因输入不当而导致的任何安全风险或损失。对于由于输入命令行不当所导致的问题,本工具及其开发者概不负责。
  • 免责声明范围:本免责声明适用于所有使用本工具的个人或实体。使用本工具即表示您同意并接受本声明的内容,并愿意承担因使用该功能而产生的风险和责任,如有异议请停止使用本工具。
  • 在使用本工具之前,请谨慎阅读并理解以上免责声明的内容。对于使用本工具所产生的任何问题或疑问,请及时联系开发者。

License

介绍msProbe产品的使用许可证,具体请参见LICENSE文件。

介绍msProbe工具docs目录下的文档适用CC-BY 4.0许可证,具体请参见LICENSE文件。

致谢

msProbe由华为公司的下列部门联合贡献:

  • 昇腾计算MindStudio开发部
  • 分布式并行计算实验室

感谢来自社区的每一个PR,欢迎贡献msProbe!

项目介绍

针对昇腾提供的全场景精度工具链,帮助用户快速提高模型精度定位效率。

定制我的领域