Accelerate documentation

命令行

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v1.15.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

命令行

以下是所有可用的 🤗 Accelerate 命令及其参数列表

accelerate config

命令:

accelerate config 或 accelerate-config

启动一系列提示,以创建并保存用于训练系统的default_config.yml配置文件。在您的机器上应始终首先运行此操作。

用法:

accelerate config [arguments]

可选参数:

  • --config_file CONFIG_FILE (str) — 用于存储配置文件的文件路径。默认使用缓存位置中名为 default_config.yaml 的文件,其内容为环境变量 HF_HOME 的值加上后缀 ‘accelerate’;如果未设置该环境变量,则使用缓存目录(~/.cache 或 XDG_CACHE_HOME 的值)加上后缀 huggingface。
  • -h、--help(bool)— 显示帮助信息并退出

accelerate config default

命令:

accelerate config default 或 accelerate-config default

使用少量标志为 Accelerate 创建一个默认配置文件。

用法:

accelerate config default [arguments]

可选参数:

  • --config_file CONFIG_FILE (str) — 用于存储配置文件的文件路径。默认使用缓存位置中名为 default_config.yaml 的文件,其内容为环境变量 HF_HOME 的值加上后缀 ‘accelerate’;如果未设置该环境变量,则使用缓存目录(~/.cache 或 XDG_CACHE_HOME 的值)加上后缀 huggingface。

  • -h、--help(bool)— 显示帮助信息并退出

  • --mixed_precision {no,fp16,bf16} (str) — 是否使用混合精度训练。在 FP16 和 BF16 (bfloat16) 训练之间进行选择。BF16 训练仅支持 Nvidia Ampere GPU 和 PyTorch 1.10 或更高版本。

accelerate config update

命令:

accelerate config update 或 accelerate-config update

在保留旧配置的同时,使用最新的默认值更新现有的配置文件。

用法:

accelerate config update [arguments]

可选参数:

  • --config_file CONFIG_FILE (str) — 要更新的配置文件的路径。默认使用缓存位置中名为 default_config.yaml 的文件,其内容为环境变量 HF_HOME 的值加上后缀 ‘accelerate’;如果没有该环境变量,则使用您的缓存目录(~/.cache 或 XDG_CACHE_HOME 的内容)加上后缀 huggingface。

  • -h、--help(bool)— 显示帮助信息并退出

accelerate env

命令:

accelerate env 或 accelerate-env 或 python -m accelerate.commands.env

列出传入的 🤗 Accelerate 配置文件的内容。在 GitHub 仓库上提交 issue 时,应始终使用此命令。

用法:

accelerate env [arguments]

可选参数:

  • --config_file CONFIG_FILE (str) — 用于存储配置文件的文件路径。默认使用缓存位置中名为 default_config.yaml 的文件,其内容为环境变量 HF_HOME 的值加上后缀 ‘accelerate’;如果未设置该环境变量,则使用缓存目录(~/.cache 或 XDG_CACHE_HOME 的值)加上后缀 huggingface。
  • -h、--help(bool)— 显示帮助信息并退出

accelerate launch

命令:

accelerate launch 或 accelerate-launch 或 python -m accelerate.commands.launch

在分布式系统上以正确的参数启动指定的脚本。

用法:

accelerate launch [arguments] {training_script} --{training_script-argument-1} --{training_script-argument-2} ...

位置参数:

  • {training_script} — 要并行启动的脚本的完整路径
  • --{training_script-argument-1} — 训练脚本的参数

可选参数:

  • -h、--help(bool)— 显示帮助信息并退出
  • --config_file CONFIG_FILE (str)— 用于启动脚本中默认值的配置文件。
  • -m,--module(bool)— 使每个进程将启动脚本解释为 Python 模块,并以与 ‘python -m’ 相同的行为执行。
  • --no_python (bool) — 跳过在训练脚本前添加 ‘python’,直接执行该脚本。当脚本不是 Python 脚本时,此选项非常有用。
  • --debug (bool) — 是否在发生错误时打印 torch.distributed 的堆栈跟踪。
  • -q、--quiet(bool)— 屏蔽启动堆栈跟踪中的子进程错误,仅显示相关的回溯信息。(仅适用于 DeepSpeed 和单进程配置。)

其余参数通过 accelerate config 进行配置,并从指定的 --config_file(或默认配置)中读取其值。也可以手动传入这些参数。

硬件选择参数:

  • --cpu (bool) — 是否强制在 CPU 上进行训练。
  • --multi_gpu (bool) — 是否启动分布式 GPU 训练。
  • --tpu (bool) — 是否启动 TPU 训练。

资源选择参数:

以下参数可用于微调可用硬件的使用方式

  • --mixed_precision {no,fp16,bf16,fp8} (str) — 是否使用混合精度训练。在 FP16 和 BF16 (bfloat16) 训练之间进行选择。BF16 训练仅支持 Nvidia Ampere GPU 和 PyTorch 1.10 或更高版本。
  • --num_processes NUM_PROCESSES (int) — 要并行启动的进程总数。
  • --num_machines NUM_MACHINES (int) — 本次训练使用的机器总数。
  • --num_cpu_threads_per_process NUM_CPU_THREADS_PER_PROCESS (int) — 每个进程的 CPU 线程数。可调整以获得最佳性能。
  • --enable_cpu_affinity (bool) — 是否启用 CPU 亲和性和负载均衡。目前仅支持 NVIDIA 硬件。

训练范式参数:

以下参数可用于选择要使用的训练范式。

  • --use_deepspeed (bool) — 是否使用 DeepSpeed 进行训练。
  • --use_fsdp (bool) — 是否使用 FullyShardedDataParallel 进行训练。
  • --use_megatron_lm (bool) — 是否使用 Megatron-LM 进行训练。

分布式 GPU 参数:

以下参数仅在传入 multi_gpu 或通过 accelerate config 配置多 GPU 训练时才有用:

  • --gpu_ids (str) — 以逗号分隔的列表形式指定在本机上用于训练的 GPU(按 id)
  • --same_network (bool) — 用于多节点训练的所有机器是否位于同一本地网络中。
  • --machine_rank (int) — 启动此脚本的机器的排名。
  • --main_process_ip (str) — rank 0 所在机器的 IP 地址。
  • --main_process_port (int) — 用于与 rank 0 所在机器通信的端口。
  • -t、--tee(str)— 将标准流同时写入日志文件和控制台。
  • --log_dir (str) — 使用 torchrun/torch.distributed.run 作为启动器时,用于日志文件的基础目录。与 —tee 配合使用,可将标准流信息重定向到日志文件中。
  • --role (str) — 用户为工作进程定义的角色。
  • --rdzv_backend (str) — 要使用的会合方法,例如 ‘static’(默认值)或 ‘c10d’
  • --rdzv_conf (str) — 额外的会合配置(<key1>=<value1>,<key2>=<value2>,…)。
  • --max_restarts (int) — 失败前工作进程组的最大重启次数。
  • --monitor_interval (int) — 监控 worker 状态的间隔,单位为秒。

TPU 参数:

以下参数仅在传入 tpu 或通过 accelerate config 配置 TPU 训练时才有用:

  • --tpu_cluster (bool) — 是否使用 GCP TPU pod 进行训练。
  • --tpu_use_sudo (bool) — 在每个 pod 中运行 TPU 训练脚本时是否使用 sudo。
  • --vm (str) — 单个 Compute VM 实例名称的列表。如果未提供,则假定使用实例组。适用于 TPU pods。
  • --env (str) — 要在 Compute VM 实例上设置的环境变量列表。适用于 TPU pods。
  • --main_training_function (str) — 要在脚本中执行的主函数名称(仅适用于 TPU 训练)。
  • --downcast_bf16 (bool) — 在 TPU 上使用 bf16 精度时,是否将 float 和 double 张量都转换为 bfloat16,还是让 double 张量保持为 float32。

DeepSpeed 参数:

以下参数仅在传递了 use_deepspeed 或通过 accelerate config 配置了 deepspeed 时才有用:

  • --deepspeed_config_file (str) — DeepSpeed 配置文件。
  • --zero_stage (int) — DeepSpeed 的 ZeRO 优化阶段。
  • --offload_optimizer_device (str) — 决定将优化器状态卸载到哪个位置(none|cpu|nvme)。
  • --offload_param_device (str) — 决定将参数卸载到何处(none|cpu|nvme)。
  • --offload_optimizer_nvme_path (str) — 决定用于卸载优化器状态的 Nvme 路径。
  • --gradient_accumulation_steps (int) — 训练脚本中使用的 gradient_accumulation_steps 数量。
  • --gradient_clipping (float) — 训练脚本中使用的梯度裁剪值。
  • --zero3_init_flag (str) — 决定是否(true|false)启用 deepspeed.zero.Init 以构建大规模模型。仅适用于 DeepSpeed ZeRO Stage-3。
  • --zero3_save_16bit_model (str) — 决定在使用 ZeRO Stage-3 时是否(true|false)保存 16 位模型权重。仅适用于 DeepSpeed ZeRO Stage-3。
  • --deepspeed_hostfile (str) — 用于配置多节点计算资源的 DeepSpeed hostfile。
  • --deepspeed_exclusion_filter (str) — 使用多节点配置时的 DeepSpeed 排除过滤器字符串。
  • --deepspeed_inclusion_filter (str) — 使用多节点配置时的 DeepSpeed 包含过滤器字符串。
  • --deepspeed_multinode_launcher (str) — 要使用的 DeepSpeed 多节点启动器。
  • --deepspeed_moe_layer_cls_names (str) — 需要包装的 transformer MoE 层类名的逗号分隔列表(区分大小写),例如 MixtralSparseMoeBlock Qwen2MoeSparseMoeBlock、JetMoEAttention,JetMoEBlock

完全分片数据并行参数:

以下参数仅在传递 use_fsdp 或通过 accelerate config 配置 Fully Sharded Data Parallelism 时才有用:

  • --fsdp_offload_params (str) — 决定是否(true|false)将参数和梯度卸载到 CPU。
  • --fsdp_min_num_params (int) — FSDP 用于 Default Auto Wrapping 的最小参数量。
  • --fsdp_sharding_strategy (int) — FSDP 的分片策略。
  • --fsdp_auto_wrap_policy (str) — FSDP 的自动包装策略。
  • --fsdp_transformer_layer_cls_to_wrap (str) — 要包装的 Transformer 层类名(区分大小写),例如 BertLayer、GPTJBlock、T5Block …
  • --fsdp_backward_prefetch_policy (str) — FSDP 的反向预取策略。
  • --fsdp_state_dict_type (str) — FSDP 的状态字典类型。
  • --fsdp_forward_prefetch (str) — FSDP 前向预取。
  • --fsdp_use_orig_params (str) — 如果为 True,则允许在 FSDP 单元中混合使用非均匀的 requires_grad。
  • --fsdp_cpu_ram_efficient_loading (str) — 如果为 true,则只有第一个进程加载预训练模型检查点,而其他所有进程的权重均为空。使用此选项时,--fsdp_sync_module_states 需要为 True。
  • --fsdp_sync_module_states (str) — 如果为 true,每个单独包装的 FSDP 单元将从 rank 0 广播模块参数。
  • --fsdp_activation_checkpointing (bool) — 决定在前向传播过程中是否释放中间激活值,并保留一个检查点作为占位符

Megatron-LM 参数:

以下参数仅在传递 use_megatron_lm 或通过 accelerate config 配置 Megatron-LM 时才有用:

  • --megatron_lm_tp_degree(“)— Megatron-LM 的张量并行(TP)度。
  • --megatron_lm_pp_degree(“)— Megatron-LM 的流水线并行(PP)度。
  • --megatron_lm_num_micro_batches(“)— 当 PP 度 > 1 时,Megatron-LM 的微批次数。
  • --megatron_lm_sequence_parallelism(“)— 决定当 TP 度 > 1 时是否启用 Sequence Parallelism(true|false)。
  • --megatron_lm_recompute_activations(“)— 决定是否(true|false)启用选择性激活重计算。
  • --megatron_lm_use_distributed_optimizer (“) — 决定是否(true|false)使用分布式优化器,该优化器会将优化器状态和梯度分片到各个数据并行(DP)rank 上。
  • --megatron_lm_gradient_clipping(“)— 基于全局 L2 范数的 Megatron-LM 梯度裁剪值(设为 0 以禁用)。

FP8 参数:

  • --fp8_backend (str) — 选择用于 FP8 训练的 backend(ao 或 te)
  • --fp8_use_autocast_during_eval (bool) — 是否在 eval 模式下使用 FP8 autocast(仅在传入 --fp8_backend=te 时有用)。通常不传入此参数时,指标表现更好。
  • --fp8_margin (int) — 用于梯度缩放的边距(仅在传入 --fp8_backend=te 时有效)。
  • --fp8_interval (int) — 用于指定重新计算缩放因子的间隔(仅在传入 --fp8_backend=te 时有效)。
  • --fp8_format (str) — 用于 FP8 配方的格式(仅在传入 --fp8_backend=te 时有效)。
  • --fp8_amax_history_len (int) — 用于计算缩放因子的历史长度(仅在传入 --fp8_backend=te 时有效)。
  • --fp8_amax_compute_algo (str) — 用于计算缩放因子的算法。(仅在传入 --fp8_backend=te 时有效)。
  • --fp8_override_linear_precision (Tuple[bool, bool, bool]) — 是否以更高精度执行 fprop、dgrad 和 wgrad GEMM。

AWS SageMaker 参数:

以下参数仅在 SageMaker 中训练时有用

  • --aws_access_key_id AWS_ACCESS_KEY_ID (str) — 用于启动 Amazon SageMaker 训练任务的 AWS_ACCESS_KEY_ID
  • --aws_secret_access_key AWS_SECRET_ACCESS_KEY (str) — 用于启动 Amazon SageMaker 训练任务的 AWS_SECRET_ACCESS_KEY

accelerate estimate-memory

命令:

accelerate estimate-memory 或 accelerate-estimate-memory 或 python -m accelerate.commands.estimate

估算托管在 Hub 上的特定模型加载所需的总 vRAM,并包含训练所需的估算值。需要安装 huggingface_hub。

在执行推理时,通常会在结果上增加不超过 20% 作为整体分配,如此处所述。未来我们将提供更全面的估算,并自动将其纳入计算中。

用法:

accelerate estimate-memory {MODEL_NAME} --library_name {LIBRARY_NAME} --dtypes {dtype_1} {dtype_2} ...

必需参数:

  • MODEL_NAME (str)— Hugging Face Hub 上的模型名称

可选参数:

  • --library_name {timm,transformers} (str) — 模型所集成的库,例如 transformers,仅当 Hub 上未存储此信息时才需要
  • --dtypes {float32,float16,int8,int4} ([{float32,float16,int8,int4} ...]) — 模型使用的 dtypes,必须是 float32、float16、int8 和 int4 中的一个(或多个)
  • --trust_remote_code (bool) — 是否允许使用在 Hub 上通过其自身的 modeling 文件定义的自定义模型。此选项仅应针对您信任且已阅读过代码的仓库使用,因为它会在您的本地机器上执行 Hub 上存在的代码。

accelerate tpu-config

accelerate tpu-config

用法:

accelerate tpu-config [arguments]

可选参数:

  • -h、--help(bool)— 显示帮助信息并退出

配置参数:

可通过 accelerate config 配置的参数。

  • --config_file (str) — 用于 accelerate 的配置文件路径。
  • --tpu_name (str) — 要使用的 TPU 的名称。如果未指定,将使用配置文件中指定的 TPU。
  • --tpu_zone (str) — 要使用的 TPU 所在的区域。如果未指定,则使用配置文件中指定的区域。

TPU 参数:

在 TPU 内部运行的选项参数。

  • --command_file (str) — 包含在 pod 启动时运行的命令的文件路径。
  • --command (str) — 要在 pod 上运行的命令。可以多次传入。
  • --install_accelerate (bool) — 是否在 pod 上安装 accelerate。默认为 False。
  • --accelerate_version (str) — 要在 pod 上安装的 accelerate 版本。如果未指定,将使用最新的 pypi 版本。指定 ‘dev’ 可从 GitHub 安装。
  • --debug (bool) — 如果设置,将打印将要执行的命令,而不是实际执行它。

accelerate test

accelerate test 或 accelerate-test

运行 accelerate/test_utils/test_script.py 以验证 🤗 Accelerate 是否已在您的系统上正确配置并可正常运行。

用法:

accelerate test [arguments]

可选参数:

  • --config_file CONFIG_FILE (str) — 用于存储配置文件的文件路径。默认使用缓存位置中名为 default_config.yaml 的文件,其内容为环境变量 HF_HOME 的值加上后缀 ‘accelerate’;如果未设置该环境变量,则使用缓存目录(~/.cache 或 XDG_CACHE_HOME 的值)加上后缀 huggingface。
  • -h、--help(bool)— 显示帮助信息并退出
Update on GitHub