vscode调试launch.json常用格式完整的案例

 更新时间:2024年06月28日 10:15:26   作者:自学AI的鲨鱼儿  
VSCode的launch.json文件是用来配置调试器的,可以设置调试器的启动方式、调试的目标文件、调试的参数,等这篇文章主要给大家介绍了关于vscode调试launch.json常用格式的相关资料,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

1、简单的模版

定义一个简单的模版如下:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python 调试一",         // 可自定义
            "type": "debugpy",
            "request": "launch",
            "program": "运行脚本的程序",  // 使用.py 脚本路径(相对路径)、which torchrun、which deepspeed等命令查看位置
            "console": "integratedTerminal",
            "justMyCode": false,       // 调试允许进入他人的代码
            "env": {
                "PYTHONPATH": "${workspaceRoot}" // 设置vscode家路径为项目根路径, 搜索包时优先从该目录进行,防止发生import包错误
            },
            "args": [               // 参数,每个参数的参数值无论是否是数字都需用引号
                "--参数1","值1",  
                "--model_name_or_path","facebook/opt-350m",
                "--per_device_train_batch_size", "4",
                "--per_device_eval_batch_size", "4"
            ]
        }
    ]
}

2、简单的案例 

2.1、python 执行.py 文件

bash 命令

# 加入当前目录的绝对路径
PYTHONPATH=$PWD
export PYTHONPATH
echo "当前bash执行目录: $PWD, 已经将PYTHONPATH设置为: $PYTHONPATH"

batch_dir=data/gpt3_generations_ceshi/

# 命令行python 进行执行
python self_instruct/bootstrap_instructions.py \
    --batch_dir ${batch_dir} \
    --num_instructions_to_generate 5

命令行 python 进行执行脚本,构建launch.json 思路

  • bash 为python执行脚本.py,直接修改"program"为.py脚本相对路径
  • 其他参数照抄
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python 调试",
            "type": "debugpy",
            "request": "launch",
            "program": "self_instruct/bootstrap_instructions.py",  // .py脚本文件相对路径位置
            "console": "integratedTerminal",
            "justMyCode": false,
            "env": {
                "PYTHONPATH": "${workspaceRoot}" // 设置vscode项目根路径,搜索包时优先从该目录进行,防止发生import包错误
            },
            "args": [
                "--batch_dir","data/gpt3_generations_ceshi",// TODO 修改官方线上数据集为自己的路径
                "--num_instructions_to_generate","5"    
            ]
        }
    ]
}

2.2、调式多个文件

与调试单个文件同理,只是重复

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        // 第一个文件
        {
            "name": "Python 调试 bootstrap_instructions.py",
            "type": "debugpy",
            "request": "launch",
            "program": "self_instruct/bootstrap_instructions.py",  // .py脚本文件相对路径位置
            "console": "integratedTerminal",
            "justMyCode": false,
            "env": {
                "PYTHONPATH": "${workspaceRoot}" // 设置vscode项目根路径,搜索包时优先从该目录进行,防止发生import包错误
            },
            "args": [
                "--batch_dir","data/gpt3_generations_ceshi",// TODO 修改官方线上数据集为自己的路径
                "--num_instructions_to_generate","5"
            ]
        },
        // 第二个文件
        {
            "name": "Python 调试 identify_clf_or_not.py",
            "type": "debugpy",
            "request": "launch",
            "program": "self_instruct/identify_clf_or_not.py",  // .py脚本文件相对路径位置
            "console": "integratedTerminal",
            "justMyCode": false,
            "env": {
                "PYTHONPATH": "${workspaceRoot}" // 设置vscode项目根路径,搜索包时优先从该目录进行,防止发生import包错误
            },
            "args": [
                "--batch_dir","data/gpt3_generations_ceshi",// TODO 修改官方线上数据集为自己的路径
                "--num_instructions_to_generate","5"
            ]
        }
    ]
}

2.3、torchrun、deepspeed 调试

bash 命令

# 加入当前目录的绝对路径
PYTHONPATH=$PWD
export PYTHONPATH
echo "当前bash执行目录: $PWD, 已经将PYTHONPATH设置为: $PYTHONPATH"

batch_dir=data/gpt3_generations_ceshi/

# 命令行python 进行执行
deepspeed --num_gpus 1 self_instruct/bootstrap_instructions.py \
    --batch_dir ${batch_dir} \
    --num_instructions_to_generate 5

命令行 deepspeed/torchrun 进行执行脚本,构建launch.json 思路

  • 构建launch.json脚本时需要找到“deepspeed”命令的路径,bash命令行:which deepspeed,直接修改"program"为该路径。
  • self_instruct/bootstrap_instructions.py 是执行的脚本的相对路径,不在主目录中,因此我们需要加入 "PYTHONPATH": "${workspaceRoot}" 指定项目目录到环境变量中,以防代码运行时出现 import 错误
{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python 调试一阶段LORA",
            "type": "debugpy",
            "request": "launch",
            "program": "/opt/conda/envs/dsc/bin/deepspeed",  // which deepspeed 查看位置
            "console": "integratedTerminal",
            "justMyCode": false,
            "env": {
                "PYTHONPATH": "${workspaceRoot}" // 设置vscode项目根路径,搜索包时优先从该目录进行,防止发生import包错误
            },
            "args": [
                "--num_gpus", "1", 
                "self_instruct/bootstrap_instructions.py",   // 给定脚本地址(相对路径)
                "--batch_dir","data/gpt3_generations_ceshi",  
                "--num_instructions_to_generate","5"
            ]
        }
    ]
}

2.4、accelerate launch (模块)

# bash
accelerate launch --config_file "examples/sft/configs/deepspeed_config_z3_qlora.yaml"  examples/sft/train.py \
    --seed 100 \
    --model_name_or_path "/workspace/Llama-2-7b-chat-hf" \
    --dataset_name "smangrul/ultrachat-10k-chatml" \
    --chat_template_format "chatml" \
    --add_special_tokens False \
    --append_concat_token False \
    --splits "train,test" \
    2>&1 | tee -a examples/sft/qlora_ds_zero3_log.out

launch.json 

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python ds_z3_qlora_multigpu 微调",
            "type": "debugpy",
            "request": "launch",
            "module": "accelerate.commands.launch",          //调试accelerate launch
            "console": "integratedTerminal",
            "justMyCode": false,
            "env": {
                "PYTHONPATH": "${workspaceRoot}"
            },
            "args": [
                "--config_file", "examples/sft/configs/deepspeed_config_z3_qlora.yaml",
                "examples/sft/train.py",
                "--seed", "100",
                "--model_name_or_path", "/workspace/Llama-2-7b-chat-hf",
                "--dataset_name", "smangrul/ultrachat-10k-chatml",
                "--chat_template_format", "chatml",
                "--add_special_tokens", "False",
                "--append_concat_token", "False",
                "--splits", "train,test"
              ]
        }
    ]
}

3、完整的案例

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        // py 脚本
        {
            "name": "Python lora 微调",
            "type": "debugpy",
            "request": "launch",
            "program": "finetune_demo/finetune_hf.py",
            "console": "integratedTerminal",
            "justMyCode": false,
            "env": {
                "PYTHONPATH": "${workspaceRoot}"
            },
            "args": [
                "/workspace/AdvertiseGen_fix",  
                "/workspace/chatglm3-6b",
                "finetune_demo/configs/lora.yaml"
            ]
        },
        // torchrun 分布式
        {
            "name": "Python lora_ds 微调",
            "type": "debugpy",
            "request": "launch",
            "program": "/opt/conda/envs/llm/bin/torchrun",
            "console": "integratedTerminal",
            "justMyCode": false,
            "env": {
                "PYTHONPATH": "${workspaceRoot}"
            },
            "args": [
                "--nproc_per_node","1",
                "finetune_demo/finetune_hf.py",
                "/workspace/AdvertiseGen_fix",  
                "/workspace/chatglm3-6b",
                "finetune_demo/configs/lora.yaml"
            ]
        }
    ]
}

总结 

到此这篇关于vscode调试launch.json常用格式的文章就介绍到这了,更多相关vscode调试launch.json格式内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • git push & git pull 推送/拉取分支的具体使用

    git push & git pull 推送/拉取分支的具体使用

    这篇文章主要介绍了git push & git pull 推送/拉取分支的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 如何将ChatGPT整合到Word中

    如何将ChatGPT整合到Word中

    使用ChatGPT修改语言时,需要将文本复制到网页版的chatGPT中,省掉复制粘贴的过程,能提升效率,这篇文章主要介绍了如何将ChatGPT整合到Word中,需要的朋友可以参考下
    2023-02-02
  • DSDS应用场景(高通5G)

    DSDS应用场景(高通5G)

    本文是对DSDS一个简单的介绍,感兴趣的小伙伴可以一起来做一个初步的了解
    2021-08-08
  • VSCode + WSL 2 + Ruby环境搭建图文详解

    VSCode + WSL 2 + Ruby环境搭建图文详解

    这篇文章主要介绍了VSCode + WSL 2 + Ruby环境搭建,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • xmind2022下载非试用超详细图文教程

    xmind2022下载非试用超详细图文教程

    这篇文章主要介绍了xmind2022下载非试用(超详细 图文预警),本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • Github代码常用指令(小结)

    Github代码常用指令(小结)

    这篇文章主要介绍了Github代码常用指令(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-08-08
  • 微信小程序(微信应用号)开发工具0.9版安装详细教程

    微信小程序(微信应用号)开发工具0.9版安装详细教程

    这篇文章主要介绍了微信小程序(微信应用号)开发工具0.9版安装详细教程的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • ROS??TF坐标变换基本概念及使用案例

    ROS??TF坐标变换基本概念及使用案例

    本文介绍了TF坐标变换的基本概念以及TF在ROS中的表示形式,通过古月居的乌龟跟随的例子,分析了TF树的广播器和监听器最基本的书写形式,从中展示了如何提取和应用TF变换的信息,并介绍了5种最常用的TF树及TF信息的提取工具,感兴趣的朋友一起学习下吧
    2023-01-01
  • VS CODE 使用SVN插件的方法步骤

    VS CODE 使用SVN插件的方法步骤

    这篇文章主要介绍了VS CODE 使用SVN插件的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 基于 Dubbo Admin 临时踢除问题服务实例步骤

    基于 Dubbo Admin 临时踢除问题服务实例步骤

    服务在线上运行的过程中,难免遇到某些节点有问题,为了不影响整体服务的正常运行,需要临时下线问题的服务实例,这篇文章主要介绍了基于 Dubbo Admin 临时踢除问题服务实例,需要的朋友可以参考下
    2022-12-12

最新评论


http://www.vxiaotou.com