Accelerate 文档

DeepSpeed 实用工具

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

DeepSpeed 实用工具

DeepSpeedPlugin

get_active_deepspeed_plugin

accelerate.utils.get_active_deepspeed_plugin

< >

( state )

引发

ValueError

  • 如果未启用 DeepSpeed 且调用了此函数,则会引发 ValueError

返回当前活动的 DeepSpeedPlugin。

class accelerate.DeepSpeedPlugin

< >

( hf_ds_config: typing.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: typing.Optional[typing.Literal['O1', 'O2']] = 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 Stages 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) — 以逗号分隔的 Transformers MoE 层类名列表(区分大小写)。例如,`MixtralSparseMoeBlock`、`Qwen2MoeSparseMoeBlock`、`JetMoEAttention`、`JetMoEBlock` 等。
  • enable_msamp (bool, 默认为 None) — 指示是否为 FP8 训练启用 MS-AMP 后端的标志。
  • msasmp_opt_level (Optional[Literal["O1", "O2"]], 默认为 None) — MS-AMP 的优化级别(默认为 'O1')。仅当 `enable_msamp` 为 True 时适用。应为 ['O1' 或 'O2'] 之一。

此插件用于集成 DeepSpeed。

deepspeed_config_process

< >

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

使用来自 kwargs 的值处理 DeepSpeed 配置。

选择

< >

( _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, 可选) — 总步数。
  • warmup_num_steps (int, 可选) — 预热步数。
  • lr_scheduler_callable (callable, 可选) — 一个可调用函数,用于创建学习率调度器。它只接受一个参数 `optimizer`。
  • **kwargs (附加关键字参数, 可选) — 其他参数。

虚拟调度器提供了模型参数或参数组,主要用于在 deepspeed 配置文件中指定调度器配置时遵循常规的训练循环。

DeepSpeedEnginerWrapper

class accelerate.utils.DeepSpeedEngineWrapper

< >

( engine )

参数

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

deepspeed.runtime.engine.DeepSpeedEngine 的内部包装器。用于遵循常规的训练循环。

get_global_grad_norm

< >

( )

从 DeepSpeed 引擎获取全局梯度范数。

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 (一个或一个 `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 (附加关键字参数, 可选) — 其他参数。

虚拟优化器提供了模型参数或参数组,主要用于在 deepspeed 配置文件中指定优化器配置时遵循常规的训练循环。

DummyScheduler

< > 在 GitHub 上更新