修改:Aeneas 好困

【新智元导读】微软开源的 DeepSpeed Chat,让开发者完结了人手一个 ChatGPT 的愿望!

人手一个 ChatGPT 的愿望,就要完结了?

刚刚,微软开源了一个可以在模型练习中加入完整 RLHF 流程的体系结构——DeepSpeed Chat。

也就是说,各种规划的高质量类 ChatGPT 模型,现在都唾手可得了!

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

项目地址:github.com/microsoft/D…

一键解锁千亿级 ChatGPT,轻松省钱 15 倍

众所周知,由于 OpenAI 太不 Open,开源社区为了让更多人能用上类 ChatGPT 模型,相继推出了 LLaMa、Alpaca、Vicuna、Databricks-Dolly 等模型。

但由于缺少一个支撑端到端的 RLHF 规划化体系,目前类 ChatGPT 模型的练习仍然十分困难。而 DeepSpeed Chat 的出现,正好补全了这个「bug」。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

更亮的是,DeepSpeed Chat 把本钱大大地打了下来。

此前,昂贵的多 GPU 设置超出了许多研究者的才能范围,而且,即使能拜访多 GPU 集群,现有的办法也无力负担数千亿参数 ChatGPT 模型的练习。

现在,只要花 1620 美元,就可以经过混合引擎 DeepSpeed-HE,在 2.1 天内练习一个 OPT-66B 模型。

而假如运用多节点、多 GPU 体系,DeepSpeed-HE 可以花 320 美元,在 1.25 小时内练习一个 OPT-13B 模型,花 5120 美元,就能在不到一天的时刻内练习一个 OPT-175B 模型。

前 Meta AI 专家 Elvis 激动转发,称这是一件大事,并表明好奇 DeepSpeed Chat 和 ColossalChat 比较起来怎么。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

下面,咱们就来看看作用怎么。

经过 DeepSpeed-Chat 的练习,13 亿参数版「ChatGPT」在问答环节上的表现非常亮眼。不仅能 get 到问题的上下文联系,而且给出的答案也有模有样。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

在多轮对话中,这个 13 亿参数版「ChatGPT」所展示出的功用,也完全逾越了这个规划的固有形象。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

一段代码,生成你的第一个 ChatGPT

当然,在体会之前,还需求把环境装备一下:

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

一杯咖啡,训完 13 亿参数版 ChatGPT

假如你只有大约 1-2 小时的咖啡或午饭休息时刻,也可以测验运用 DeepSpeed-Chat 练习一个「小玩具」。

团队特地预备了一个针对 1.3B 模型的练习示例,可在消费级 GPU 上进行测验。最棒的是,当你从午休回来时,一切都已预备就绪。

python train.py --actor-model facebook/opt-1.3b --reward-model facebook/opt-350m --num-gpus 1

装备 48GB 显存的消费级 NVIDIA A6000 GPU:

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

一个 GPU Node,半响搞定 130 亿参数

假如你只有半响的时刻,以及一台服务器节点,则可以经过预练习的 OPT-13B 作为 actor 模型,OPT-350M 作为 reward 模型,来生成一个 130 亿参数的类 ChatGPT 模型:

python train.py --actor-model facebook/opt-13b --reward-model facebook/opt-350m --num-gpus 8

单 DGX 节点,搭载了 8 个 NVIDIA A100-40G GPU:

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

超省钱云计划,练习 660 亿参数模型

假如你可以运用多节点集群或云资源,并希望练习一个更大、更高质量的模型。那么只需根据下面这行代码,输入你想要的模型大小(如 66B)和 GPU 数量(如 64):

python train.py --actor-model facebook/opt-66b --reward-model facebook/opt-350m --num-gpus 64

8 个 DGX 节点,每个节点装备 8 个 NVIDIA A100-80G GPU:

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

具体来说,针对不同规划的模型和硬件装备,DeepSpeed-RLHF 体系所需的时刻和本钱如下:

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

DeepSpeed Chat 是个啥?

DeepSpeed Chat 是一种通用体系结构,可以完结类似 ChatGPT 模型的端到端 RLHF 练习,然后协助咱们生成自己的高质量类 ChatGPT 模型。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

DeepSpeed Chat 具有以下三大中心功用:

1. 简化 ChatGPT 类型模型的练习和强化推理体会

开发者只需一个脚本,就能完结多个练习步骤,而且在完结后还可以运用推理 API 进行对话式交互测验。

2. DeepSpeed-RLHF 模块

DeepSpeed-RLHF 复刻了 InstructGPT 论文中的练习形式,并供给了数据笼统和混合功用,支撑开发者运用多个不同来历的数据源进行练习。

3. DeepSpeed-RLHF 体系

团队将 DeepSpeed 的练习(training engine)和推理才能(inference engine) 整合成了一个一致的混合引擎(DeepSpeed Hybrid Engine or DeepSpeed-HE)中,用于 RLHF 练习。由于,DeepSpeed-HE 可以无缝地在推理和练习形式之间切换,因而可以运用来自 DeepSpeed-Inference 的各种优化。

DeepSpeed-RLHF 体系在大规划练习中具有无与伦比的功率,使杂乱的 RLHF 练习变得快速、经济而且易于大规划推广:

  • 高效且经济:

DeepSpeed-HE 比现有体系快 15 倍以上,使 RLHF 练习快速且经济实惠。

例如,DeepSpeed-HE 在 Azure 云上只需 9 小时即可练习一个 OPT-13B 模型,只需 18 小时即可练习一个 OPT-30B 模型。这两种练习别离花费不到 300 美元和 600 美元。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

  • 杰出的扩展性:

DeepSpeed-HE 可以支撑练习具有数千亿参数的模型,并在多节点多 GPU 体系上展现出杰出的扩展性。

因而,即使是一个具有 130 亿参数的模型,也只需 1.25 小时就能完结练习。而对于具有 1750 亿参数的模型,运用 DeepSpeed-HE 进行练习也只需不到一天的时刻。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

  • 完结 RLHF 练习的普及化:

仅凭单个 GPU,DeepSpeed-HE 就能支撑练习超越 130 亿参数的模型。这使得那些无法运用多 GPU 体系的数据科学家和研究者不仅可以轻松创立轻量级的 RLHF 模型,还能创立大型且功用强大的模型,以应对不同的运用场景。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

完整的 RLHF 练习流程

为了供给无缝的练习体会,研究者遵从 InstructGPT,并在 DeepSpeed-Chat 中包括了一个完整的端到端练习流程。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

DeepSpeed-Chat 的 RLHF 练习流程图示,包括了一些可挑选的功用

流程包括三个首要步骤:

  • 第 1 步:

监督微调 (SFT),运用精选的人类答复来微调预练习的语言模型,以应对各种查询。

  • 第 2 步:

奖赏模型微调,用一个包括人类对同一查询的多个答案打分的数据集,来练习一个独立的(通常比 SFT 小)奖赏模型(RW)。

  • 第 3 步:

RLHF 练习,在这一步,SFT 模型经过运用近似战略优化(PPO)算法,从 RW 模型的奖赏反馈进一步微调。

在步骤 3 中,研究者还供给了两个附加功用,来协助进步模型质量:

  • 指数移动平均线(EMA)的搜集,可以挑选一个根据 EMA 的检查点,进行终究评价。

  • 混合练习,将预练习方针(即下一个词预测)与 PPO 方针混合,以防止在公共基准(如 SQuAD2.0)上的功用回归。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

EMA 和混合练习这两个练习特征,常常被其他的开源结构所忽略,由于它们并不会妨碍练习的进行。

但是,根据 InstructGPT,EMA 检查点往往比传统的终究练习模型供给更好的响应质量,而混合练习可以协助模型坚持练习前的基准解决才能。

因而,研究者为用户供给了这些功用,让他们可以充分获得 InstructGPT 中描述的练习经历。

而除了与 InstructGPT 论文高度一致外,研究者还供给了功用,让开发者运用多种数据资源,练习自己的 RLHF 模型:

  • 数据笼统和混合才能:

DeepSpeed-Chat 装备了(1)笼统数据集层,以一致不同数据集的格局;以及(2)数据拆分 / 混合功用,然后使多个数据集被适当地混合,然后在 3 个练习阶段进行切割。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

DeepSpeed 混合引擎

指示引导的 RLHF 管道的第 1 步和第 2 步,类似于大模型的常规微调,它们由根据 ZeRO 的优化和 DeepSpeed 练习中灵敏的并行战略组合,来完结规划和速度。

而管道的第 3 步是在功用影响方面最杂乱的部分。

每个迭代都需求有效地处理两个阶段:a)推理阶段,用于 token / 经历的生成,发生练习的输入;b)练习阶段,更新 actor 和 reward 模型的权重,以及它们之间的互动和调度。

它引入了两个首要的困难:(1)内存本钱,由于在整个第三阶段需求运转多个 SFT 和 RW 模型;(2)生成答复阶段的速度较慢,假如没有正确加快,将显著拖慢整个第三阶段。

此外,研究者在第三阶段增加的两个重要功用——指数移动平均(EMA)搜集和混合练习,将发生额定的内存和练习本钱。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

为了应对这些应战,研究者将 DeepSpeed 练习和推理的全部体系才能组成了一个一致的基础设施,即混合引擎(Hybrid Engine)。

它运用原有的 DeepSpeed 引擎进行快速练习形式,一起毫不费力地应用 DeepSpeed 推理引擎进行生成 / 评价形式,为第三阶段的 RLHF 练习供给了一个更快的练习体系。

如下图所示,DeepSpeed 练习和推理引擎之间的过渡是无缝的:经过为 actor 模型启用典型的 eval 和 train 形式,在运转推理和练习流程时,DeepSpeed 挑选了不同的优化,以更快地运转模型,并进步整个体系的吞吐量。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

用于加快 RLHF 流程中最耗时部分的 DeepSpeed 混合引擎设计

在 RLHF 练习的经历生成阶段的推理履行过程中,DeepSpeed 混合引擎运用轻量级的内存管理体系,来处理 KV 缓存和中心成果,一起运用高度优化的推理 CUDA 核和张量并行计算,与现有计划比较,完结了吞吐量(每秒 token 数)的大幅提升。

在练习期间,混合引擎启用了内存优化技能,如 DeepSpeed 的 ZeRO 系列技能和低阶自适应(LoRA)。

而研究者设计和完结这些体系优化的方式是,让它们互相兼容,并可以组合在一起,在一致的混合引擎下供给最高的练习功率。

混合引擎可以在练习和推理中无缝地改动模型分区,以支撑根据张量并行的推理,和根据 ZeRO 的练习分片机制。

它还可以重新装备内存体系,以便在每一种形式中最大极限地进步内存可用性。

这就避免了内存分配瓶颈,可以支撑大的 batch size,让功用大大提升。

总之,混合引擎推动了现代 RLHF 练习的鸿沟,为 RLHF 工作负载供给了无与伦比的规划和体系功率。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

作用评价

与 Colossal-AI 或 HuggingFace-DDP 等现有体系比较,DeepSpeed-Chat 具有超越一个数量级的吞吐量,可以在相同的延迟预算下练习更大的艺人模型或以更低的本钱练习类似大小的模型。

例如,在单个 GPU 上,DeepSpeed 使 RLHF 练习的吞吐量进步了 10 倍以上。虽然 CAI-Coati 和 HF-DDP 都可以运转 1.3B 的模型,但 DeepSpeed 可以在相同的硬件上运转 6.5B 模型,直接高出 5 倍。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

在单个节点的多个 GPU 上,DeepSpeed-Chat 在体系吞吐量方面比 CAI-Coati 提速 6-19 倍,HF-DDP 提速 1.4-10.5 倍。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

团队表明,DeepSpeed-Chat 可以获得如此优异的成果,要害原因之一便是混合引擎在生成阶段供给的加快。

微软DeepSpeed Chat发布,一键RLHF训练千亿级大模型

参考资料:

github.com/microsoft/D…