Utilizzare la libreria SMDDP in uno script di addestramento PyTorch - Amazon SageMaker AI

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à.

Utilizzare la libreria SMDDP in uno script di addestramento PyTorch

A partire dalla libreria SageMaker AI Distributed Data Parallelism (SMDDP) v1.4.0, è possibile utilizzare la libreria come opzione di backend per il pacchetto distribuito PyTorch. Per utilizzare le operazioni collettive AllReduce e AllGather SMDDP, è sufficiente importare la libreria SMDDP all’inizio dello script di addestramento e impostare SMDDP come backend dei moduli distribuiti PyTorch durante l’inizializzazione del gruppo di processi. Con la singola riga di specifiche di backend, è possibile mantenere invariati tutti i moduli distribuiti PyTorch e l’intero script di addestramento. I seguenti frammenti di codice mostrano come utilizzare la libreria SMDDP come backend dei pacchetti di addestramento distribuito basati su PyTorch: PyTorch Distributed Data Parallelism (DDP), PyTorch Fully Sharded Data Parallelism (FSDP), DeepSpeed e Megatron-DeepSpeed.

Per PyTorch DDP o FSDP

Inizializza il gruppo di processi come segue.

import torch.distributed as dist import smdistributed.dataparallel.torch.torch_smddp dist.init_process_group(backend="smddp")
Nota

(Solo per processi PyTorch DDP) Il backend smddp attualmente non supporta la creazione di gruppi di sottoprocessi con l’API torch.distributed.new_group(). Non è possibile utilizzare il backend smddp contemporaneamente ad altri back-end di gruppi di processi come NCCL e Gloo.

Per DeepSpeed o Megatron-DeepSpeed

Inizializza il gruppo di processi come segue.

import deepspeed import smdistributed.dataparallel.torch.torch_smddp deepspeed.init_distributed(dist_backend="smddp")
Nota

Per utilizzare AllGather SMDDP con i programmi di avvio basati su mpirun (smdistributed e pytorchddp) in Avvio di job di addestramento distribuito con SMDDP mediante SageMaker Python SDK, è inoltre necessario impostare la seguente variabile di ambiente nello script di addestramento.

export SMDATAPARALLEL_OPTIMIZE_SDP=true

Per indicazioni generali sulla scrittura di uno script di addestramento PyTorch FSDP, consulta Advanced Model Training with Fully Sharded Data Parallel (FSDP) nella documentazione di PyTorch.

Per indicazioni generali sulla scrittura di uno script di addestramento PyTorch DDP, consulta Getting started with distributed data parallel nella documentazione di PyTorch.

Dopo aver completato l’adattamento dello script di addestramento, procedi con Avvio di job di addestramento distribuito con SMDDP mediante SageMaker Python SDK.