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 AI SageMaker
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 addestramento distribuito.
Le librerie di formazione distribuite con SageMaker intelligenza artificiale sono ottimizzate per l'ambiente di SageMaker formazione, aiutano ad adattare i lavori di formazione distribuiti all' SageMaker IA e a migliorare la velocità e il rendimento 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 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 la ModelTrainer classe con PyTorch CreateTrainingJobAPI 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 driver EFA. Se desideri montare un file system FSx nelle istanze di training, devi passare la tua sottorete VPC e l'ID del gruppo di sicurezza al ModelTrainer.
Prima di eseguire il tuo lavoro di formazione distribuito in SageMaker intelligenza artificiale, leggi le seguenti linee guida generali sulla configurazione di base dell'infrastruttura.
Zone di disponibilità e backplane di rete
Quando utilizzi più istanze (chiamate anche nodi), è importante comprendere la rete che le collega, come leggono i dati di addestramento e come condividono le informazioni tra di loro. Ad esempio, quando esegui un processo di addestramento distribuito di parallelismo dei dati, diversi fattori, come la comunicazione tra i nodi di un cluster di calcolo per l'esecuzione dell'operazione AllReduce e il trasferimento dei dati tra i nodi e l’archiviazione di dati in Amazon Simple Storage Service o Amazon FSx per Lustre, svolgono un ruolo cruciale per ottenere un uso ottimale delle risorse di elaborazione e una maggiore velocità di addestramento. Per ridurre il sovraccarico delle comunicazioni, assicurati di configurare le istanze, la sottorete VPC e l'archiviazione dei dati nella stessa Regione AWS zona di disponibilità.
Istanze GPU con rete più veloce e archiviazione ad alto throughput
Dal punto di vista tecnico, è possibile utilizzare qualsiasi istanza per l'addestramento distribuito. Per i casi in cui è necessario eseguire processi di formazione distribuiti su più nodi per l'addestramento di modelli di grandi dimensioni, come i Large Language Model (LLM) e i modelli di diffusione, che richiedono una commutazione tra nodi più rapida, consigliamo le istanze GPU supportate dall'IA. EFA-enabled SageMaker
Usa la libreria AI Distributed Data Parallelism (SMDDP) SageMaker
La libreria SMDDP migliora la comunicazione tra i nodi con implementazioni e operazioni di comunicazione AllGather collettive ottimizzate per l'infrastruttura di AWS rete AllReduce e la topologia delle istanze Amazon AI ML. SageMaker Puoi utilizzare la libreria SMDDP come backend dei pacchetti di formazione PyTorch-based distribuiti: PyTorch Distributed Data Parallel (DDP)PyTorch per l’avvio di un job di addestramento distribuito su due istanze ml.p4d.24xlarge.
from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ..., compute=Compute(instance_count=2, instance_type="ml.p4d.24xlarge"), # Activate distributed training with SMDDP distributed=Torchrun() )
Per sapere come preparare lo script di formazione e avviare un processo di formazione distribuito in parallelo con dati sull'intelligenza artificiale, consulta. SageMaker 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 libreria SMP e supporta varie tecniche di formazione distribuite, come il parallelismo dei dati frammentati, il pipelining, il parallelismo tensoriale, lo sharding dello stato dell'ottimizzatore e altro ancora. Per saperne di più su ciò che offre la libreria SMP, consulta Caratteristiche principali della SageMaker Model Parallelism Library.
Per utilizzare la libreria di parallelismo dei modelli di SageMaker AI, configura il parametro degli stimatori del framework AI. distribution SageMaker
La ModelTrainer classe supporta e. PyTorch ml.p4d.24xlarge
from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ..., compute=Compute(instance_count=2, instance_type="ml.p4d.24xlarge"), distributed=Torchrun() )
Per sapere come adattare lo script di addestramento, 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 le API https://sagemaker.readthedocs.io/en/stable/api/training/distributed.html#the-sagemaker-distributed-model-parallel-library
Utilizzo di framework di addestramento distribuito open source
SageMaker AI supporta anche le seguenti opzioni per operare mpirun e nel backend. torchrun
-
Per utilizzare PyTorch DistributedDataParallel (DDP)
in SageMaker AI con il mpirunbackend, aggiungilodistribution={"pytorchddp": {"enabled": True}}al tuo stimatore. PyTorch Per maggiori informazioni, consulta anche glidistributionargomenti di PyTorch Distributed Traininge SageMaker AI PyTorch Estimator nella documentazione di Python SDK. SageMaker Nota
Questa opzione è disponibile per PyTorch 1.12.0 e versioni successive.
from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ..., compute=Compute(instance_count=2, instance_type="ml.p4d.24xlarge"), distributed=Torchrun() # runs torchrun in the backend ) -
SageMaker L'intelligenza artificiale supporta il PyTorch
torchrunlauncherper la formazione distribuita su istanze GPU-based Amazon EC2, come P3 e P4, nonché Trn1 basato sul dispositivo Trainium. AWS Per utilizzare PyTorch DistributedDataParallel (DDP)
in SageMaker AI con il backend, aggiungilo allo stimatore. torchrundistribution={"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.24xlargeistanze con l'opzione di distribuzione.torch_distributedfrom sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute from sagemaker.train.distributed import Torchrun model_trainer = ModelTrainer( ..., compute=Compute(instance_count=2, instance_type="ml.p4d.24xlarge"), distributed=Torchrun() # runs torchrun in the backend )Per ulteriori informazioni, consulta l'
distributionargomento di Distributed PyTorch Traininge SageMaker AI PyTorch Estimator nella documentazione di Python SDK. SageMaker 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, vedi AWS Trainium Architecture nella documentazione di Neuron. AWS Per addestrarti sulle Trainium-powered istanze, devi solo specificare il codice dell'istanza Trn1
ml.trn1.*, in una stringa corrispondente all'instance_typeargomento della classe di stimatore AI. SageMaker PyTorch Per trovare i tipi di istanza Trn1 disponibili, consulta AWS Trn1 Architecturenella documentazione di AWS Neuron. Nota
SageMaker La formazione sulle istanze Trn1 di Amazon EC2 è attualmente disponibile solo per il PyTorch framework in Deep Learning Containers for Neuron a partire dalla versione 1.11.0 AWS . PyTorch Per trovare un elenco completo delle versioni supportate di Neuron, consulta PyTorch Neuron Containers nel repository Deep Learning Containers.
AWS GitHub Quando avvii un processo di formazione sulle istanze Trn1 utilizzando SageMaker Python SDK, SageMaker AI preleva ed esegue automaticamente il contenitore giusto dai Neuron Containers forniti da Deep Learning Containers. https://github.com/aws/deep-learning-containers/blob/master/available_images.md#neuron-containers
AWS I contenitori Neuron sono preconfezionati con impostazioni e dipendenze dell'ambiente di formazione per adattare più facilmente il lavoro di formazione alla piattaforma di formazione e alle istanze Trn1 di Amazon EC2. SageMaker Nota
Per eseguire il processo di PyTorch formazione su istanze Trn1 con SageMaker intelligenza artificiale, è necessario modificare lo script di formazione per inizializzare i gruppi di processi con il backend e utilizzarli.
xlaPyTorch/XLAPer supportare il processo di adozione di XLA, AWS Neuron SDK fornisce PyTorch Neuron che utilizza XLA per effettuare la conversione delle operazioni in istruzioni Trainium. PyTorch Per sapere come modificare lo script di training, consulta la Developer Guide for Training with PyTorch Neuron () nella documentazione di Neuron. torch-neuronxAWS Per ulteriori informazioni, consulta Distributed Training with PyTorch Neuron sulle istanze Trn1
e l'argomento di SageMaker AI PyTorch Estimator nella documentazione di distributionPython SDK. SageMaker -
Per utilizzare MPI in AI, aggiungilo al tuo stimatore. SageMaker
distribution={"mpi": {"enabled": True}}L'opzione di distribuzione MPI è disponibile per i seguenti framework: MXNet, e. PyTorch TensorFlow -
Per utilizzare un server di parametri in SageMaker AI, aggiungilo
distribution={"parameter_server": {"enabled": True}}al tuo stimatore. L'opzione Parameter Server è disponibile per i seguenti framework: MXNet, e. PyTorch TensorFlowSuggerimento
Per ulteriori informazioni sull'uso delle opzioni MPI e Parameter Server per framework, utilizzate i seguenti collegamenti alla documentazione di Python SDK. SageMaker