收藏文章 楼主

Deepspeed Chat项目理解

版块:AIGC   类型:普通   作者:AI绘图   查看:99   回复:0   获赞:0   时间:2023-11-01 11:00:04

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

 
回复列表
默认   热门   正序   倒序

回复:Deepspeed Chat项目理解

Powered by 7.12.10

©2015 - 2025 90Link

90link品牌推广 网站地图

您的IP:3.144.124.142,2025-05-03 23:14:27,Processed in 0.36066 second(s).

豫ICP备2023005541号

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息
免责声明
  • 1、本网站所刊载的文章,不代表本网站赞同其观点和对其真实性负责,仅供参考和借鉴。
  • 2、文章中的图片和文字版权归原作者所有,如有侵权请及时联系我们,我们将尽快处理。
  • 3、文章中提到的任何产品或服务,本网站不对其性能、质量、适用性、可靠性、安全性、法律合规性等方面做出任何保证或承诺,仅供读者参考,使用者自行承担风险。
  • 4、本网站不承担任何因使用本站提供的信息、服务或产品而产生的直接、间接、附带或衍生的损失或责任,使用者应自行承担一切风险。

侵权删除请致信 E-Mail:3454251265@qq.com