当前位置: 首页 > 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选项,然后点击做百年的绿色三角,开始调试程序
在这里插入图片描述

相关文章:

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

现在deepspeed的脚本文件是: # 因为使用 RTX 4000 系列显卡时,不支持通过 P2P 或 IB 实现更快的通信宽带,需要设置以下两个环境变量 # 禁用 NCCL 的 P2P 通信,以避免可能出现的兼容性问题 export NCCL_P2P_DISABLE"1" …...

神经网络-Day44

import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pyplot as plt# 设置中文字体支持 plt.rcParams["font.family"] ["SimHei"…...

创客匠人:如何通过精准定位实现创始人IP打造与知识变现

在当今知识经济时代,越来越多的专业人士希望通过个人品牌实现知识变现,但许多人面临一个共同困境:明明很努力,却收效甚微。创客匠人作为深耕知识付费赛道9年的专业机构,揭示了这一现象背后的关键原因——90%的IP失败源…...

Codeforces Round 509 (Div. 2) C. Coffee Break

题目大意: 给你n、m、d n为元素个数,m为数列长度,d为每个元素之间的最短间隔 问最少需要多少个数列可以使得元素都能装进数列,并且满足每个元素之间的间隔大于等于d 核心思想 使用贪心的思想,将元素的大小进行排序,问题出在必…...

榕壹云健身预约系统:多门店管理的数字化解决方案(ThinkPHP+MySQL+UniApp实现)

随着全民健身热潮的兴起,传统健身房在会员管理、课程预约、多门店运营等方面面临诸多挑战。针对这一需求,我们开发了一款基于ThinkPHPMySQLUniApp的榕壹云健身预约系统,为中小型健身机构及连锁品牌提供高效、灵活的数字化管理工具。本文将详细…...

QUIC——UDP实现可靠性传输

首先我们要知道TCP存在什么样的痛点问题 TCP的升级很困难TCP建立连接的延迟网络迁移需要重新建立连接TCP存在队头阻塞问题 QUIC就是为了解决以上的问题而诞生了, 下面我会介绍QUIC的一些特性和原理 QUIC对比TCP优势: 握手建连更快 QUIC内部包含了TLS, 它在自己的帧会携带TL…...

提高Python编程效率的工具推荐

在 Python 开发中,选择合适的工具可以显著提升编程效率。以下是一些经过精心挑选的工具,涵盖代码编辑、调试、数据分析等多个方面,希望能帮助你在 Python 开发中事半功倍。 一、集成开发环境(IDE) 1. PyCharm PyCha…...

React Native图片预加载:让你的应用图片预览像德芙一样丝滑

写在前面:一张图片引发的性能血案 你有没有遇到过这种情况?——用户疯狂滑动你的React Native图片列表,结果图片加载慢得像蜗牛,甚至出现空白闪烁?等到图片终于加载出来,用户早就失去耐心,愤然退出…… 但你知道吗?这个问题只需要几行代码就能解决! 比如,使用reac…...

快速上手shell脚本运行流程控制

一、条件运行流程控制 1.if单分支结构 #!/bin/bash if [ 条件 ] then动作1动作2... fi 2.if双分支结构 ​ #!/bin/bash if [ 条件 ] then动作1动作2... else动作1动作2... fi​ 3.if多分支结构 二、循环运行流程控制 1.无判定for循环 给网卡一键添加5个IP 2.判断循环 while…...

10.Linux进程信号

1. 理解信号 信号VS信号量 老婆:老婆饼-》没有任何关系!信号:闹钟,上课铃声,脸色...人-》进程;信号中断人正在做的事,是一种事件的异步通知机制; 我们自习一会,等张三回…...

Python 函数全攻略:函数基础

函数(Functions)基础 什么是函数? 一个命名的代码块,代指一大堆代码。 定义: def function_name(): (使用def关键字,英文括号,冒号,缩进代码块)。 执行/调用: function…...

机器学习基础(四) 决策树

决策树简介 决策树结构: 决策树是一种树形结构,树中每个内部节点表示一个特征上的判断,每个分支代表一个判断结果的输出,每个叶子节点代表一种分类结果 决策树构建过程(三要素): 特征选择 选…...

DDPM优化目标公式推导

DDPM优化目标公式推导 DDPM优化目标公式推导**1. 问题定义****2. 优化目标:最大化对数似然****3. 变分下界的分解****4. 关键步骤:简化 KL 散度项****(a) 后验分布 q ( x t − 1 ∣ x t , x 0 ) q(\mathbf{x}_{t-1} | \mathbf{x}_t, \mathbf{x}_0) q(xt…...

CentOS 7如何编译安装升级gcc至7.5版本?

CentOS 7如何编译安装升级gcc版本? 由于配置CentOS-SCLo-scl.repo与CentOS-SCLo-scl-rh.repo后执行yum install -y devtoolset-7安装总是异常,遂决定编译安装gcc7.5 # 备份之前的yum .repo文件至 /tmp/repo_bak 目录 mkdir -p /tmp/repo_bak && cd /etc…...

为什么React列表项需要key?(React key)(稳定的唯一标识key有助于React虚拟DOM优化重绘大型列表)

文章目录 1. **帮助 React 识别列表项的变化**2. **性能优化**3. **避免组件状态混乱**4. **为什么使用 rpid 作为 key**5. **不好的做法示例**6. **✅ 正确的做法** 在 React 中添加 key{item.rpid} 是非常重要的,主要有以下几个原因: 1. 帮助 React 识…...

Playwright自动化测试全栈指南:从基础到企业级实践(2025终极版)

引言 在Web应用复杂度指数级增长的今天,传统自动化测试工具面临​​动态渲染适配难​​、​​多浏览器兼容差​​、​​测试稳定性低​​三大挑战。微软开源的Playwright凭借​​跨浏览器支持​​、​​自动等待机制​​和​​原生异步架构​​,成为新一代自动化测试的事实标…...

飞牛云一键设置动态域名+ipv6内网直通访问内网的ssh服务-家庭云计算专家

IPv6访问SSH的难点与优势并存。难点主要体现在网络环境支持不足:部分ISP未完全适配IPv6协议,导致客户端无法直接连通;老旧设备或工具(如Docker、GitHub)需额外配置才能兼容IPv6,技术门槛较高;若…...

虚实共生时代的情感重构:AI 恋爱陪伴的崛起、困局与明日图景

一、虚拟恋人:从技术幻想到情感刚需的跨越 在 5G 网络编织的数字浪潮里,AI 驱动的虚拟恋人正打破次元界限。深度学习算法剖析 3000 万段真实对话语料库,搭配 VR 设备带来的多维度交互体验,如今的虚拟对象已能精准模拟瞳孔微表情&…...

嵌入式面试高频(5)!!!C++语言(嵌入式八股文,嵌入式面经)

一、C有几种传值方式之间的区别 一、值传递(Pass by Value) 机制:创建参数的副本,函数内操作不影响原始数据语法:void func(int x)特点: 数据安全:原始数据不受影响性能开销:需要复…...

C++动态规划-线性DP

这是一套C线性DP题目的答案。如果需要题目&#xff0c;请私信我&#xff0c;我将会更新题干 P1:单子序列最大和 #include <bits/stdc.h> using namespace std; int n,A,B,C; int a[200005]; int s[200005]; int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)…...

Java高级 | 【实验七】Springboot 过滤器和拦截器

隶属文章&#xff1a;Java高级 | &#xff08;二十二&#xff09;Java常用类库-CSDN博客 系列文章&#xff1a;Java高级 | 【实验一】Springboot安装及测试 |最新-CSDN博客 Java高级 | 【实验二】Springboot 控制器类相关注解知识-CSDN博客 Java高级 | 【实验三】Springboot 静…...

es地理信息索引的类型以及geo_point‌和geo_hash的关系

Elasticsearch中地理信息索引的主要数据类型有两种&#xff1a; geo_point&#xff1a;用于存储单个地理点坐标&#xff08;如纬度/经度&#xff09;&#xff0c;支持精确位置查询和基于距离的搜索操作。geo_shape&#xff1a;用于存储复杂的地理形状&#xff08;如点、线、多…...

深入理解 Spring IOC:从概念到实践

目录 一、引言 二、什么是 IOC&#xff1f; 2.1 控制反转的本质 2.2 类比理解 三、Spring IOC 的核心组件 3.1 IOC 容器的分类 3.2 Bean 的生命周期 四、依赖注入&#xff08;DI&#xff09;的三种方式 4.1 构造器注入 4.2 Setter 方法注入 4.3 注解注入&#xff08;…...

Vue解决开发环境 Ajax 跨域问题

一、前言 在使用 Vue 进行前后端分离开发时&#xff0c;前端通常运行在本地开发服务器&#xff08;如 http://localhost:8080&#xff09;&#xff0c;而后端接口可能部署在其他域名或端口下&#xff08;如 http://api.example.com:3000&#xff09;。这时就可能出现 跨域&…...

行为设计模式之Command (命令)

行为设计模式之Command &#xff08;命令&#xff09; 前言&#xff1a; 需要发出请求的对象&#xff08;调用者&#xff09;和接收并执行请求的对象&#xff08;执行者&#xff09;之间没有直接依赖关系时。比如遥控器 每个按钮绑定一个command对象&#xff0c;这个Command对…...

若依添加添加监听容器配置(删除键,键过期)

1、配置Redis的键触发事件 # 基础配置 bind 0.0.0.0 # 允许所有IP连接 protected-mode no # 关闭保护模式&#xff08;生产环境建议结合密码使用&#xff09; port 6379 # 默认端口 daemonize no …...

NeRF 技术深度解析:原理、局限与前沿应用探索(AI+3D 产品经理笔记 S2E04)

引言&#xff1a;光影的魔法师——神经辐射场概览 在前三篇笔记中&#xff0c;我们逐步揭开了 AI 生成 3D 技术的面纱&#xff1a;从宏观的驱动力与价值&#xff08;S2E01&#xff09;&#xff0c;到主流技术流派的辨析&#xff08;S2E02&#xff09;&#xff0c;再到实用工具的…...

ROS2,工作空间中新建了一个python脚本,需要之后作为节点运行。告诉我步骤?

提问 ROS2&#xff0c;工作空间中新建了一个python脚本&#xff0c;需要之后运行。告诉我步骤&#xff1f; 大概要包括而不限于&#xff1a;chmod给可执行权限、setup.py中entry point的配置&#xff0c;如果在launch文件中要使用&#xff0c;还涉及到launch.py文件的配置。最…...

【AI智能体】Spring AI MCP 从使用到操作实战详解

目录 一、前言 二、MCP 介绍 2.1 什么是MCP 2.2 MCP 核心特点 2.3 MCP 核心价值 2.4 MCP 与Function Calling 区别 三、Spring AI MCP 架构介绍 3.1 整体架构 3.1.1 三层架构实现说明 3.2 服务端与客户端 3.2.1 MCP 服务端 3.2.1 MCP 客户端 3.3 MCP中SSE和STDIO区…...

Vue:Ajax

AJAX 允许我们在不刷新页面的情况下与服务器交互&#xff0c;实现&#xff1a;动态加载数据&#xff0c;提交表单信息&#xff0c;实时更新内容&#xff0c;与后端 API 通信。通常使用专门的 HTTP 客户端库来处理 AJAX 请求。 npm install axiosimport axios from axios;expor…...