Transformers 文档
DeepSpeed
加入 Hugging Face 社区
并获取增强的文档体验
开始使用
DeepSpeed
DeepSpeed,由零冗余优化器 (ZeRO) 提供支持,是一个优化库,用于将非常大的模型训练和拟合到 GPU 上。它在多个 ZeRO 阶段可用,每个阶段通过划分优化器状态、梯度、参数并启用卸载到 CPU 或 NVMe 来逐步节省更多 GPU 内存。 DeepSpeed 与 Trainer 类集成,并且大多数设置都会自动为您处理。
但是,如果您想在没有 Trainer 的情况下使用 DeepSpeed,Transformers 提供了 HfDeepSpeedConfig
类。
HfDeepSpeedConfig
class transformers.integrations.HfDeepSpeedConfig
< source >( config_file_or_dict )
此对象包含 DeepSpeed 配置字典,并且可以快速查询零阶段等信息。
此对象的 weakref
存储在模块的全局变量中,以便能够从 Trainer 对象不可用的区域(例如 from_pretrained
和 _get_resized_embeddings
)访问配置。 因此,重要的是此对象在程序仍在运行时保持活动状态。
Trainer 使用 HfTrainerDeepSpeedConfig
子类代替。 该子类具有将配置与 TrainingArguments 的值同步的逻辑,方法是替换特殊的占位符值:"auto"
。 如果没有这种特殊逻辑,DeepSpeed 配置将不会以任何方式修改。