Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utiliser la SMDDP bibliothèque dans votre script d'entraînement PyTorch Lightning
Si vous souhaitez intégrer votre script d'entraînement PyTorchLightningsmdistributed.dataparallel
bibliothèque, configuration des variables d'environnement pour que PyTorch Lightning accepte les variables d' SageMaker environnement prédéfinies par le kit de SageMaker formation, et activation de la SMDDP bibliothèque en configurant le backend du groupe de "smddp"
processus sur. Pour en savoir plus, suivez les instructions ci-dessous qui décomposent les étapes avec des exemples de code.
Note
Le support PyTorch Lightning est disponible dans la bibliothèque SageMaker Data Parallel v1.5.0 et versions ultérieures.
-
Importez la bibliothèque
pytorch_lightning
et les modulessmdistributed.dataparallel.torch
.import lightning as pl import smdistributed.dataparallel.torch.torch_smddp
-
Instanciez le. 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"])
-
Pour PyTorch DDP — Créez un objet de la DDPStrategy
classe avec "smddp"
forprocess_group_backend
et"gpu"
foraccelerator
, et transmettez-le à la classe 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 )
Pour PyTorch FSDP — Créez un objet de la FSDPStrategy
classe (avec une politique d'encapsulage de choix) avec "smddp"
pourprocess_group_backend
et"gpu"
pouraccelerator
, et transmettez-le à la classe 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 )
Une fois que vous avez terminé d'adapter votre scénario d'entraînement, passez à Lancement de tâches de formation distribuées à SMDDP l'aide de SageMaker Python SDK.
Note
Lorsque vous créez un SageMaker PyTorch estimateur et que vous soumettez une demande de formationLancement de tâches de formation distribuées à SMDDP l'aide de SageMaker Python SDK, vous devez fournir l'installation pytorch-lightning
et requirements.txt
l'inclure lightning-bolts
dans le conteneur de SageMaker PyTorch formation.
# requirements.txt pytorch-lightning lightning-bolts
Pour plus d'informations sur la spécification du répertoire source dans lequel placer le requirements.txt
fichier avec votre script d'entraînement et la soumission d'une tâche, consultez la section Utilisation de bibliothèques tierces