Accelerate 文件

命令列

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

命令列

下面是 🤗 Accelerate 中所有可用命令及其引數的列表

accelerate config

命令:

accelerate configaccelerate-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 defaultaccelerate-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 updateaccelerate-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 envaccelerate-envpython -m accelerate.commands.env

列出傳入的 🤗 Accelerate 配置檔案的內容。在 GitHub 倉庫上提問題時應始終使用此命令。

用法:

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 launchaccelerate-launchpython -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) — 是否應啟動英特爾 PyTorch 擴充套件(IPEX)訓練。**此引數已棄用,將在 Accelerate v1.10 中移除**

資源選擇引數:

以下引數對於微調如何使用可用硬體非常有用

  • --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.10 中移除**

分散式 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) — 使用者定義的 worker 角色。
  • --rdzv_backend (str) — 使用的 rendezvous 方法,如 ‘static’(預設)或 ‘c10d’
  • --rdzv_conf (str) — 附加的 rendezvous 配置(<key1>=<value1>,<key2>=<value2>,…)。
  • --max_restarts (int) — 在失敗前,worker 組的最大重啟次數。
  • --monitor_interval (int) — 監控 worker 狀態的間隔時間(秒)。

TPU 引數:

以下引數僅在傳遞 `tpu` 或透過 `accelerate config` 配置 TPU 訓練時有用

  • --tpu_cluster (bool) — 是否使用 GCP TPU pod 進行訓練。
  • --tpu_use_sudo (bool) — 在每個 pod 中執行 TPU 訓練指令碼時是否使用 `sudo`。
  • --vm (str) — 單個計算虛擬機器例項名稱的列表。如果未提供,我們假設使用例項組。適用於 TPU pod。
  • --env (str) — 在計算虛擬機器例項上設定的環境變數列表。適用於 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) — 決定在使用 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` 配置完全分片資料並行時有用

  • --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 單元將從排名為 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 (“) — 決定是否(true|false)在 TP 度 > 1 時啟用序列並行。
  • --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 自動轉換(僅在傳遞 `--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。
  • --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-memoryaccelerate-estimate-memorypython -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} ...]) — 用於模型的資料型別,必須是 `float32`、`float16`、`int8` 和 `int4` 中的一個(或多個)
  • --trust_remote_code (bool) — 是否允許 Hub 上自定義模型在其自己的建模檔案中定義。此選項僅應對您信任且已閱讀其程式碼的倉庫傳遞,因為它將在您的本地機器上執行 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 testaccelerate-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) — 顯示幫助資訊並退出
< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.