View a markdown version of this page

Inizia con la formazione distribuita in Amazon AI SageMaker - 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 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 e TensorFlow nell'SDK di SageMaker Python, che sono i programmi di avvio dei processi di formazione con varie opzioni di formazione distribuite. Quando si crea un ModelTrainer oggetto, l'oggetto configura un'infrastruttura di formazione distribuita, esegue l'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 In particolare, per ottenere il lavoro di formazione distribuito più efficiente in ambito SageMaker AI, consigliamo le istanze P4d e P4de dotate di GPU NVIDIA A100. 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 di dati, consigliamo Amazon FSx per Lustre, che offre un throughput elevato per l'archiviazione di set di dati di addestramento e checkpoint dei modelli.

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 Fully Sharded Data Parallelism (FSDP) e. DeepSpeed Megatron-DeepSpeed Il seguente esempio di codice mostra come impostare uno strumento di stima 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 TensorFlow Il seguente esempio di codice mostra come costruire un training distribuito con ModelTrainer la libreria di parallelismo del modello 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"), 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 Distributed Training nella documentazione di Python SDK). SageMaker

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 mpirun backend, aggiungilo distribution={"pytorchddp": {"enabled": True}} al tuo stimatore. PyTorch Per maggiori informazioni, consulta anche gli distribution argomenti di PyTorch Distributed Training e 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 torchrun launcher per 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. torchrun 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.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 Training e 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 Trn1ml.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 Architecture nella 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. xla PyTorch/XLA Per 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-neuronx AWS

    Per ulteriori informazioni, consulta Distributed Training with PyTorch Neuron sulle istanze Trn1 e l'argomento di SageMaker AI PyTorch Estimator nella documentazione di distribution Python 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 TensorFlow

    Suggerimento

    Per ulteriori informazioni sull'uso delle opzioni MPI e Parameter Server per framework, utilizzate i seguenti collegamenti alla documentazione di Python SDK. SageMaker