Utilizzate la libreria SMDDP nello script di addestramento PyTorch - Amazon SageMaker

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

Utilizzate la libreria SMDDP nello script di addestramento PyTorch

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

PyTorch Per 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 i lavori PyTorch DDP) Il smddp backend attualmente non supporta la creazione di gruppi di sottoprocessi con l'API. torch.distributed.new_group() Inoltre, non è possibile utilizzare il smddp backend contemporaneamente ad altri backend di gruppi di processi come e. NCCL 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 SMDDP AllGather con i launcher mpirun basati (smdistributedandpytorchddp) inPassaggio 2: Avvia un processo di formazione distribuito utilizzando 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 formazione PyTorch FSDP, consultate Advanced Model Training with Fully Sharded Data Parallel (FSDP) nella documentazione. PyTorch

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

Dopo aver completato l'adattamento dello script di addestramento, procedi con Passaggio 2: Avvia un processo di formazione distribuito utilizzando SageMaker Python SDK.