Accelerate documentation
ランチャー
はじめに
チュートリアル
ハウツーガイド
Accelerate
学習
勾配の累積Local SGD低精度 (FP8) トレーニングDeepSpeedDeepSpeedで複数のモデルを使用するDDP通信フックFully Sharded Data ParallelMegatron-LMAmazon SageMakerApple M1 GPUIntel CPUIntel Gaudiコンパイル
推論
コンセプトと基礎
Accelerate の内部メカニズム大規模モデルをメモリに読み込む分散環境間のパフォーマンス比較ジョブの実行と遅延勾配の同期FSDPとDeepSpeedFSDP1とFSDP2コンテキスト並列性シーケンス並列性低精度トレーニング手法TPUでのトレーニング
リファレンス
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).
ランチャー
分散プロセスでトレーニングを開始するための関数。
notebook_launcher
accelerate.notebook_launcher
< source >( functionargs = ()num_processes = Nonemixed_precision = 'no'use_port = '29500'master_addr = '127.0.0.1'node_rank = 0num_nodes = 1rdzv_backend = 'static'rdzv_endpoint = ''rdzv_conf = Nonerdzv_id = 'none'max_restarts = 0monitor_interval = 0.1log_line_prefix_template = None )
パラメータ
- function (
Callable) — 実行する学習関数です。引数を受け取る場合は、最初の引数として実行されるプロセスのインデックスを渡す必要があります。 - args (
Tuple) — 関数に渡す引数のタプル(*argsとして受け取られます)。 - num_processes (
int, 任意) — 学習に使用するプロセス数です。TPU が利用可能な場合、Colab/Kaggle ではデフォルトで 8 になります。それ以外の場合は、利用可能なデバイスの数になります。 - mixed_precision (
str、任意、デフォルトは"no") —fp16またはbf16の場合、マルチデバイスでの混合精度トレーニングを使用します。 - use_port (
str、任意、デフォルトは"29500") — マルチデバイス学習を起動する際に、プロセス間の通信に使用するポートです。 - master_addr (
str、任意、デフォルトは"127.0.0.1") — プロセス間の通信に使用するアドレス。 - node_rank (
int、任意、デフォルトは 0) — 現在のノードのランクです。 - num_nodes (
int, 任意, デフォルトは 1) — 学習に使用するノードの数。 - rdzv_backend (
str、任意、デフォルトは"static") — 使用するレンデブー(合流)メソッドです。例えば、デフォルトの‘static’や‘c10d’などがあります。 - rdzv_endpoint (
str、省略可能、デフォルトは"") — rdzv sync. storage のエンドポイント。 - rdzv_conf (
Dict、任意、デフォルトはNone) — 追加のrendezvous設定。 - rdzv_id (
str、省略可能、デフォルトは"none") — ジョブの一意な実行 ID。 - max_restarts (
int、任意、デフォルトは 0) — elastic agent が失敗する前にワーカーに対して実行する再起動の最大回数。 - monitor_interval (
float、任意、デフォルトは 0.1) — elastic_agent がワーカーを監視する周期として使用する間隔(秒)。 - log_line_prefix_template (
str、省略可能、デフォルトはNone) — Elastic launch のログ用のプレフィックステンプレートです。PyTorch 2.2.0 以降で利用可能です。
現在の環境で可能であれば(例えば、複数のコアを持つTPUなど)、複数のプロセスまたは複数のノードを使用して、学習関数を起動します。
この関数を使用するには、呼び出し前にノートブックセッション内でデバイスへの呼び出しを一切行わない必要があります。すでに呼び出しが行われている場合は、ノートブックを再起動し、どのセルもデバイス機能を使用していないことを確認してください。
環境で
ACCELERATE_DEBUG_MODE="1"を設定すると、実際の起動前にテストが実行され、これらの呼び出しがなされていないことが確認されます。
debug_launcher
accelerate.debug_launcher
< source >( functionargs = ()num_processes = 2 )
デバッグ目的で、CPU上で複数のプロセスを使用してトレーニング関数を起動します。
この関数は内部のテストおよびデバッグ用に提供されていますが、実際のトレーニングには使用しないでください。CPUのみを使用します。