[TOC]

1. DeepSpeed-Chat是什么?

DeepSpeed-Chat是微软最新公布的一套工具,用于训练类ChatGPT模型。该工具基于微软的大模型训练工具DeepSpeed,使用它可以非常简单高效地训练自己的ChatGPT。该工具具有以下特点:

  1. 完整的训练类ChatGPT的代码:包括预训练模型下载、数据下载、InstructGPT训练过程和测试。
  2. 多种规模的模型:模型参数从1.3B到66B,即适合新手学习也可用于商用部署。
  3. 高效的训练:通过使用最新技术,如ZeRO和LoRA等技术改善训练过程,让训练过程更高效。例如,一个67亿(6.7B)参数的模型,使用8块A00只需要约5个小时就可以完成训练。
  4. 推理API:提供易于使用的推理API,方便进行对话式的交互测试。

2. 开发环境安装

推荐设置:Linux操作系统,GPU 24G以上显存,CUDA版本11.7

  1. 配置 CUDA 环境 确认你的CUDA安装路径,比如/usr/local/cuda-11.7,在命令行终端执行以下命令,设置CUDA环境:
$ export CUDA_HOME=/usr/local/cuda-11.7
$ export PATH=$CUDA_HOME/bin:$PATH
export $ LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

  1. 新建 conda 运行环境 本实例中,使用基于Conda的运行环境来运行DS-Chat。下面的命令新建了名为Test01的运行环境,并在安装完成后使用 activate 命令激活此运行环境。最后,将运行环境的路径加入系统PATH和LD_LIBRARY_PATH中,从而可以优先使用此运行环境下安装的工具和编译器。
$ conda create -n Test01 python=3.10 anaconda
$ conda activate Test01

# 将conda环境加入PATH和LD_LIBRARY_PATH中,从而可以优先利用conda安装的程序
$ export LD_LIBRARY_PATH=~/anaconda3/envs/Test01/lib/:$LD_LIBRARY_PATH
$ export PATH=~/anaconda3/envs/Test01/bin:$PATH

  1. 下载 DeepSpeedExamples 代码 DS-Chat 工具的代码位于 DeepSpeedExamples 仓库中。要下载其代码,请执行以下命令。如果尚未安装 git 命令,需要先安装 git。 下载完成后,切换到代码的目录下,使用pip命令安装所需要的开发库。
$ conda install git
$ git clone <https://github.com/microsoft/DeepSpeedExamples.git>
$ cd DeepSpeedExamples/applications/DeepSpeed-Chat/

# 安装依赖
$ pip install -r requirements.txt

$ 重新安装 pytorch(GPU版)
$ conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia

测试环境

python
>>> import torch
>>> torch.cuda.is_available()
True
>>> torch.cuda.device_count()
1
>>> torch.cuda.current_device()
0
>>> torch.cuda.device(0)
<torch.cuda.device at 0x7efce0b03be0>
>>> torch.cuda.get_device_name(0)
'GeForce GTX 950M'

3.ChatGPT模型训练基本流程

ChatGPT 的训练过程共分为四个步骤:

a) 训练预训练模型,如 GPT-3.5 或 GPT-4; b) 监督微调(SFT:supervised finetuning)(对应 DS-Chat 中的 Step1); c) 奖励模型微调(RM:Reward model finetuning)(对应 DS-Chat 中的 Step2); d) 基于人类反馈的强化学习(RLHF:Reinforcement learning with human feedback)(对应 DS-Chat 中的 Step3)。