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.
Utilisation de la bibliothèque SMDDP dans un script d’entraînement PyTorch Lightning
Si vous souhaitez apporter votre script d’entraînement PyTorch Lightningsmdistributed.dataparallel, configuration des variables d’environnement pour que PyTorch Lightning accepte les variables d’environnement SageMaker prédéfinies par la boîte à outils d’entraînement SageMaker, et activation de la bibliothèque SMDDP en définissant le système dorsal du groupe de processus sur "smddp". Pour en savoir plus, suivez les instructions ci-dessous qui décomposent les étapes avec des exemples de code.
Note
La prise en charge de PyTorch Lightning est disponible dans la bibliothèque SageMaker AI de parallélisme des données version v1.5.0 et ultérieure.
-
Importez la bibliothèque
pytorch_lightninget les modulessmdistributed.dataparallel.torch.import lightning as pl import smdistributed.dataparallel.torch.torch_smddp -
Instanciez l’environnement Lightning (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 classe DDPStrategy
avec "smddp"pourprocess_group_backendet"gpu"pouraccelerator, 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 classe FSDPStrategy
(avec la politique d’encapsulation de votre choix) avec "smddp"pourprocess_group_backendet"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 d’entraînement distribué avec SMDDP à l’aide du kit SageMaker Python SDK.
Note
Lorsque vous construisez un estimateur SageMaker PyTorch et soumettez une demande de tâche d’entraînement dans Lancement de tâches d’entraînement distribué avec SMDDP à l’aide du kit SageMaker Python SDK, vous devez fournir requirements.txt pour installer pytorch-lightning et lightning-bolts dans le conteneur d’entraînement SageMaker AI PyTorch.
# requirements.txt pytorch-lightning lightning-bolts
Pour plus d’informations sur la spécification du répertoire source où placer le fichier requirements.txt avec votre script d’entraînement et une soumission de tâche, consultez Utilisation des bibliothèques tierces