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