训练任务性能劣化(slow)诊断
背景
使用大模型训练服务观测功能,如何接入训练任务,在训练任务出现性能问题(slow)时如何诊断并解读诊断报告、分析问题。
前置条件
训练框架:PyTorch
接入任务
根据接入任务说明文档,部署采集器,接入训练任务。


训练任务出现在任务列表中表明任务已接入成功,为了后续能够查看性能指标分析及发起诊断,请保持性能指标采集开启。

开启性能指标采集后约3分钟,点击训练任务名称,可以查看到Step平均耗时。
※为了获得更高的准确性,请在训练Step平均耗时保持稳定后,再配置诊断策略或发起单次诊断。

训练任务成功接入并开启性能指标采集后,在未发生性能异常时,训练任务状态为“训练中(正常)”。

开启智能诊断
对该任务开启智能诊断,可通过点击列表上的智能诊断编辑按钮开启,也可在进入该任务详情页面后,选择“智能诊断”tab,点击“智能诊断配置”按钮后开启。
为了获得更全面准确的分析结果,分析类型建议选择GPU,采集内容建议全选。


触发智能诊断
当任务出现性能劣化后,系统将感知到该问题,训练任务状态会转变为“训练中(slow)”,同时自动触发智能诊断(诊断列表中可以看到该诊断记录)。



按需发起单次诊断
如果没有开启智能诊断,人工发现性能问题后(例如通过性能指标分析观察到相关迹象),可以通过创建单次诊断记录进行按需诊断。

查看诊断报告
当诊断状态变为“诊断完成”后,点击“查看报告”,可查看分析结论及相应的依据、特征指标图表。

下面介绍两种典型性能异常场景的诊断报告:GPU性能异常和物理节点CPU异常。
场景1:GPU性能异常
该报告的分析结论中明确表明:存在故障rank。
接下来,我们可以查看异常rank列表,列举出了多个有异常特征的Rank,其中有1个Rank的异常行为明显,系统对其特别标注为疑似故障Rank。

进一步地,我们可以查看故障Rank在异常特征上对应的指标数据,发现其数据表现确实存在异常。
例如,故障Rank的SM利用率指标存在明显的离群异常行为。

结合报告中的以上分析,我们可以参考报告结论,重点检查该Rank并解决故障。
场景2:物理节点性能异常
该报告的分析结论中明确表明:故障Rank在物理节点上存在聚集性,怀疑是物理节点性能受限。
接下来,我们查看异常Rank列表,发现其中在同一个物理节点上的8个Rank有同一个异常特征。

进一步地,我们可以查看该异常特征对应的指标数据,发现其数据表现和其他物理节点有明显不同。

结合报告中的以上分析,我们可以参考报告结论,重点检查该物理节点的性能状况并解决故障。
修复后的任务状态重置
结合诊断报告解决故障后,检查训练性能指标,发现恢复正常。

接下来可手动重置任务状态为“训练中(正常)”,智能诊断将继续提供服务。
