训练步骤
- 指令微调(SFT):使用精选的人类回答数据集来微调预训练的大语言模型以应对各种查询。
- 奖励模型训练(RW):使用一个包含人类对同一查询的多个答案打分的数据集训练一个奖励模型。
- 人类反馈强化学习(PPO):利用 PPO算法,根据 RW 模型的奖励反馈进一步微调 指令微调后的SFT 模型。
RLHF训练流程
我们的流程包括三个主要步骤:
- 步骤1:监督微调(SFT) —— 使用精选的人类回答来微调预训练的语言模型以应对各种查询;
- 步骤2:奖励模型微调 —— 使用一个包含人类对同一查询的多个答案打分的数据集来训练一个独立的(通常比 SFT 小的)奖励模型(RW);
- 步骤3:RLHF 训练 —— 利用 Proximal Policy Optimization(PPO)算法,根据 RW 模型的奖励反馈进一步微调 SFT 模型。
在步骤3中,我们提供了两个额外的功能,以帮助提高模型质量:
- 指数移动平均(EMA) —— 可以选择基于 EMA 的检查点进行最终评估
- 混合训练 —— 将预训练目标(即下一个单词预测)与 PPO 目标混合,以防止在像 SQuAD2.0 这样的公开基准测试中的性能损失
- 数据抽象和混合能力
DeepSpeed-Chat 三大核心功能
(i)简化 ChatGPT 类型模型的训练和强化推理体验:只需一个脚本即可实现多个训练步骤,包括使用 Huggingface 预训练的模型、使用 DeepSpeed-RLHF 系统运行 InstructGPT 训练的所有三个步骤、甚至生成你自己的类ChatGPT模型。此外,还提供了一个易于使用的推理API,用于用户在模型训练后测试对话式交互。
(ii)DeepSpeed-RLHF 模块:DeepSpeed-RLHF 复刻了 InstructGPT 论文中的训练模式,并确保包括a) 监督微调(SFT),b) 奖励模型微调和 c) 基于人类反馈的强化学习(RLHF)在内的三个步骤与其一一对应。此外,我们还提供了数据抽象和混合功能,以支持用户使用多个不同来源的数据源进行训练。
(iii)DeepSpeed-RLHF 系统:我们将 DeepSpeed 的训练(training engine)和推理能力(inference engine) 整合到一个统一的混合引擎(DeepSpeed Hybrid Engine or DeepSpeed-HE)中用于 RLHF 训练。DeepSpeed-HE 能够在 RLHF 中无缝地在推理和训练模式之间切换,使其能够利用来自 DeepSpeed-Inference 的各种优化,如张量并行计算和高性能CUDA算子进行语言生成,同时对训练部分还能从 ZeRO- 和 LoRA-based 内存优化策略中受益。DeepSpeed-HE 还能够自动在 RLHF 的不同阶段进行智能的内存管理和数据缓存。
优点
- DeepSpeed-HE比现有的系统快15倍,速度快,经济实惠
- 扩展性高:能够支持训练拥有千亿参数的模型,多节点多GPU扩展性强
- RLHF训练的普及化:轻松创建,一行命令,就可以实现RLHF训练
训练方便
不同模型大小和配置方便
RLHF API定义自己的RLHF训练流程