背景
分布式训练中,两类精度问题排查成本极高:RL(Reinforcement Learning,强化学习)训推结果对不齐,以及预训练过程中loss为NaN。
MindStudio Probe(昇腾精度调试工具,msProbe)提供了dump采集、数值比对、NaN检测等能力。但精度问题的场景千变万化——模型结构、训练配置、框架版本不同,噪音模式不同。要让比对工具持续有效,往往需要专家反复介入来排除新噪音、调整比对算法,“专家带宽”成了瓶颈。
MindStudio Agent(msAgent)是面向昇腾场景的一站式调试调优Agent,而Accuracy是msAgent内置的精度调试SubAgent,目标是把专家借助工具排查精度问题的隐性知识,固化成可自动执行的Skill流水线。 用户只需要用自然语言描述问题、指定dump采集的数据路径,Accuracy自动完成从数据对齐到根因定位的全流程。
Accuracy核心原理与架构
Accuracy已经搭载两条核心Skill,分别对应两类高频精度场景:
msAgent采用“Skill 流水线 + 对话式交互”:
每条Skill内部是一组固化的分析流水线,按精度专家定位的思路自动执行,产出结构化分析结果。Agent层负责理解用户意图、调度Skill、并将分析结果转化为可追问的对话。用户不再需要手动跑脚本,拿到结论后还能继续追问细节。
技能一:强化学习训练推理一致性分析
核心原理
RL训练中,训练侧与推理侧(rollout)的输出不一致,可能来自算子计算差异、参数同步遗漏、配置未生效、模块融合策略不同等。传统排查流程一般包含三件事:对齐两边的模块名 → 逐个比对数值 → 凭经验筛掉假阳性。
rl-consistency-analysis把这三个步骤自动化了:
模块映射:自动识别训练侧和推理侧的模块对应关系。比如 Megatron中的linear_fc1层,而推理侧(vLLM Ascend)叫gate_up_proj层——Skill自动匹配,不需要手工对照。
数值比对:对每对匹配模块的输入、参数、输出逐一比对,标记差异项。
噪音过滤与根因追溯:自动筛掉“假阳性”——比如训练侧的分离QKV和推理侧的fused QKV结构不同导致的数值差异是正常的。对高优先级嫌疑,沿调用链向上找“锚点模块”(两边数值仍对齐的最后一个节点),检查锚点到嫌疑点之间两边算子执行结果和堆栈差异,最终归类为缺失算子 / 实现差异 / 参数问题 / 上游传播,并给出检查建议。
案例:Megatron 训推一致性分析
数据准备
根据msProbe工具《Megatron训练后端verl训推一致性比对数据采集》 ,(链接见文末“相关链接”)。指南采集训推精度对比数据,训练侧基于Megatron框架,推理侧基于vLLM Ascend。目录结构如下:
一句话触发分析
配置好LLM后启动Accuracy SubAgent,输入自然语言指令,Accuracy会自动调用一致性比对场景Skill:
自动化分析脚本阶段产物
Skill自动执行分析脚本,包含五阶段分析,可从终端实时查看进度。每阶段产出结构化中间文件,支持随时查看:
分析结论
流水线执行完毕后,Accuracy为当前案例给出结论:两边MLP层的激活路径不一致——训练侧缺少激活函数算子,可能使用了不同的激活实现,导致down_proj输出不匹配。
追问验证
拿到结论后,可用继续追问分析细节,进一步确认根因:
Accuracy基于分析结果,直接给出linear_fc2(对应推理侧 down_proj)的详细数值对比。
技能二:NaN溢出检测与根因追溯
核心原理
多卡训练中loss或grad norm突然变为NaN,真正的挑战不是“发现NaN”,而是定位源头。NaN会通过集合通信算子(如 AllReduce,全归约通信)在卡间快速传播——用户看到的异常 Rank,大概率不是第一个出问题的卡。
nan-overflow-detection通过两步检测解决这个问题:
第一步,跨卡定位源卡(Cross-rank Source Detection)。 遍历所有Rank的通信算子,检查通信之前的输入是否已含NaN。通信前数据已脏的判定为源卡;通信前干净、通信后变脏的为传播卡。一次厘清数百张卡的责任归属。
第二步,单卡追溯根因算子(Single-rank Root Cause Tracing)。 锁定源卡后,按代码执行序逐个检查算子的输入输出,找到第一个“输入正常、输出异常”的计算算子。期间自动跳过 torch.empty、clone等非计算操作(这些本身可能产NaN),也排除masked_fill等在attention mask场景下合法产生 -Inf的情况。最终通过调用链还原,定位到根因API。
案例:512卡训练首步loss为NAN问题定位
数据介绍
512卡多卡训练任务首步loss为NaN。使用msProbe工具采集的dump数据按Rank分目录存放,每个Rank内含dump.json(API统计值数据)/ construct.json(模型结构数据)/ stack.json(堆栈数据)。
触发分析
在Accuracy Agent对话中用自然语言描述问题:
自动化检测流程
Skill自动执行两步检测,每步输出结构化结果文件:
根因结论
Accuracy最终会给出定位过程总结和根因结论。这个案例的根因是group_matmul算子计算异常产生NAN值,Accuracy建议用户做针对性检查:
快速体验
启动后直接在交互式会话中描述问题、指定dump路径即可开始排查。详细指引请参考: msAgent GitCode 开源社区文档(见文末“相关链接”)。
后续还会有更多精度问题场景Skill上线,敬请期待!
小结
Accuracy将精度调试从“人工排查 + 经验驱动”升级为“Agent 自动分析 + 对话式交互”。 已集成两条核心Skill——rl-consistency-analysis和nan-overflow-detection——覆盖了RL训推一致性和NaN溢出检测两大高频场景,把专家排查中“对齐模块、筛噪音、找锚点、追溯调用链”等隐性知识,固化成了可复用的自动化流水线。对于昇腾开发者,精度问题排查不再卡在“专家带宽”上。 从dump到结论,一句话触发,几分钟出结果。
msAgent GitCode开源社区:
https://gitcode.com/Ascend/msagent
msProbe GitCode开源社区:
https://gitcode.com/Ascend/msprobe
msProbe工具《Megatron训练后端verl训推一致性比对数据采集》指南:
https://gitcode.com/Ascend/msprobe/blob/master/docs/zh/dump/verl_megatron_consistency_preprocess_dump.md
扫描二维码,一键直达msProb开源社区
扫描二维码,一键直达msAgent开源社区
扫描二维码,一键直达MindStudio开源技术交流群
◆往期推荐◆
匠心时刻丨MindStudio Agent:一站式调试调优智能体,支持高效端到端性能调优
股票
板块
用户
资讯
评论 (0)