Accelerate 文档

DeepSpeed 工具

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

DeepSpeed 工具

DeepSpeedPlugin

get_active_deepspeed_plugin

accelerate.utils.get_active_deepspeed_plugin

< >

( state )

引发

ValueError

  • ValueError — 如果未启用 DeepSpeed 且调用此函数。

返回当前活动的 DeepSpeedPlugin。

class accelerate.DeepSpeedPlugin

< >

( hf_ds_config: Any = None gradient_accumulation_steps: int = None gradient_clipping: float = None zero_stage: int = None is_train_batch_min: bool = True offload_optimizer_device: str = None offload_param_device: str = None offload_optimizer_nvme_path: str = None offload_param_nvme_path: str = None zero3_init_flag: bool = None zero3_save_16bit_model: bool = None transformer_moe_cls_names: str = None enable_msamp: bool = None msamp_opt_level: Optional = None )

参数

  • hf_ds_config (Any, 默认为 None) — DeepSpeed 配置文件的路径、字典或 accelerate.utils.deepspeed.HfDeepSpeedConfig 类的对象。
  • gradient_accumulation_steps (int, 默认为 None) — 在更新优化器状态之前累积梯度的步数。如果未设置,将直接使用 Accelerator 中的值。
  • gradient_clipping (float, 默认为 None) — 启用梯度裁剪,并设置裁剪值。
  • zero_stage (int, 默认为 None) — 可选值为 0、1、2、3。默认值将从环境变量中获取。
  • is_train_batch_min (bool, 默认为 True) — 如果同时指定了训练和评估数据加载器,这将决定 train_batch_size
  • offload_optimizer_device (str, 默认为 None) — 可选值为 none|cpu|nvme。仅适用于 ZeRO Stage 2 和 3。
  • offload_param_device (str, 默认为 None) — 可选值为 none|cpu|nvme。仅适用于 ZeRO Stage 3。
  • offload_optimizer_nvme_path (str, 默认为 None) — 可选值为 /nvme|/local_nvme。仅适用于 ZeRO Stage 3。
  • offload_param_nvme_path (str, 默认为 None) — 可选值为 /nvme|/local_nvme。仅适用于 ZeRO Stage 3。
  • zero3_init_flag (bool, 默认为 None) — 指示是否保存 16 位模型的标志。仅适用于 ZeRO Stage-3。
  • zero3_save_16bit_model (bool, 默认为 None) — 指示是否保存 16 位模型的标志。仅适用于 ZeRO Stage-3。
  • transformer_moe_cls_names (str, 默认为 None) — 变形金刚 MoE 层类名称的逗号分隔列表(区分大小写)。例如,MixtralSparseMoeBlockQwen2MoeSparseMoeBlockJetMoEAttentionJetMoEBlock 等。
  • enable_msamp (bool, 默认为 None) — 指示是否为 FP8 训练启用 MS-AMP 后端的标志。
  • msasmp_opt_level (Optional[Literal["O1", "O2"]], defaults to None) — MS-AMP 的优化级别 (默认为 ‘O1’)。仅当 enable_msamp 为 True 时适用。应为 [‘O1’ 或 ‘O2’] 之一。

此插件用于集成 DeepSpeed。

deepspeed_config_process

< >

( prefix = '' mismatches = None config = None must_match = True **kwargs )

使用 kwargs 中的值处理 DeepSpeed 配置。

select

< >

( _from_accelerator_state: bool = False )

设置 HfDeepSpeedWeakref 以使用当前的 deepspeed 插件配置

class accelerate.utils.DummyScheduler

< >

( optimizer total_num_steps = None warmup_num_steps = 0 lr_scheduler_callable = None **kwargs )

参数

  • optimizer (torch.optim.optimizer.Optimizer) — 要包装的优化器。
  • total_num_steps (int, optional) — 总步数。
  • warmup_num_steps (int, optional) — 预热步数。
  • lr_scheduler_callable (callable, optional) — 用于创建 LR 调度器的可调用函数。它只接受一个参数 optimizer
  • **kwargs (附加关键字参数, 可选) — 其他参数。

Dummy 调度器呈现模型参数或参数组,这主要用于在 deepspeed 配置文件中指定调度器配置时遵循传统的训练循环。

DeepSpeedEnginerWrapper

class accelerate.utils.DeepSpeedEngineWrapper

< >

( engine )

参数

  • engine (deepspeed.runtime.engine.DeepSpeedEngine) — 要包装的 deepspeed 引擎

deepspeed.runtime.engine.DeepSpeedEngine 的内部包装器。这用于遵循传统的训练循环。

DeepSpeedOptimizerWrapper

class accelerate.utils.DeepSpeedOptimizerWrapper

< >

( optimizer )

参数

  • optimizer (torch.optim.optimizer.Optimizer) — 要包装的优化器。

deepspeed 优化器的内部包装器。

DeepSpeedSchedulerWrapper

class accelerate.utils.DeepSpeedSchedulerWrapper

< >

( scheduler optimizers )

参数

  • scheduler (torch.optim.lr_scheduler.LambdaLR) — 要包装的调度器。
  • optimizers (one or a list of torch.optim.Optimizer) —

deepspeed 调度器的内部包装器。

DummyOptim

class accelerate.utils.DummyOptim

< >

( params lr = 0.001 weight_decay = 0 **kwargs )

参数

  • lr (float) — 学习率。
  • params (iterable) — 要优化的参数的可迭代对象或定义参数组的字典
  • weight_decay (float) — 权重衰减。
  • **kwargs (附加关键字参数, 可选) — 其他参数。

Dummy 优化器呈现模型参数或参数组,这主要用于在 deepspeed 配置文件中指定优化器配置时遵循传统的训练循环。

DummyScheduler

< > Update on GitHub