加速文档
命令行
并获得增强的文档体验
开始使用
命令行
以下是 🤗 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 训练。--ipex
(bool
) — 这是否应启动 Intel Pytorch Extension (IPEX) 训练。
资源选择参数:
以下参数对于微调应如何使用可用硬件很有用
--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 进行训练。--use_xpu
(bool
) — 是否使用 IPEX 插件来加速在 XPU 上的训练。此参数已弃用并被忽略,将在 Accelerate v1.20 中移除
分布式 GPU 参数:
以下参数仅在传递 multi_gpu
或通过 accelerate config
配置多 GPU 训练时有用
--gpu_ids
(str
) — 应在此机器上用于训练的 GPU (按 ID),以逗号分隔的列表形式--same_network
(bool
) — 用于多节点训练的所有机器是否位于同一本地网络上。--machine_rank
(int
) — 启动此脚本的机器的排名。--main_process_ip
(str
) — 排名为 0 的机器的 IP 地址。--main_process_port
(int
) — 用于与排名为 0 的机器通信的端口。-t
,--tee
(str
) — 将标准流输出到日志文件和控制台。--log_dir
(str
) — 当使用 torchrun/torch.distributed.run 作为启动器时,用于日志文件的基本目录。与 —tee 一起使用以将标准流重定向到日志文件。--role
(str
) — 用户定义的工作进程角色。--rdzv_backend
(str
) — 要使用的 rendezvous 方法,例如 ‘static’ (默认) 或 ‘c10d’--rdzv_conf
(str
) — 其他 rendezvous 配置 (<key1>=<value1>,<key2>=<value2>,…)。--max_restarts
(int
) — 工作进程组在失败之前重新启动的最大次数。--monitor_interval
(int
) — 监控工作进程状态的间隔,以秒为单位。
TPU 参数:
以下参数仅在传递 tpu
或通过 accelerate config
配置 TPU 训练时有用
--tpu_cluster
(bool
) — 是否使用 GCP TPU Pod 进行训练。--tpu_use_sudo
(bool
) — 在每个 Pod 中运行 TPU 训练脚本时是否使用sudo
。--vm
(str
) — 单个 Compute VM 实例名称列表。如果未提供,我们假设使用实例组。对于 TPU Pod。--env
(str
) — 要在 Compute VM 实例上设置的环境变量列表。对于 TPU Pod。--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
) — 决定是否 (true|false) 在使用 ZeRO Stage-3 时保存 16 位模型权重。仅适用于 DeepSpeed ZeRO Stage-3。--deepspeed_hostfile
(str
) — DeepSpeed 主机文件,用于配置多节点计算资源。--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
完全分片数据并行 (FSDP) 参数:
以下参数仅在传递 use_fsdp
或通过 accelerate config
配置完全分片数据并行 (FSDP) 时有用
--fsdp_offload_params
(str
) — 决定是否 (true|false) 将参数和梯度卸载到 CPU。--fsdp_min_num_params
(int
) — FSDP 默认自动包装的最小参数数量。--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 时是否 (true|false) 启用序列并行。--megatron_lm_recompute_activations
(“) — 决定是否 (true|false) 启用选择性激活重计算。--megatron_lm_use_distributed_optimizer
(“) — 决定是否 (true|false) 使用分布式优化器,该优化器在数据并行 (DP) 级别之间分片优化器状态和梯度。--megatron_lm_gradient_clipping
(“) — Megatron-LM 基于全局 L2 范数的梯度裁剪值 (0 禁用)。
FP8 参数:
--fp8_backend
(str
) — 选择使用 FP8 训练的后端 (te
或msamp
)--fp8_use_autocast_during_eval
(bool
) — 是否在评估模式期间使用 FP8 autocast (仅当传递--fp8_backend=te
时有用)。通常,不传递此参数时可以找到更好的指标。--fp8_margin
(int
) — 用于梯度缩放的边距 (仅当传递--fp8_backend=te
时有用)。--fp8_interval
(int
) — 用于重新计算缩放因子的频率的间隔 (仅当传递--fp8_backend=te
时有用)。--fp8_format
(str
) — 用于 FP8 recipe 的格式 (仅当传递--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。--fp8_opt_level
(str
) — 与 MS-AMP 一起使用时应使用哪种级别的 8 位集体通信 (仅当传递--fp8_backend=msamp
时有用)
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
或 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 上自定义模型在其自己的建模文件中定义。 此选项仅应针对您信任的存储库传递,并在您已阅读代码的情况下使用,因为它将在您的本地机器上执行 Hub 上存在的代码。
加速 TPU 配置
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_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
) — 显示帮助消息并退出