翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
PyTorch Lightning トレーニングスクリプトで SMDDP ライブラリを使用する
PyTorch Lightningsmdistributed.dataparallel
ライブラリの PyTorch モジュールをインポートし、SageMaker トレーニングツールキットによって事前設定された SageMaker SageMaker AI 環境変数を受け入れるように PyTorch Lightning の環境変数を設定し、プロセスグループのバックエンドを に設定して SMDDP ライブラリをアクティブ化することが含まれます"smddp"
。詳細については、コード例を使って各ステップごとに説明します。
注記
PyTorch Lightning のサポートは、SageMaker AI データ並列ライブラリ v1.5.0 以降で利用できます。
-
pytorch_lightning
ライブラリとsmdistributed.dataparallel.torch
モジュールをインポートします。import lightning as pl import smdistributed.dataparallel.torch.torch_smddp
-
LightningEnvironment
をインスタンス化します。 from lightning.fabric.plugins.environments.lightning import LightningEnvironment env = LightningEnvironment() env.world_size = lambda: int(os.environ["WORLD_SIZE"]) env.global_rank = lambda: int(os.environ["RANK"])
-
PyTorch DDP の場合 – DDPStrategy
クラスのオブジェクトを作成し、 process_group_backend
には"smddp"
、accelerator
には"gpu"
を指定します。このオブジェクトを Trainerクラスに渡します。 import lightning as pl from lightning.pytorch.strategies import DDPStrategy ddp = DDPStrategy( cluster_environment=env, process_group_backend="smddp", accelerator="gpu" ) trainer = pl.Trainer( max_epochs=200, strategy=ddp, devices=num_gpus, num_nodes=num_nodes )
PyTorch FSDP の場合 – FSDPStrategy
クラスのオブジェクトを (選択したラッピングポリシー で) 作成し、 process_group_backend
には"smddp"
、accelerator
には"gpu"
を指定します。このオブジェクトを Trainerクラスに渡します。 import lightning as pl from lightning.pytorch.strategies import FSDPStrategy from functools import partial from torch.distributed.fsdp.wrap import size_based_auto_wrap_policy policy = partial( size_based_auto_wrap_policy, min_num_params=10000 ) fsdp = FSDPStrategy( auto_wrap_policy=policy, process_group_backend="smddp", cluster_environment=env ) trainer = pl.Trainer( max_epochs=200, strategy=fsdp, devices=num_gpus, num_nodes=num_nodes )
トレーニングスクリプトの調整が完了したら、SageMaker Python SDK を使用して SMDDP で分散トレーニングジョブを開始する に進みます。
注記
SageMaker AI PyTorch 推定器を構築し、 でトレーニングジョブリクエストを送信するときはSageMaker Python SDK を使用して SMDDP で分散トレーニングジョブを開始する、SageMaker AI PyTorch トレーニングコンテナlightning-bolts
に pytorch-lightning
と をインストールrequirements.txt
するために を指定する必要があります。
# requirements.txt pytorch-lightning lightning-bolts
トレーニングスクリプトとジョブ送信とともにrequirements.txt
ファイルを配置するソースディレクトリを指定する方法の詳細については、Amazon SageMaker AI Python SDK ドキュメントの「サードパーティーライブラリ