081DeepSpeed
DeepSpeed¶
DeepSpeed 是一个 PyTorch 优化库,它可以让你在分布式环境中高效地训练大型模型。DeepSpeed 的核心功能是 ZeRO Redundancy Optimizer (ZeRO),它能够实现在大规模上训练大型模型。ZeRO 分为几个阶段:
- ZeRO-1:将优化器状态分布在多个 GPU 上
- ZeRO-2:将梯度分布在多个 GPU 上
- ZeRO-3:将参数分布在多个 GPU 上
在 GPU 资源有限的环境下,ZeRO 还可以将优化器的内存和计算从 GPU 卸载到 CPU,以便在单个 GPU 上训练非常大的模型。DeepSpeed 已经与 Transformers 的 Trainer 类集成,支持所有 ZeRO 阶段和卸载功能。你只需要提供一个配置文件,或者使用提供的模板。对于推理,Transformers 支持 ZeRO-3 和卸载,因为这允许加载巨大的模型。
本指南将引导你如何部署 DeepSpeed 训练,介绍你可以启用的功能,如何为不同的 ZeRO 阶段和卸载设置配置文件,以及如何在不使用 Trainer 的情况下使用 DeepSpeed。
安装¶
DeepSpeed 可以通过 PyPI 或 Transformers 安装。更多详细的安装选项,请参阅 DeepSpeed 的 安装详情 或 GitHub 的 README。
如果你在安装 DeepSpeed 时遇到困难,可以查看 DeepSpeed CUDA 安装 指南。尽管 DeepSpeed 有一个可通过 pip 安装的 PyPI 包,但强烈建议 从源码安装,以更好地匹配你的硬件并支持某些特性(如 1-bit Adam),这些特性在 PyPI 分发中不可用。