Inizia con la formazione distribuita in Amazon SageMaker AI - 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à.

Inizia con la formazione distribuita in Amazon SageMaker AI

La pagina seguente fornisce informazioni sui passaggi necessari per iniziare con la formazione distribuita in Amazon SageMaker AI. Se conosci già l'addestramento distribuito, per iniziare scegli una delle seguenti opzioni corrispondente alla tua strategia o al tuo framework preferito. Se vuoi saperne di più sull'addestramento distribuito in generale, consulta Concetti di formazione distribuiti.

Le librerie di formazione distribuite basate sull' SageMaker intelligenza artificiale sono ottimizzate per l'ambiente di SageMaker formazione, aiutano ad adattare i lavori di formazione distribuiti all' SageMaker intelligenza artificiale e migliorano la velocità e la produttività della formazione. Le librerie offrono strategie di addestramento con parallelismo dei dati e parallelismo dei modelli. Combinano tecnologie software e hardware per migliorare le comunicazioni tra GPU e tra i nodi ed estendono le capacità di formazione dell' SageMaker IA con opzioni integrate che richiedono modifiche minime al codice degli script di formazione. 

Prima di iniziare

SageMaker La formazione supporta la formazione distribuita su una singola istanza e su più istanze, in modo da poter eseguire corsi di formazione di qualsiasi dimensione su larga scala. Ti consigliamo di utilizzare le classi di stima del framework come PyTorche TensorFlowin SageMaker SDK Python, che sono i lanciatori di lavori di formazione con varie opzioni di formazione distribuite. Quando crei un oggetto estimatore, l'oggetto configura un'infrastruttura di formazione distribuita, la esegue CreateTrainingJob API nel backend, trova la regione in cui è in esecuzione la sessione corrente e richiama uno dei contenitori di AWS deep learning predefiniti preconfezionati con una serie di librerie tra cui framework di deep learning, framework di formazione distribuiti e il EFAdriver. Se desideri montare un FSx file system sulle istanze di addestramento, devi passare l'ID della VPC sottorete e del gruppo di sicurezza allo estimatore. Prima di eseguire il tuo processo di formazione distribuito in SageMaker AI, leggi le seguenti linee guida generali sulla configurazione di base dell'infrastruttura.

Zone di disponibilità e backplane di rete

Quando si utilizzano più istanze (chiamate anche nodi), è importante comprendere la rete che collega le istanze, come queste leggono i dati di addestramento e come condividono le informazioni tra di loro. Ad esempio, quando esegui un processo di formazione distribuito in parallelo ai dati, diversi fattori, come la comunicazione tra i nodi di un cluster di calcolo per l'esecuzione dell'AllReduceoperazione e il trasferimento dei dati tra i nodi e l'archiviazione dei dati in Amazon Simple Storage Service o Amazon FSx for Lustre, svolgono un ruolo cruciale per ottenere un uso ottimale delle risorse di elaborazione e una maggiore velocità di formazione. Per ridurre il sovraccarico di comunicazione, assicurati di configurare le istanze, la VPC sottorete e l'archiviazione dei dati nella stessa Regione AWS zona di disponibilità.

GPUistanze con rete più veloce e storage ad alto throughput

Dal punto di vista tecnico, è possibile utilizzare qualsiasi istanza per l'addestramento distribuito. Nei casi in cui è necessario eseguire attività di formazione distribuite su più nodi per addestrare modelli di grandi dimensioni, come modelli di linguaggio di grandi dimensioni (LLMs) e modelli di diffusione, che richiedono una commutazione tra nodi più rapida, consigliamo le istanze abilitate e supportate dall'intelligenza artificiale. EFA GPU SageMaker In particolare, per ottenere il processo di formazione distribuito più performante nell'ambito dell' SageMaker intelligenza artificiale, consigliamo le istanze P4d e P4de dotate di A100. NVIDIA GPUs Queste sono inoltre dotate di archiviazione di istanze locale ad alto throughput e bassa latenza e di una rete intra-nodo più veloce. Per l'archiviazione dei dati, consigliamo Amazon FSx for Lustre, che offre un throughput elevato per l'archiviazione di set di dati di addestramento e checkpoint dei modelli.

Usa la libreria SageMaker AI distributed data parallelism () SMDDP

La SMDDP libreria migliora la comunicazione tra i nodi con implementazioni AllReduce e operazioni di comunicazione AllGather collettiva ottimizzate per l'infrastruttura di AWS rete e la topologia delle istanze Amazon SageMaker AI ML. È possibile utilizzare la SMDDPlibreria come backend di pacchetti di formazione distribuiti PyTorch basati su dati PyTorch distribuiti: distributed data parallel (DDP), PyTorch Fully Sharded Data Parallelism (FSDP) e Megatron DeepSpeed-. DeepSpeed Il seguente esempio di codice mostra come impostare uno PyTorch stimatore per l'avvio di un processo di formazione distribuito su due istanze. ml.p4d.24xlarge

from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=2, instance_type="ml.p4d.24xlarge", # Activate distributed training with SMDDP distribution={ "pytorchddp": { "enabled": True } } # mpirun, activates SMDDP AllReduce OR AllGather # distribution={ "torch_distributed": { "enabled": True } } # torchrun, activates SMDDP AllGather # distribution={ "smdistributed": { "dataparallel": { "enabled": True } } } # mpirun, activates SMDDP AllReduce OR AllGather )

Per informazioni su come preparare lo script di formazione e avviare un processo di formazione distribuito in parallelo con i dati sull' SageMaker intelligenza artificiale, consulta. Esegui corsi di formazione distribuiti con la libreria di parallelismo dei dati distribuiti basata sull' SageMaker intelligenza artificiale

Usa la libreria di parallelismo dei modelli SageMaker AI () SMP

SageMaker L'intelligenza artificiale fornisce la SMP libreria e supporta varie tecniche di formazione distribuite, come il parallelismo dei dati condivisi, il pipelining, il parallelismo tensoriale, lo sharding dello stato dell'ottimizzatore e altro ancora. Per saperne di più su ciò che offre la biblioteca, consulta. SMP Caratteristiche principali della SageMaker Model Parallelism Library

Per utilizzare la libreria di parallelismo dei modelli di SageMaker AI, configura il distribution parametro degli stimatori del framework SageMaker AI. Gli stimatori di framework supportati sono e. PyTorchTensorFlow L'esempio di codice seguente mostra come costruire uno strumento di valutazione del framework per l'addestramento distribuito con la libreria di parallelismo dei modelli su due istanze ml.p4d.24xlarge.

from sagemaker.framework import Framework distribution={ "smdistributed": { "modelparallel": { "enabled":True, "parameters": { ... # enter parameter key-value pairs here } }, }, "mpi": { "enabled" : True, ... # enter parameter key-value pairs here } } estimator = Framework( ..., instance_count=2, instance_type="ml.p4d.24xlarge", distribution=distribution )

Per sapere come adattare lo script di formazione, configurare i parametri di distribuzione nella estimator classe e avviare un processo di formazione distribuito, consulta la libreria di parallelismo dei modelli di SageMaker AI (vedi anche Distributed Training APIs nella documentazione di SageMaker SDKPython).

Utilizzo di framework di addestramento distribuito open source

SageMaker L'intelligenza artificiale supporta anche le seguenti opzioni operative mpirun e torchrun nel backend.

  • Per usare PyTorch DistributedDataParallel (DDP) nell' SageMaker intelligenza artificiale con il mpirun backend, aggiungilo distribution={"pytorchddp": {"enabled": True}} al tuo PyTorch estimatore. Per ulteriori informazioni, consulta anche l'distributionargomento di PyTorch Distributed Training e SageMaker AI PyTorch Estimator nella documentazione di SageMaker SDKPython.

    Nota

    Questa opzione è disponibile per PyTorch 1.12.0 e versioni successive.

    from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=2, instance_type="ml.p4d.24xlarge", distribution={"pytorchddp": {"enabled": True}} # runs mpirun in the backend )
  • SageMaker L'intelligenza artificiale supporta il PyTorch torchrunlauncher per la formazione distribuita su EC2 istanze Amazon GPU basate, come P3 e P4, oltre a Trn1 alimentato dal dispositivo Trainium.AWS

    Per utilizzare PyTorch DistributedDataParallel (DDP) nell' SageMaker intelligenza artificiale con il backend, aggiungilo allo estimatoretorchrun. distribution={"torch_distributed": {"enabled": True}} PyTorch

    Nota

    Questa opzione è disponibile per PyTorch 1.13.0 e versioni successive.

    Il seguente frammento di codice mostra un esempio di creazione di uno PyTorch stimatore SageMaker AI per eseguire l'addestramento distribuito su due ml.p4d.24xlarge istanze con l'opzione di distribuzione. torch_distributed

    from sagemaker.pytorch import PyTorch estimator = PyTorch( ..., instance_count=2, instance_type="ml.p4d.24xlarge", distribution={"torch_distributed": {"enabled": True}} # runs torchrun in the backend )

    Per ulteriori informazioni, consulta l'distributionargomento di Distributed PyTorch Training e SageMaker AI PyTorch Estimator nella documentazione di SageMaker SDKPython.

    Note per l'addestramento distribuito su Trn1

    Un'istanza Trn1 è composta da un massimo di 16 dispositivi Trainium e ogni dispositivo Trainium è composto da due. NeuronCores Per le specifiche dei dispositivi Trainium, consulta AWS Trainium Architecture nella documentazione di Neuron.AWS

    Per eseguire l'addestramento sulle istanze basate su Trainium, è sufficiente specificare il codice dell'istanza Trn1, in stringaml.trn1.*, all'argomento della classe di stima AI. instance_type SageMaker PyTorch Per trovare i tipi di istanza Trn1 disponibili, consulta AWS Trn1 Architecture nella documentazione di AWS Neuron.

    Nota

    SageMaker La formazione sulle istanze Amazon EC2 Trn1 è attualmente disponibile solo per il PyTorch framework nei AWS Deep Learning Containers for PyTorch Neuron a partire dalla versione 1.11.0. Per trovare un elenco completo delle versioni supportate di PyTorch Neuron, consulta Neuron Containers nel repository AWS Deep Learning Containers GitHub .

    Quando avvii un processo di formazione su istanze Trn1 utilizzando SageMaker PythonSDK, l' SageMaker IA preleva ed esegue automaticamente il contenitore giusto da Neuron Containers fornito da Deep Learning Containers. AWS I Neuron Containers sono preconfezionati con impostazioni e dipendenze dell'ambiente di formazione per adattare più facilmente il tuo lavoro di formazione alla SageMaker piattaforma di formazione e alle istanze Amazon Trn1. EC2

    Nota

    Per eseguire il processo di PyTorch formazione su istanze Trn1 con SageMaker AI, è necessario modificare lo script di formazione per inizializzare i gruppi di processi con il backend e utilizzare/. xla PyTorch XLA Per supportare il processo di XLA adozione, AWS Neuron SDK fornisce PyTorch Neuron che utilizza XLA per effettuare la conversione delle operazioni in istruzioni Trainium. PyTorch Per informazioni su come modificare lo script di allenamento, consulta la Guida per gli sviluppatori per l'allenamento con PyTorch Neuron (torch-neuronx) nella documentazione di Neuron.AWS

    Per ulteriori informazioni, consulta Distributed Training with PyTorch Neuron sulle istanze Trn1 e l'argomento di SageMaker AI PyTorch Estimator distribution nella documentazione di Python. SageMaker SDK

  • Per utilizzarlo MPI nell' SageMaker intelligenza artificiale, aggiungilo al tuo estimatore. distribution={"mpi": {"enabled": True}} L'opzione di MPI distribuzione è disponibile per i seguenti framework:MXNet, PyTorch e. TensorFlow

  • Per utilizzare un server di parametri in SageMaker AI, aggiungilo distribution={"parameter_server": {"enabled": True}} al tuo estimatore. L'opzione del server dei parametri è disponibile per i seguenti framework:MXNet,, PyTorch e. TensorFlow

    Suggerimento

    Per ulteriori informazioni sull'utilizzo delle opzioni MPI e dei parametri del server per framework, utilizzare i seguenti collegamenti alla documentazione di SageMaker Python SDK.