Accelerate documentation
コマンドライン
コマンドライン
以下は、🤗 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リポジトリで問題を報告する際は、常に使用してください。
使用方法:
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)— std ストリームをログファイルに書き出しながら、コンソールにも出力します。--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) — ワーカーの状態を監視する間隔(秒)。
TPU引数:
tpu が渡されるか、accelerate config 経由で TPU 学習が設定されている場合のみ、以下の引数が有用です:
--tpu_cluster(bool) — 学習に GCP TPU pod を使用するかどうか。--tpu_use_sudo(bool) — 各ポッドで TPU 学習スクリプトを実行する際にsudoを使用するかどうか。--vm(str) — 単一の Compute VM インスタンス名のリストです。指定されない場合、インスタンスグループの使用を前提とします。TPU ポッド用です。--env(str) — Compute VM インスタンスに設定する環境変数のリスト。TPU ポッド用。--main_training_function(str) — スクリプト内で実行されるメイン関数の名前(TPU での学習の場合のみ)。--downcast_bf16(bool) — TPUでbf16精度を使用する場合、floatおよびdoubleのテンソルをbfloat16にキャストするか、doubleテンソルをfloat32のままにするかを指定します。
DeepSpeed引数:
use_deepspeed が渡されるか、deepspeed が accelerate config 経由で設定されている場合のみ、以下の引数が有効です:
--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) —deepspeed.zero.Initを大規模モデルの構築に有効化するかを決定します (true|false)。DeepSpeed ZeRO Stage-3 のみで適用可能です。--zero3_save_16bit_model(str) — ZeRO Stage-3 を使用している場合、16 ビットのモデル重みを保存するかどうか(true|false)を決定します。DeepSpeed ZeRO Stage-3 のみで適用可能です。--deepspeed_hostfile(str) — マルチノードの計算リソースを設定するための DeepSpeed hostfile。--deepspeed_exclusion_filter(str) — マルチノード構成を使用する場合の DeepSpeed 除外フィルター文字列。--deepspeed_inclusion_filter(str) — マルチノード構成を使用する場合の DeepSpeed inclusion filter 文字列。--deepspeed_multinode_launcher(str) — 使用する DeepSpeed マルチノードランチャー。--deepspeed_moe_layer_cls_names(str) — ラッパーを適用する Transformer MoE レイヤーのクラス名のカンマ区切りリスト(大文字と小文字を区別する)。例:MixtralSparseMoeBlockQwen2MoeSparseMoeBlock、JetMoEAttention,JetMoEBlock
Fully Sharded Data Parallelism の引数:
use_fsdp が渡されるか、accelerate config によって Fully Sharded Data Parallelism が設定されている場合のみ、以下の引数が有効です:
--fsdp_offload_params(str) — パラメータと勾配を CPU にオフロードするかどうか(true|false)を決定します。--fsdp_min_num_params(int) — FSDPのDefault Auto Wrappingにおける最小パラメータ数。--fsdp_sharding_strategy(int) — FSDP の Sharding Strategy。--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 の state dict の型。--fsdp_forward_prefetch(str) — FSDP の forward prefetch。--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のTensor Parallelism (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(“) — Selective Activation Recomputation を有効にするかどうか(true|false)を決定します。--megatron_lm_use_distributed_optimizer(“) — Data Parallel (DP) rank 間でオプティマイザの状態と勾配をシャードする分散オプティマイザを使用するかどうか(true|false)を決定します。--megatron_lm_gradient_clipping(“) — Megatron-LMの、グローバルL2ノルムに基づく勾配クリッピングの値(無効にする場合は0)。
FP8 引数:
--fp8_backend(str) — FP8 での学習に使用するバックエンドを選択します(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} ...]) — モデルに使用する dtype です。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) — ポッドの起動時に実行するコマンドを含むファイルへのパスです。--command(str) — Podで実行するコマンド。複数回指定できます。--install_accelerate(bool) — Pod に accelerate をインストールするかどうか。デフォルトは False です。--accelerate_version(str) — Pod にインストールする accelerate のバージョンです。指定しない場合、最新の pypi バージョンが使用されます。GitHub からインストールするには ‘dev’ を指定してください。--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)— ヘルプメッセージを表示して終了します