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 PyTorchCreateTrainingJob
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'AllReduce
operazione 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
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
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. PyTorchTensorFlowml.p4d.24xlarge
.
from sagemaker.
framework
importFramework
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
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, aggiungilodistribution={"pytorchddp": {"enabled": True}}
al tuo PyTorch estimatore. Per ulteriori informazioni, consulta anche l'distribution
argomento di PyTorch Distributed Traininge 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
torchrun
launcherper 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 estimatore torchrun
.distribution={"torch_distributed": {"enabled": True}}
PyTorchNota
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'
distribution
argomento di Distributed PyTorch Traininge 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 stringa
ml.trn1.*
, all'argomento della classe di stima AI.instance_type
SageMaker PyTorch Per trovare i tipi di istanza Trn1 disponibili, consulta AWS Trn1 Architecturenella 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 XLAPer 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. TensorFlowSuggerimento
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.