Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Usa la libreria SMDDP nel tuo PyTorch script di formazione Lightning
Se desideri utilizzare il tuo script di formazione smdistributed.dataparallel libreria, impostazione delle variabili di ambiente in modo che PyTorch Lightning accetti le variabili di ambiente SageMaker AI preimpostate dal toolkit di SageMaker formazione e attivazione della libreria SMDDP impostando il backend del gruppo di processi su. "smddp" Per ulteriori informazioni, segui le seguenti istruzioni che descrivono le fasi con esempi di codice.
Nota
Il supporto PyTorch Lightning è disponibile nella libreria parallela di dati SageMaker AI v1.5.0 e successive.
-
Importa la libreria
pytorch_lightninge i modulismdistributed.dataparallel.torch.import lightning as pl import smdistributed.dataparallel.torch.torch_smddp -
LightningEnvironment
Istanziare il. 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"]) -
Per PyTorch DDP: crea un oggetto della classe DDPStrategy con
"smddp"forprocess_group_backende"gpu"foracceleratore passalo allaclasse Trainer. https://pytorch-lightning.readthedocs.io/en/stable/common/trainer.html 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 )Per PyTorch FSDP: create un oggetto della classe
FSDPStrategy (con policy di wrapping a scelta) con "smddp"forprocess_group_backende for e"gpu"passatelo alla classe Trainer.acceleratorhttps://pytorch-lightning.readthedocs.io/en/stable/common/trainer.htmlimport 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 )
Dopo aver completato l’adattamento dello script di addestramento, procedi con Avvio di processi di formazione distribuiti con SMDDP utilizzando Python SDK SageMaker.
Nota
Quando costruisci un' SageMaker intelligenza artificiale PyTorch ModelTrainer e invii una richiesta di lavoro di formazione inAvvio di processi di formazione distribuiti con SMDDP utilizzando Python SDK SageMaker, devi provvedere requirements.txt all'installazione e all'interno del contenitore di formazione per l'intelligenza artificiale. pytorch-lightning lightning-bolts SageMaker PyTorch
# requirements.txt pytorch-lightning lightning-bolts
Per ulteriori informazioni su come specificare la directory di origine in cui inserire il requirements.txt file insieme allo script di formazione e all'invio del lavoro, consulta Utilizzo di librerie di terze parti