介绍
面向从GPU迁移到昇腾NPU环境的大模型,或基于昇腾开发的大模型在训练过程中,出现精度溢出、loss曲线跑飞、不收敛等精度异常情况,训练loss指标等不能精准指导精度异常定界,无法区分是训练软件栈中发生问题的模块;通过msprobe(MindStudio Probe,精度调试工具)后续简称为msprobe,可以面向以上这些问题进行快速定界定位。
msprobe为mstt工具链的精度工具,通过分别对标杆环境(如CPU、GPU、NPU等)和昇腾NPU环境下的训练精度数据进行采集和比对,从而找出差异点。
msprobe工具包含众多功能,介绍请参见《MindStudio Training Tools》。本节主要介绍msprobe工具的如下功能训练前配置检查、训练状态监控、精度数据采集、精度预检、精度比对功能,供用户快速上手使用。
训练前配置检查
训练前配置检查工具是在训练前或精度比对前,对比两个不同环境下,可能影响训练精度的配置差异。详细操作请参见训练前配置检查。
训练状态监控
训练状态监控工具是收集和聚合模型训练过程中的网络层,优化器,通信算子的中间值,帮助诊断模型训练过程中计算,通信,优化器各部分出现的异常情况。详细操作请参见训练状态监控。
精度数据采集
精度数据采集即msprobe的dump功能,可以采集模型训练过程中API或Module层级的前反向输入输出数据,支持采集的数据包括Module的层次关系、Module或API的输入输出的真实数据和统计值信息、Module或API的调用栈等等。详细操作请参见精度数据采集。
对应工具:
精度预检
精度预检工具在执行训练前使用,会扫描在昇腾NPU环境下训练模型的API,输出精度情况的诊断和分析,综合判定API在NPU上的精度是否达标,从而找出NPU中存在精度问题的API。详细操作请参见精度预检。
对应工具:
精度比对
msprobe比对功能依赖精度数据采集工具采集的数据,计算模型整网NPU侧和标杆环境(如CPU、GPU、NPU等)的误差指标(如余弦相似度、相对误差小于千分之一的比例、最大值误差等),标记可疑的精度异常API或Module,快速定位精度问题根因。
msprobe提供多种比对工具,本文主要介绍以表格形式输出比对结果的精度比对工具、将比对结果通过TensorBoard插件进行可视化呈现的分级可视化构图比对工具。
详细操作请参见精度比对。
对应工具: