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 biblioteca SMDDP em seu script de treinamento do PyTorch Lightning
Se você 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 ambiente de SageMaker IA predefinidas pelo kit de ferramentas de SageMaker treinamento e ative a biblioteca SMDDP 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 dados SageMaker AI v1.5.0 e versões posteriores.
-
Importe a biblioteca
pytorch_lightninge 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_backende for eacceleratorpasse-o"gpu"para 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 escolha) com "smddp"forprocess_group_backende for e passe isso"gpu"paraacceleratora 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 script de treinamento, prossiga para Lançamento de trabalhos de treinamento distribuídos com SMDDP usando o Python SDK SageMaker .
nota
Ao criar um PyTorch estimador de SageMaker IA e enviar uma solicitação de trabalho de treinamentoLançamento de trabalhos de treinamento distribuídos com SMDDP usando o Python SDK SageMaker , você precisa fornecer requirements.txt para instalar pytorch-lightning e lightning-bolts no contêiner de PyTorch treinamento de SageMaker IA.
# 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