调试工具使能文档

概述

本文档介绍常见框架中调试工具的使能方法,包括dump工具和monitor工具的配置位置。

1. Dump工具使能

工具资料说明

工具添加位置查找方法

想要找该在哪加工具的时候,我们可以任意打印一个API的调用栈信息出来看,从调用栈里找应该在哪加工具。

比如打印linear的调用栈代码有以下两种方式:

方法1:在torch里直接打印调用栈

image.png

方法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

说明: 有了调用栈之后就很好找工具的添加位置了。

image.png

各框架工具添加位置

MindSpeed-LLM

image.png

MindSpeed-MM

image.png

LLaMA-Factory

image.png

accelerate + DeepSpeed

image.png

torchtitan (FSDP2后端)

image.png

VERL (fsdp后端)

使能确定性的位置:
image.png

generate_sequencesces
image.png
以上使能方式只针对vllm eager模式后端或配置不同使能方式可能会变

update_actor
image.png

compute_log_prob
image.png

compute_ref_log_prob
image.png

注意: 以上使能方式只针对vllm eager模式后端,不同配置或使能方式可能会变化。