当前位置: 首页 > article >正文

vscode调试deepspeed的方法之一(无需调整脚本)

现在deepspeed的脚本文件是:

# 因为使用 RTX 4000 系列显卡时,不支持通过 P2P 或 IB 实现更快的通信宽带,需要设置以下两个环境变量
# 禁用 NCCL 的 P2P 通信,以避免可能出现的兼容性问题
export NCCL_P2P_DISABLE="1"
# 禁用 NCCL 的 IB 通信,以适应 RTX 4000 系列显卡的特性
export NCCL_IB_DISABLE="1"# 设置 Hugging Face 模型仓库的镜像地址,方便下载模型等资源
export HF_ENDPOINT=https://hf-mirror.com# 使用 deepspeed 工具运行 simple_LLaVA_run.py 脚本
# --include localhost:0,1 表示指定在本地的 0 号和 1 号 GPU 上运行任务
# 注:localhost 代表本地机器,0 和 1 是 GPU 的编号
deepspeed --include localhost:0,1 simple_LLaVA_run.py \--deepspeed ds_zero2_no_offload.json \--model_name_or_path /home/louis/LK/study/transformers/lk_study/llava_study/my_llava_model/model_01 \--train_type use_lora \--data_path /home/louis/LK/study/transformers/lk_study/llava_study/train_llava/data \--remove_unused_columns false \--bf16 true \--fp16 false \--dataloader_pin_memory True \--dataloader_num_workers 10 \--dataloader_persistent_workers True \--output_dir output_model_user_lora_simple_train \--num_train_epochs 10 \--per_device_train_batch_size 1 \--per_device_eval_batch_size 1 \--gradient_accumulation_steps 8 \--evaluation_strategy "no" \--save_strategy "epoch" \--save_total_limit 3 \--report_to "tensorboard" \--learning_rate 4e-4 \--logging_steps 10

要用vscode对这个deepspeed命令 执行的python程序进行调试,一个方法是:

1)点击侧边栏“调试”按钮

在这里插入图片描述
然后点击“设置”,就会出现“launch.json”文件。
在这里插入图片描述

2)launch.json添加内容

在“launch.json”文件的"configurations"的内容中增加下面的内容:

{"name": "DeepSpeed调试单GPU","type": "debugpy","request": "launch","program": "/home/louis/anaconda3/envs/unsloth_env_py311_torch240/bin/deepspeed",  // 替换为实际脚本路径"console": "integratedTerminal","justMyCode": true,"args": ["--num_gpus", "1","/home/louis/LK/study/transformers/lk_study/llava_study/simple_LLaVA_run.py","--deepspeed", "/home/louis/LK/study/transformers/lk_study/llava_study/ds_zero2_no_offload.json","--model_name_or_path", "/home/louis/LK/study/transformers/lk_study/llava_study/my_llava_model/model_01","--train_type", "use_lora","--data_path", "/home/louis/LK/study/transformers/lk_study/llava_study/train_llava/data","--remove_unused_columns", "false","--bf16", "true","--fp16", "false","--dataloader_pin_memory", "True","--dataloader_num_workers", "10","--dataloader_persistent_workers", "True","--output_dir", "output_model_user_lora_simple_train","--num_train_epochs", "10","--per_device_train_batch_size", "1","--per_device_eval_batch_size", "1","--gradient_accumulation_steps", "8","--evaluation_strategy", "no","--save_strategy", "epoch","--save_total_limit", "3","--report_to", "tensorboard","--learning_rate", "4e-4","--logging_steps", "10"],"env": {"NCCL_P2P_DISABLE": "1","NCCL_IB_DISABLE": "1","HF_ENDPOINT": "https://hf-mirror.com","CUDA_VISIBLE_DEVICES": "0",  // 关键:强制单GPU调试"PYTHONUNBUFFERED": "1",      // 确保日志立即输出"CUDA_LAUNCH_BLOCKING": "1"   // 同步CUDA操作}
}

保存文件

3)调试

点击调试窗口的下三角,选择要调式的deepspeed选项,然后点击做百年的绿色三角,开始调试程序
在这里插入图片描述

http://www.lryc.cn/news/2404620.html

相关文章:

  • 神经网络-Day44
  • 创客匠人:如何通过精准定位实现创始人IP打造与知识变现
  • Codeforces Round 509 (Div. 2) C. Coffee Break
  • 榕壹云健身预约系统:多门店管理的数字化解决方案(ThinkPHP+MySQL+UniApp实现)
  • QUIC——UDP实现可靠性传输
  • 提高Python编程效率的工具推荐
  • React Native图片预加载:让你的应用图片预览像德芙一样丝滑
  • 快速上手shell脚本运行流程控制
  • 10.Linux进程信号
  • Python 函数全攻略:函数基础
  • 机器学习基础(四) 决策树
  • DDPM优化目标公式推导
  • CentOS 7如何编译安装升级gcc至7.5版本?
  • 为什么React列表项需要key?(React key)(稳定的唯一标识key有助于React虚拟DOM优化重绘大型列表)
  • Playwright自动化测试全栈指南:从基础到企业级实践(2025终极版)
  • 飞牛云一键设置动态域名+ipv6内网直通访问内网的ssh服务-家庭云计算专家
  • 虚实共生时代的情感重构:AI 恋爱陪伴的崛起、困局与明日图景
  • 嵌入式面试高频(5)!!!C++语言(嵌入式八股文,嵌入式面经)
  • C++动态规划-线性DP
  • Java高级 | 【实验七】Springboot 过滤器和拦截器
  • es地理信息索引的类型以及geo_point‌和geo_hash的关系
  • 深入理解 Spring IOC:从概念到实践
  • Vue解决开发环境 Ajax 跨域问题
  • 行为设计模式之Command (命令)
  • 若依添加添加监听容器配置(删除键,键过期)
  • NeRF 技术深度解析:原理、局限与前沿应用探索(AI+3D 产品经理笔记 S2E04)
  • ROS2,工作空间中新建了一个python脚本,需要之后作为节点运行。告诉我步骤?
  • 【AI智能体】Spring AI MCP 从使用到操作实战详解
  • Vue:Ajax
  • 法律大语言模型(Legal LLM)技术架构