DeepSpeed系列篇1:零门槛上手DeepSpeed实战(服务器部署及训练过程详解SFT)

news2024/11/27 18:40:23

1、建立虚拟环境

conda create -n dsnew python=3.10

2、安装pytorch

conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia

3、安装deepspeed

pip install deepspeed

4、下载DeepSpeedExamples并安装依赖

https://github.com/microsoft/DeepSpeedExamples

​git clone https://github.com/microsoft/DeepSpeedExamples.git

进入到目录:

cd /home/train/mycharm/dsnew/DeepSpeedExamples/applications/DeepSpeed-Chat

执行:

pip install -r requirements.txt

最好开代理(能访问谷歌等),会从Hugging Face下载包

5、修改batch,否则24G显存不够用

编辑run1.3b.sh文件:

cd /home/train/mycharm/dsnew/DeepSpeedExamples/applications/DeepSpeed-Chat/training/step1_supervised_finetuning/training_scripts/single_gpu/
vim run1.3b.sh

添加以下内容:

--per_device_train_batch_size 4 \
--per_device_eval_batch_size 4 \

Epoch改为1

--num_train_epochs 1

6、开始训练

python3 train.py --step 1 --deployment-type single_gpu

首次执行该命令需要下载facebook-OPT模型,还有需要的数据,会比较慢,最好开代理,否则容易挂,很多是从Hugging Face下载数据和模型。

新开一个窗口,查看Log:

cd /home/train/mycharm/ds/DeepSpeedExamples20230415/applications/DeepSpeed-Chat
less output/actor-models/1.3b/training.log

Batch为4时,显存基本占满了,~20G,占比:82%

1个Epoch结束后,如下图所示:

如果想查看Log看详细情况:

切换到DeepSpeed-Chat目录下,执行:

cd /home/train/mycharm/dsnew/DeepSpeedExamples/applications/DeepSpeed-Chat

查看运行日志:

less output/actor-models/1.3b/training.log

生成的模型在output目录下:

7、评价与测试

打开文件 run_prompt.sh 添加 baseline 模型,和 finetune 后的模型:

python prompt_eval.py \
    --model_name_or_path_baseline facebook/opt-1.3b \
    --model_name_or_path_finetune ../../output/actor-models/1.3b

评价程序会调用 prompt_eval.py 来分别输出 baseline 和 finetune 后模型的结果。

要执行此代码,需要切换到 step1_supervised_finetuning 目录下:

cd training/step1_supervised_finetuning
bash evaluation_scripts/run_prompt.sh

但会出现一个错误:

evaluation_scripts/run_prompt.sh: line 4: $'\r': command not found

文件格式问题,只需转换格式即可:

dos2unix evaluation_scripts/run_prompt.sh

再次执行:

bash evaluation_scripts/run_prompt.sh

运行成功:

……

执行chat.py,可以对话方式进行交互:

python chat.py --path output/actor-models/1.3b

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/769694.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文了解DDD分层架构演进

1.3 分层架构演进 1.3.1 传统四层架构 将领域模型和业务逻辑分离出来,并减少对基础设施、用户界面甚至应用层逻辑的依赖,因为它们不属业务逻辑。将一个夏杂的系统分为不同的层,每层都应该具有良好的内聚性,并且只依赖于比其自身更…

arduinoIDE2.1.1最新版升级开发板(esp32-2.0.3升级2.0.10)方法总结(esp8266升级通用)

一、arduinoIDE 升级最新版 2.1.1方法 1.1.通过IDE2.x直接升级(推荐,速度还可以) 1.2.官网下载安装包覆盖升级(地址https://www.arduino.cc/en/software) 1.3 ESP8266升级方法雷同可参考(原理一样,最新好像是3.1.2) https://github.com/esp8266/Arduino/releases http…

C++入门知识点

目录 命名空间 命名空间定义 命名空间使用 法一:加命名空间名称及作用域限定符:: 法二:使用using部分展开(授权)某个命名空间中的成员 法三:使用using对整个命名空间全部展开(授权…

Windows修改mysql服务的root密码

目录 步骤1、停止mysql服务2、使用命令行启动mysql服务,跳过密码验证3、密码置空4、关闭命令行启动的mysql服务并正常启动5、修改root密码 参考 步骤 1、停止mysql服务 以管理员身份打开终端,输入指令net stop mysql停止MySQL服务,停止服务…

PBOOTCMS登录请求发生错误,您可按照如下方式排查: 1、试着删除根目录下runtime目录,刷新页面重试;2、检查系统会话文件存储目录是否具有写入权限;

PBOOTCMS后台登录请求发生错误,您可按照如下方式排查: 1、试着删除根目录下runtime目录,刷新页面重试;2、检查系统会话文件存储目录是否具有写入权限; 以上提示其实就是,表单提交校验失败,请刷新后重试的提…

U盘文件修复怎么做?简单3步,快速修复u盘文件!

“很离谱!由于有些文件存在错误,我想将这些错误文件修复,但在操作过程中,不知为什么所有的数据都被删除了。U盘文件修复应该怎么做呀?是不是我的操作方法有误呢?” U盘使用时间长了之后,很可能会…

【分布鲁棒、状态估计】分布式鲁棒优化电力系统状态估计研究[几种算法进行比较](Matlab代码实现)

💥1 概述 文献来源: 摘要: 能源市场的自由化、可再生能源的渗透、先进的计量能力以及对情境感知的需求,都要求进行系统范围的电力系统状态估计(PSSE)。然而,由于互联的复杂性、实时监测中的通信…

MySQL八股学习记录6-日志from小林coding

MySQL八股学习记录6-日志from小林coding MySQL日志分类undo logBuffer Poolredo logbinlogredo log 和undo log有什么区别主从复制是如何实现update语句执行过程为什么需要两阶段提交 MySQL日志分类 undo log:InnoDB存储引擎层生成的日志,实现事务中的原子性,主要用于事务回滚…

学习记录——SpectFormer、DilateFormer、ShadowFormer、MISSFormer

SpectFormer: Frequency and Attention is what you need in a Vision Transformer, arXiv2023 频域混合注意力SpectFormer 2023 论文:https://arxiv.org/abs/2304.06446 代码:https://badripatro.github.io/SpectFormers/ 摘要视觉变压器已经成功地应用…

No.2(4)——双指针解决柱子间最大面积

已知现在有几根柱子成有序排列,求出两根柱子之间围成面积的最大值。 不难想到,只需要将每两个柱子之间的面积计算一次并找出最大值,即可找到答案,但采用双指针法可以有效降低重复计算:从数组的两侧开始移动左右两个指针…

Elasticsearch SQL 详解

Elasticsearch SQL 是一个 X-Pack 组件,允许用户使用类似 SQL 的语法在 ES 中进行查询。用户可以在 REST、JDBC、命令行中使用 SQL 在 ES 执行数据检索和数据聚合操作。ES SQL 有以下几个特点: 本地集成,SQL 模块是 ES 自己构建的&#xff0…

数据库| 中国研究数据服务平台

数据哪里查,查不到,怎么办? 今天分享一个数据库|中国研究数据服务平台(CNRDS) 中国研究数据服务平台(Chinese Research Data Services,简称CNRDS),是上海经禾信息技术有…

HCIA|详解Telnet协议

一、前言 今天翻到了之前写的Telnet协议的实验,由于该篇文章创作于开始写作的初期,文章结构简单、布局潦草,但实验内容是完整的,因此本篇文章将对Telnet技术进行详解,希望能够对大家提供帮助。在本文中,将从…

ECharts is not Loaded -- echarts里china.json与china.js有何区别

echarts官方提示他们的地图json测绘不符合中国官方标准不提供下载 如下图 china.json china.js 可以很明显的看出地图山东与辽宁部分堆到一起的情况, 接下来换成china.js vue项目,要引入china.js,直接import引入会报错:ECharts is not Loa…

【SCI征稿】IEEE旗下中科院1区(TOP),有关计算机的广泛领域研究

期刊简介: 出版社:IEEE 影响因子:IF(2022)10.5-11.0 期刊分区:JCR1区,中科院1区(TOP) 检索情况:SCIE&EI 双检 自引率:13.20% 国人占比&…

在Illustrator中创建 3D 冰淇淋模型对象

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 一旦你学会了如何在Illustrator中制作一个对象3D,你可以前往Envato Elements,在那里你可以找到大量的3D设计来激发你的灵感。这个基于订阅的市场拥有超过 2,000 个 Illus…

国外广告联盟和国内广告联盟的优劣势是什么

国外广告联盟和国内广告联盟在一些方面存在一些差异和优劣势。以下是对比它们的一些常见优劣势: 一、国外广告联盟优势: 1、国际资源:国外广告联盟拥有更广泛的国际媒体资源,能够帮助广告主拓展全球市场,进一步提高国…

Arduino安装ESP32下载失败的解决方法

Arduino安装ESP32时,经常下载失败 解决办法: 1.复制命令行中的提示信息到记事本,找到下载地址 2.打开浏览器,在地址栏中贴粘下载地址,回车开始下载 3.将下载的包复制到C:\Users\Administrator\AppData\Local\Arduino…

Spring Boot进阶(54):Windows 平台安装 MongoDB数据库 | 超级详细,建议收藏

1. 前言🔥 Windows如何安装MongoDB数据库及使用呢?这将又会是干货满满的一期,全程无尿点不废话只抓重点教,具有非常好的学习效果,拿好小板凳准备就坐!希望学习的过程中大家认真听好好学,学习的途…

vue3 电子书 pdf转图片 pdf实现翻页效果 pdfjs-dist、turn.js电子书翻页效果

实现效果: 一、下载插件 // 重点 pdfjs-dist 下载版本有时候 2.16.105 有效 有时候 3.4.120 有效,小编也没搞懂为什么npm install pdfjs-dist3.4.120 //一定要下载 3.4.120 版本的,不然会有报错npm install jquery // 使用的是 turn.js…