As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Use a SMDDP biblioteca em seu script de treinamento do PyTorch Lightning
Se quiser trazer seu script de treinamento do PyTorchLightningsmdistributed.dataparallel
biblioteca, configurar as variáveis de ambiente para que o PyTorch Lightning aceite as variáveis de SageMaker ambiente predefinidas pelo kit de ferramentas de SageMaker treinamento e ative a SMDDP biblioteca configurando o back-end do grupo de processos como. "smddp"
Para saber mais, siga as instruções a seguir que detalham as etapas com exemplos de código.
nota
O suporte ao PyTorch Lightning está disponível na biblioteca paralela de SageMaker dados v1.5.0 e versões posteriores.
-
Importe a biblioteca
pytorch_lightning
e os módulossmdistributed.dataparallel.torch
.import lightning as pl import smdistributed.dataparallel.torch.torch_smddp
-
Instancie o. 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"])
-
Para PyTorch DDP — Crie um objeto da DDPStrategy
classe com "smddp"
forprocess_group_backend
e"gpu"
for e passe isso paraaccelerator
a 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 )
Para PyTorch FSDP — Crie um objeto da FSDPStrategy
classe (com a política de empacotamento de sua escolha) com "smddp"
forprocess_group_backend
e"gpu"
for e passe isso paraaccelerator
a 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 )
Depois de concluir a adaptação do seu roteiro de treinamento, prossiga para Lançamento de trabalhos de treinamento distribuídos com o SMDDP uso do SageMaker Python SDK.
nota
Ao criar um SageMaker PyTorch estimador e enviar uma solicitação de trabalho de treinamentoLançamento de trabalhos de treinamento distribuídos com o SMDDP uso do SageMaker Python SDK, você precisa fornecer requirements.txt
para instalação pytorch-lightning
e lightning-bolts
no contêiner de SageMaker PyTorch treinamento.
# requirements.txt pytorch-lightning lightning-bolts
Para obter mais informações sobre como especificar o diretório de origem para colocar o requirements.txt
arquivo junto com seu script de treinamento e o envio de um trabalho, consulte Uso de bibliotecas de terceiros