常见框架dump工具使能¶
概述¶
本文档介绍常见框架中调试工具的使能方法,包括dump工具和monitor工具的配置位置。
工具使能¶
工具资料说明¶
- 文档地址: Data Dump for PyTorch
工具添加位置查找方法¶
想要找该在哪添加工具的时候,我们可以任意打印一个API的调用栈信息出来看,从调用栈里可以看出工具的添加位置。
比如打印linear的调用栈代码有以下两种方式:
方法1:在torch里直接打印调用栈¶
方法2:在启动脚本里替换掉原有linear¶
import torch
import torch.nn.functional as F
import traceback
# 保存原始函数
original_linear = F.linear
# 替换functional中的linear,使用*args和**kwargs适配所有参数
def custom_linear(*args, **kwargs):
print("="*50)
print("调用F.linear,调用栈如下:")
traceback.print_stack()
# 将接收的参数原封不动地传给原始函数
return original_linear(*args, **kwargs)
F.linear = custom_linear
说明:有了调用栈之后就很好找工具的添加位置了。
各框架工具添加位置¶
MindSpeed-LLM¶
MindSpeed-MM¶
LLaMA-Factory¶
accelerate + DeepSpeed¶
torchtitan (FSDP2后端)¶
VERL (fsdp后端)¶
以上使能方式只针对vllm eager模式后端,不同配置或使能方式可能会变化。
VERL (sglang后端)¶
示例版本说明¶
| 组件 | 版本 |
|---|---|
| CANN | 8.5.0 |
| python | 3.11 |
| torch | 2.7.1 |
| torch_npu | 2.7.1.post2 |
| verl | 0.7.1 |
| sglang | 0.5.8 |
| MindSpeed | 2.3.0_core_r0.12.1 |
| Megatron-LM | core_v0.12.1 |
1. 创建config.json文件,用于配置dump参数¶
config.json配置文件详细介绍请参见配置文件介绍。
2. SGLang框架中使能msProbe工具¶
找到SGLang框架ModelRunner类所属文件:sglang/srt/model_executor/model_runner.py
-
ModelRunner类的__init__方法中添加PrecisionDebugger接口,传入config.json文件真实路径。 -
ModelRunner类的forward方法中添加start、stop和step接口。 -
forward方法开始处 -
forward方法结束处
3. 注意¶
-
使能方式只针对eager模式后端,使能方式和位置可能会随版本变化,verl启动训推脚本需要添加
-
verl中使用ray自动纳管npu会导致卡不可见,需要设置环境变量
export RAY_EXPERIMENTAL_NOSET_ASCEND_RT_VISIBLE_DEVICES=1














