blogDeepSpeed-Chat for llama/llama2
简介
DeepSpeed-Chat 是一个用于 RLHF 训练的通用系统框架,它能够轻松、快速、经济、可扩展地训练类似于 ChatGPT 的模型, GitHub。
已更新对 Llama/Llama-2 模型系列的系统支持。实现了并利用了各种优化和功能,包括混合引擎(Hybrid Engine)、ZeRO 优化系列(ZeRO family of optimizations)、低秩自适应(LoRA)支持,以及完全整合到三阶段的 DeepSpeed-Chat RLHF 流程中。通过利用混合引擎,将 Llama-2-7B 和 Llama-2-13B 模型的体验生成阶段加速了最多 7.1 倍。
内容
DeepSpeed-Chat 训练框架现在在训练的所有三个阶段都提供了对 Llama 和 Llama-2 模型的系统支持。Llama 模型架构与标准的 Transformer 模块不同,与 DeepSpeed 的推断内核和混合引擎所使用的 DeepSpeed 容器策略不兼容。作者在DeepSpeed-Chat 流程和 DeepSpeed 运行时中进行广泛的修改,包括支持 ZeRO 优化系列及其与混合引擎中优化推断内核的交互的代码,从而解决了这些挑战,以确保 DeepSpeed-Chat 可以支持 Llama 和 Llama-2,并为用户提供最佳体验。
关键支持的优化
以下是已经完全整合到 Llama 和 Llama-2 模型中的 DeepSpeed 的关键优化技术:
- DeepSpeed-Chat 整合:已完全整合到完整的、端到端的三阶段 DeepSpeed-Chat RLHF 训练框架中,基于 OpenAI InstructGPT 训练策略。
- 混合引擎:DeepSpeed 混合引擎允许在生成阶段实现卓越的加速,现在支持所有 Llama-1 模型变种、Llama-2-7B 和 Llama-2-13B 模型。
- ZeRO 和 ZeRO-Offload:完全支持 ZeRO 优化系列,包括利用系统的全部内存容量进行卸载支持,从而使训练更大模型成为可能。
- 混合精度 ZeRO++(MixZ++):通过新的 MixZ++ 功能,增强了对更大模型(如 Llama-2-70B)的支持,提高了效率,并在存在冻结或不可训练参数时减少了内存使用。
LoRA:完全支持 LoRA 功能,通过冻结原始权重并学习秩分解矩阵对,大幅减少了大型语言模型的存储需求。脚本地址
Step Number Scripts 1 Llama-2 Step 1 Scripts 2 Llama-2 Step 2 Scripts 3 Llama-2 Step 3 Scripts