Deepspeed Chat项目理解

news2024/12/23 7:35:16

ChatGPT的广泛使用促进大模型火起来了,深度学习人工智能开启了2.0时代,deepspeed chat是微软开源的大模型训练工具,它充分利用了deepspeed的高效训练的特点,能够自动化的进行多种大模型训练。

言归正传,在博客中我将对我的实验的流程和运行方式做个记录,便于自己后续的查看,也给其他初学者一点参考。项目:Deepspeed chat链接, 资源库:hugging face

前述项目就是Deepspeed chat的官方项目,可以在按照其readme所述的流程进行操作,整体的操作流程搬运到下面:

pip install deepspeed>=0.9.0

git clone https://github.com/microsoft/DeepSpeedExamples.git
cd DeepSpeedExamples/applications/DeepSpeed-Chat/
pip install -r requirements.txt

如上安装完环境后,进行训练,训练的脚本如下:

python train.py --actor-model facebook/opt-1.3b --reward-model facebook/opt-350m --deployment-type single_gpu
python train.py --actor-model facebook/opt-13b --reward-model facebook/opt-350m --deployment-type single_node
python train.py --actor-model facebook/opt-66b --reward-model facebook/opt-350m --deployment-type multi_node

分别表示单GPU,单节点,多节点的一次性的运行方式,之所以称其为一次性运行方式,是因为deepspeed chat在大模型finetune的过程中主要分为3步,参考GPT-3论文:GPT Finetune 3步走
使用上述方式如果遇到问题不好定位,因此,可以采用如下方式分步骤进行,分步方式如下:

step1:

# Move into the first step of the pipeline
cd training/step1_supervised_finetuning/

# Run the training script
bash training_scripts/single_gpu/run_1.3b.sh

# Evaluate the model
bash evaluation_scripts/run_prompt.sh

step2:

# Move into the second step of the pipeline
cd training/step2_reward_model_finetuning

# Run the training script
bash training_scripts/single_gpu/run_350m.sh

# Evaluate the model
bash evaluation_scripts/run_eval.sh

step3:

# Move into the final step of the pipeline
cd training/step3_rlhf_finetuning/

# Run the training script
bash training_scripts/single_gpu/run_1.3b.sh

资源库
按照如上方式,运行时还是会遇到问题,因为deepspeed chat是默认在hugging face上拉取的模型和数据,但是hugging face是国外的网站,在国内ip很难连接上,容易出现类似ConnectionResetError的问题,因此需要在本地下载了上传上去,对应的模型在hugging face上可以搜索到。

参照教程:deepspeed chat替换模型和数据,将模型替换为LLMZoo中的模型和数据,使用的模型为bigscience/bloomz-1b1,数据为phoenix-sft-data-v1或者其他数据,例如Dahoas/rm-static。将model_name_or_path参数设置为bigscience/bloomz-1b1,data_path参数设置为本地数据路径或者远程数据路径。

遇到问题:若出现网络连接失败,则需要另外单独下载资源,其中较小的文件可以使用git lfs和git clone下载,较大的数据(如大模型,大数据集)需要借助代理拉取,使用git下载的方式如图:(git lfs是用来下载大数据的)

git下载资源方式
对于更大的数据,需要使用本地下载方式,文件可以在工程下查看单独下载:

hugging face单独工程下的文件
提示: 将模型和数据如果下载到本地后,若设置的超参数重合,代码将优先从本地读取,不会从远程下载。另外下载下来的数据如果需要使用和远程拉取同样的数据处理方式,应该使得本地对应的路径和远程路径部分相同,否则找不到对应的数据处理方式。

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

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

相关文章

什么是大数据,常见的大数据应用领域?

现在大数据发展的如火如荼,也有不少小伙伴对于什么是大数据比较感兴趣,那么大数据在比较官方的定义是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力…

ASP.NET Core Web API入门:创建新项目

ASP.NET Core Web API入门:创建新项目 一、引言二、创建新项目三、加入Startup类,并替换Program.cs内容四、编辑Program.cs代码五、修改控制器的路由六、运行项目 一、引言 最近闲着,想着没真正从0-1开发过ASP.NET Core Web API的项目&#…

Navicat for Redis 与 Navicat Premium 16.2 现已正式发布 | 释放 Redis 全部潜能

今天,我们正式发布 Navicat for Redis 与 Navicat Premium 16.2 两款产品。注入 Redis 能力,这对 Navicat 具有里程碑意义。 此次首发的 Navicat for Redis 数据库管理开发工具,将为 Redis 用户的日常工作带来更为便捷、高效的全新体验。同时…

XV-442-57CQB-1-10伊顿触摸屏EATON

​ XV-442-57CQB-1-10伊顿触摸屏EATON XV-442-57CQB-1-10伊顿触摸屏EATON plc的通信模块是用来完成与别的PLC,其他智能控制设备或计算机之间的通信。以下简单介绍FX系列通信用功能扩展板、适配器及通信模块。 (1)通信扩展板FX2N-232-BD…

第十五章物资需求计划

物料需求计划(MRP)是物料管理(MM)和生产计划(PP)的组成部分。在本章中,您将学习如何使用MRP来优化物流和供应链规划流程。 物料需求计划(MRP)是一种用途广泛、直观的计划…

44 最佳实践-性能最佳实践-裸设备映射

文章目录 44 最佳实践-性能最佳实践-裸设备映射44.1 概述44.2 配置示例 44 最佳实践-性能最佳实践-裸设备映射 44.1 概述 配置虚拟机存储设备时,除了将文件配置给虚拟机作为虚拟磁盘使用外,还可以将块设备(物理LUN、逻辑卷等)直…

VXLAN技术应用场景及测试

定义 RFC7348定义了VLAN扩展方案VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网)。 VXLAN采用MAC in UDP(User Datagram Protocol)封装方式,是NVO3(Network Virtualization ove…

设计模式(行为型模式)之:Strategy(策略模式)

文章目录 本质:动机:定义:一个不好的例子策略模式重写总结 本质: 分离算法,选择实现。动机: 在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算…

LeetCode 按摩师 python

目录 1.题目描述 2.普通解法(通过部分测试用例) ​编辑 3.动态规划解法 3.题目总结 1.题目描述 一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻…

(六)CSharp-CSharp图解教程版-委托

一、委托概述 1、什么是委托 委托和类一样,是一种用户定义类型(即是一种类,所以也是一个引用类型)。在它们组成的结构方面区别是,类表示的是数据和方法的集合,而委托则持有一个或多个方法。 可以把 deleg…

Spring架构篇--2.7.1 远程通信基础--Netty原理--NioEventLoopGroup

前言:在使用Netty 时不管是服务端还是客户端都需要 new NioEventLoopGroup 对象进行工作,NioEventLoopGroup的作用是什么呢; 1 NioEventLoopGroup 类图: 从类名字来看它是一个Nio 流的事件轮询器组,既然是一组顾名思…

使用dataFEED OPC Suite将西门子PLC数据转发至阿里云RDS数据库

一 背景 工业现场级别的各种设备会产生大量的数据,这些数据包含生产过程的各种信息,在经过数据库等IT应用的处理后,可为企业提供全面的生产数据分析和决策支持。以往工厂的数据库通常部署在本地,然而得益于云计算的快速发展以及云…

k8s harbor镜像仓库搭建

1.前言 Harbor 是一个开源的云原生镜像仓库,用于存储和分发 Docker 镜像。它提供了一些安全性和管理方面的功能,使得用户可以更好地管理和共享 Docker 镜像 2.配置harbor搭建环境 harbor的搭建需要用到docker、docker-compose服务 docker搭建参考&am…

Vivado 下 IP核之双端口 RAM 读写

目录 Vivado 下 IP核之双端口 RAM 读写 1、RAM IP 核简介 2、实验任务 3、程序设计 3.1、RAM IP 核配置 3.2、顶层模块设计 (1)绘制波形图 4、编写代码 4.1、顶层模块 ip_2port_ram 4.2、RAM 写模块设计 4.3、ram_wr 模块代码 4.4、RAM 读模…

基于graalvm和java swing制作一个文件差异对比的原生应用,附源码

文章目录 1、DFDiff介绍2、软件架构3、安装教程3.1、编译为jar包运行3.2、编译为原生应用运行 4、运行效果图5、项目源码地址 1、DFDiff介绍 当前已实现的功能比较两个文件夹内的文件差异,已支持文件差异对比。 2、软件架构 软件架构说明 开发环境是在OpenJDK17&…

安装 Kafka

文章目录 1.选择操作系统2.配置 Java 环境3.安装 ZooKeeper4.安装 broker(1)安装 broker(2)验证是否安装正确 5.配置 broker(1)常规配置(2)主题的默认配置 6.配置 Kafka 集群&#x…

CAC2.0全新升级发布,为企业邮箱筑起安全壁垒!

5月31日,Coremail举办了【聚焦盗号,企业邮件安全的威胁分析与应对】直播交流会。直播会上Coremail邮件安全团队就邮箱盗号问题进行了深度分享。 面对如此肆虐的盗号现象和即将到来的攻击暴破高峰期,各行业应该如何应对防护邮箱安全呢&#xf…

什么是防火墙?它有什么作用?

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、什么是防火墙 二、防火墙的分类 1、软件防火墙 2、硬件防火墙 三、防火墙的作用 1、防止病毒 2、防止访问不安全内容 3、阻…

如何使用AI帮你制作PPT

一:前言 ChatGPT:智能AI助你畅聊天地 在现代人日益忙碌的生活中,难免需要一些轻松愉快的聊天来放松身心。而现在,有了 ChatGPT,轻松愉快的聊天变得更加智能、有趣且不受时间、地点限制! 什么是 ChatGPT&…

嵌入式Linux系统中SPI 子系统基本实现

1、SPI 驱动源文件目录 Linux common spi driver kernel-4.14/drivers/spi/spi.c Linux 提供的通用接口封装层驱动 kernel-4.14/drivers/spi/spidev.c linux 提供的 SPI 通用设备驱动程序 kernel-4.14/include/linux/spi/spi.h linux 提供的包含 SPI 的主要数据结构和函数…