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

Pycharm远程调试deepspeed!可用!

本人写代码的习惯就是一定是要从别人优秀的代码中调试学习的,直接运行+看的话,可能知道了大概的逻辑但是缺无法知道细节的话(参数的含义或者某某数据格式类型),可能对整体代码逻辑的把控不是狠好,所以还是从调试中学习,这也是我所推崇的。

初衷

学习大模型LLM,OOM问题大家可能都遇见过,那么deepspeed便是绕不过的弯,但是deep是如何实现zero123的,参数权重、梯度、优化器状态是怎么保存的,需要通过源码和具体代码的调试才能掌握,那么我便想找一个简单的deepspeed demo来学习下具体的原理。
所选取的代码时 https://github.com/bobo0810/LearnDeepSpeed

一般的deepspeed脚本

CUDA_VISIBLE_DEVICES=4,6,7 deepspeed cifar10_deepspeed.py --deepspeed --deepspeed_config ds_config.json

使用deepspeed执行

Pycharm配置

在这里插入图片描述
总体大概这样,下面我将分为几个部分分别讲下:

Module name

在这里插入图片描述
一般我们都是选择Script path的,现在选择Module name,再去选择
deepspeed.launcher.runner
注意:deepspeed.launcher.runner 是通过下拉栏的方式选择的,而不是直接输入
parameter:
在这里插入图片描述
相较于正常脚本前面添加:

--include localhost:0
--master_port 5600
--hostfile hostfile_single

再谢要执行的py程序,后面加上python程序的参数。

Enviroment variables

主要设置CUDA_VISIBLE_DEVICES,含义:此时能看见的GPU编号,PATH的作用主要指向ninja的位置,可用通过找到,没有的话,先pip下载一个

which ninja

例子:

PYTHONUNBUFFERED=1;CUDA_VISIBLE_DEVICES=4,6,7;PATH=/root/anaconda3/envs/fs-llm/bin/

Working directory

写正常本机的项目地址就行
在这里插入图片描述


http://www.kler.cn/a/388187.html

相关文章:

  • 如何从头开始构建神经网络?(附教程)
  • 【前端学习指南】Vue computed 计算属性 watch 监听器
  • AcWing 302 任务安排 斜率优化的dp
  • leetcode hot100【LeetCode 114.二叉树展开为链表】java实现
  • 24/11/13 算法笔记<强化学习> DQN算法
  • C# 委托与匿名方法
  • 前端三件套配合豆包MarsCode 实现钉钉官网动画
  • USB学习(上)
  • 「Mac玩转仓颉内测版1」入门篇1 - Cangjie环境的搭建
  • NLP之ASR之moonshine:moonshine的简介、安装和使用方法、案例应用之详细攻略
  • 如何设置定时关闭或启动整个docker而不是某个容器
  • GPIO 唤醒深度睡眠的esp32-c3
  • 如何找到养生生活视频素材?推荐几个优秀网站
  • 每日一题之成绩排序(进阶版)
  • springboot静态资源映射不生效问题
  • Node.js——fs模块-相对路径的bug与解决
  • 机器学习—多类
  • C++使用开源ConcurrentQueue库处理自定义业务数据类
  • MySQL的其他函数
  • Oracle简介、环境搭建和基础DML语句
  • 网络安全从入门到精通(特别篇IIl):应急响应之病毒蠕虫处置流程
  • 深度学习-张量相关
  • 解决 IntelliJ IDEA Maven 项目 JDK 版本自动变为 1.5 的问题
  • 硬件设备网络安全问题与潜在漏洞分析及渗透测试应用
  • 开源竞争-利用kimi编程助手搭建小程序(11)
  • 解决编译 fast-lio-lc 算法时遇到的error方法