View a markdown version of this page

Definizioni delle attività di Amazon ECS per AWS Carichi di lavoro di apprendimento automatico Neuron - Amazon Elastic Container Service

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

Definizioni delle attività di Amazon ECS per AWS Carichi di lavoro di apprendimento automatico Neuron

Puoi usare Amazon EC2 Trn1, Amazon EC2 Trn2, Amazon EC2 Inf1 (Inf1 è supportato solo sul tipo di lancio EC2) e Amazon EC2 Inf2 con i tuoi cluster per carichi di lavoro di machine learning.

Le istanze Amazon EC2 Trn1 e Trn2 sono alimentate da chip Trainium.AWS Queste istanze offrono addestramento ad alte prestazioni e a basso costo per il machine learning nel cloud. Puoi addestrare un modello di inferenza di machine learning utilizzando un framework di machine learning con AWS Neuron su un'istanza Trn1 o Trn2. Quindi, puoi eseguire il modello su un'istanza Inf1 (Inf1 è supportato solo sul tipo di avvio EC2) o un'istanza Inf2 per utilizzare l'accelerazione dei chip Inferentia. AWS

Le istanze Inf1 e Inf2 di Amazon EC2 si basano sui chip AWS Inferentia, che offrono prestazioni elevate e inferenze a costi contenuti nel cloud.

I modelli di machine learning vengono implementati in container utilizzando AWS Neuron, ovvero un Software Developer Kit (SDK) specializzato. L'SDK è composto da un compilatore, un runtime e strumenti di profilazione che ottimizzano le prestazioni di apprendimento automatico dei chip di apprendimento automatico. AWS AWS Neuron supporta i più diffusi framework di machine learning come TensorFlow PyTorch, e Apache MXNet.

Considerazioni

Prima di iniziare a implementare Neuron su Amazon ECS, tieni presente quanto segue:

  • A seconda del tipo di avvio, i cluster possono contenere un mix di Trn1, Trn2, Inf1, Inf2 e altre istanze.

  • È necessaria un'applicazione Linux in un contenitore che utilizza un framework di apprendimento automatico che supporti Neuron. AWS

    Importante

    Le applicazioni che utilizzano altri framework potrebbero non avere prestazioni migliorate sulle istanze Trn1, Trn2, Inf1 e Inf2.

  • Amazon ECS supporta due approcci per configurare l'accesso ai dispositivi Neuron:

    • Allocazione gestita dei dispositivi Neuron: utilizza il resourceRequirements parametro con tipo NeuronDevice nella definizione del contenitore. Amazon ECS rileva e assegna automaticamente i dispositivi Neuron ai tuoi contenitori. Disponibile solo su istanze gestite. Per ulteriori informazioni, consulta Allocazione gestita dei dispositivi Neuron.

    • Specificazione manuale del dispositivo Neuron: utilizza il linuxParameters.devices parametro per specificare in modo esplicito i percorsi dei dispositivi Neuron. Disponibile sia per il tipo di avvio EC2 che per le istanze gestite. Per ulteriori informazioni, consulta Specifiche manuali del dispositivo Neuron.

    Importante

    Utilizza un solo approccio in modo coerente per evitare conflitti.

Allocazione gestita dei dispositivi Neuron

Con Managed Instances, puoi utilizzare il resourceRequirements parametro nella definizione del contenitore per richiedere dispositivi Neuron. Amazon ECS rileva automaticamente i dispositivi Neuron sull'istanza, li assegna all'attività e configura il contenitore con accesso a tutti i dispositivi Neuron sull'istanza. Poiché l'attività richiede l'accesso esclusivo a tutti i dispositivi, viene eseguita una sola attività Neuron per istanza.

Nota

Inf1le istanze sono supportate solo nel tipo di avvio EC2. Per utilizzare le istanze Inf1, consulta. Specifiche manuali del dispositivo Neuron

Selezione dell'istanza Neuron

Per selezionare i tipi di Neuron-enabled istanze per i carichi di lavoro delle istanze gestite, utilizza l'instanceRequirementsoggetto nel modello di avvio del provider di capacità. È possibile utilizzare i seguenti attributi per selezionare Neuron-enabled le istanze:

  • acceleratorManufacturers— Utilizzato amazon-web-services per selezionare istanze con AWS acceleratori (include Inferentia e Trainium).

  • acceleratorNames— Usa o inferentia2 seleziona chip trainium acceleratori specificitrainium2.

  • allowedInstanceTypes— Usa inf* e seleziona trn* i tipi di istanza Neuron per nome.

Nell'esempio seguente viene utilizzato allowedInstanceTypes:

{ "instanceRequirements": { "allowedInstanceTypes": ["inf*", "trn*"] } }

Definizione di attività

Per richiedere dispositivi Neuron nella definizione dell'attività, aggiungi una resourceRequirements voce con tipo NeuronDevice e valore. ALL Ciò offre al contenitore l'accesso esclusivo a tutti i dispositivi Neuron sull'istanza.

Vengono applicati i vincoli seguenti:

  • È possibile specificare al massimo una definizione di contenitore NeuronDevice inresourceRequirements.

  • Non è possibile combinare resourceRequirements il tipo NeuronDevice e linuxParameters.devices per i dispositivi Neuron nella stessa definizione di attività.

Dopo l'avvio dell'attività, puoi verificare l'assegnazione del dispositivo Neuron chiamando l'operazione API. DescribeTasks La risposta include un neuronDeviceIds campo su ogni contenitore che mostra gli ID dei dispositivi Neuron assegnati. Puoi anche chiamare l'operazione DescribeContainerInstances API per visualizzarla NEURON_DEVICES nei remainingResources campi registeredResources e dell'istanza del contenitore.

Per un esempio di definizione dell'attività, vediEsempi di definizioni delle attività Neuron.

Specifiche manuali del dispositivo Neuron

Con questo approccio, specificate manualmente i percorsi dei dispositivi AWS Trainium o AWS Inferentia nella definizione dell'attività utilizzando il parametro. linuxParameters.devices Questo approccio funziona sia sul tipo di avvio EC2 che sulle istanze gestite.

Puoi eseguire soltanto un'attività di inferenza o di addestramento all'inferenza su ogni chip AWS Trainium o AWS Inferentia. Puoi eseguire tante attività quanti sono i chip presenti sull'istanza assegnando dispositivi diversi a ciascuna attività.

Per il tipo di avvio EC2, puoi utilizzare gli attributi del tipo di istanza quando configuri i vincoli di posizionamento delle attività per garantire che l'attività venga avviata sul tipo di istanza specificato. Per ulteriori informazioni, consulta In che modo Amazon ECS colloca le attività sulle istanze dei container.

Requisiti di definizione di attività

La definizione di attività deve essere specifica per il tipo di istanza. È necessario configurare un contenitore per utilizzare dispositivi AWS Trainium o AWS Inferentia specifici disponibili sull'istanza del contenitore host. Puoi farlo usando il parametro linuxParameters. Nella tabella seguente vengono descritti in dettaglio i chip specifici per ogni tipo di istanza.

Tipo di istanza vCPUs RAM (GiB) AWS Chip acceleratori ML Percorsi dispositivi
trn1.2xlarge 8 32 1 /dev/neuron0
trn1.32xlarge 128 512 16 /dev/neuron0, /dev/neuron1, /dev/neuron2, /dev/neuron3, /dev/neuron4, /dev/neuron5, /dev/neuron6, /dev/neuron7, /dev/neuron8, /dev/neuron9, /dev/neuron10, /dev/neuron11, /dev/neuron12, /dev/neuron13, /dev/neuron14, /dev/neuron15
trn2.48xlarge 192 1536 16 /dev/neuron0, /dev/neuron1, /dev/neuron2, /dev/neuron3, /dev/neuron4, /dev/neuron5, /dev/neuron6, /dev/neuron7, /dev/neuron8, /dev/neuron9, /dev/neuron10, /dev/neuron11, /dev/neuron12, /dev/neuron13, /dev/neuron14, /dev/neuron15
inf1.xlarge 4 8 1 /dev/neuron0
inf1.2xlarge 8 16 1 /dev/neuron0
inf1.6xlarge 24 48 4 /dev/neuron0, /dev/neuron1, /dev/neuron2, /dev/neuron3
inf1.24xlarge 96 192 16 /dev/neuron0, /dev/neuron1, /dev/neuron2, /dev/neuron3, /dev/neuron4, /dev/neuron5, /dev/neuron6, /dev/neuron7, /dev/neuron8, /dev/neuron9, /dev/neuron10, /dev/neuron11, /dev/neuron12, /dev/neuron13, /dev/neuron14, /dev/neuron15
inf2.xlarge 8 16 1 /dev/neuron0
inf2.8xlarge 32 64 1 /dev/neuron0
inf2.24xlarge 96 384 6 /dev/neuron0, /dev/neuron1, /dev/neuron2, /dev/neuron3, /dev/neuron4, /dev/neuron5
inf2.48xlarge 192 768 12 /dev/neuron0, /dev/neuron1, /dev/neuron2, /dev/neuron3, /dev/neuron4, /dev/neuron5, /dev/neuron6, /dev/neuron7, /dev/neuron8, /dev/neuron9, /dev/neuron10, /dev/neuron11

Per un esempio di definizione dell'attività, vedereEsempi di definizioni delle attività Neuron.

Istanze gestite

Le istanze gestite utilizzano automaticamente un'AMI che include il driver Neuron. Non è richiesta alcuna configurazione AMI aggiuntiva.

Tipo di avvio EC2

Amazon ECS fornisce un'AMI ottimizzata per Amazon ECS basata su Amazon Linux 2023 per carichi di lavoro AWS Trainium e AWS Inferentia. Viene fornito con i driver AWS Neuron e il runtime per Docker. Questa AMI semplifica l'esecuzione dei carichi di lavoro di inferenza di machine learning su Amazon ECS.

Ti consigliamo di utilizzare l'AMI Amazon ECS-optimized Amazon Linux 2023 (Neuron) all'avvio delle istanze Amazon EC2 Trn1, Inf1 e Inf2.

Puoi recuperare l'attuale AMI Amazon ECS-optimized Amazon Linux 2023 (Neuron) usando il AWS CLI comando seguente.

aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2023/neuron/recommended