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 i carichi di lavoro di machine learning di AWS Neuron
Puoi registrare istanze Amazon EC2 Trn1, Amazon EC2 Trn2
Le istanze Amazon EC2 Trn1 e Trn2 sono alimentate da chip Trainium.AWS
Le istanze Inf1 e Inf2 di Amazon EC2 si basano sui chip AWS Inferentia
I modelli di machine learning vengono implementati in container utilizzando AWS Neuron
Considerazioni
Prima di iniziare a implementare Neuron su Amazon ECS, tieni presente quanto segue:
-
I tuoi cluster possono contenere un mix di Trn1, Trn2, Inf1, Inf2 e altre istanze.
-
È necessaria un'applicazione Linux in un contenitore che utilizzi 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.
-
Puoi eseguire soltanto un'attività di inferenza o di addestramento all'inferenza su ogni chip AWS Trainium
o AWS Inferentia . Per Inf1, ogni chip ne ha 4. NeuronCores Per Trn1, Trn2 e Inf2 ogni chip ne ha 2. NeuronCores Puoi eseguire tante attività quanti sono i chip disponibili per ciascuna delle tue istanze Trn1, Trn2, Inf1 e Inf2. -
Durante l'esecuzione di un servizio o di un'attività autonoma, puoi utilizzare gli attributi del tipo di istanza quando configuri i vincoli di posizionamento dell'attività. Ciò garantisce che l'attività venga avviata sull'istanza di container specificata. In questo modo è possibile ottimizzare l'utilizzo complessivo delle risorse e garantire che le attività per i carichi di lavoro di inferenza si trovino sulle istanze Trn1, Trn2, Inf1 e Inf2. Per ulteriori informazioni, consulta In che modo Amazon ECS colloca le attività sulle istanze dei container.
Nell'esempio seguente viene eseguita un'attività su una istanza
Inf1.xlargesul clusterdefault.aws ecs run-task \ --cluster default \ --task-definition ecs-inference-task-def \ --placement-constraints type=memberOf,expression="attribute:ecs.instance-type == Inf1.xlarge" -
I requisiti di risorse Neuron non possono essere definiti in una definizione di attività. Invece, configurate un contenitore per utilizzare chip AWS Trainium o Inferentia specifici disponibili sull'istanza del contenitore host. AWS Puoi farlo usando il parametro
linuxParameterse specificando i dettagli del dispositivo. Per ulteriori informazioni, consulta Requisiti di definizione di attività.
Utilizzare l'AMI Amazon Linux 2023 (Neuron) ottimizzata per Amazon ECS
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.
Consigliamo di utilizzare l'AMI Amazon Linux 2023 (Neuron) ottimizzata per Amazon ECS quando si avviano le istanze Trn1, Inf1 e Inf2 di Amazon EC2.
Puoi recuperare l'attuale AMI Amazon Linux 2023 (Neuron) ottimizzata per Amazon ECS AWS CLI utilizzando il comando seguente.
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2023/neuron/recommended
Requisiti di definizione di attività
Per distribuire Neuron su Amazon ECS, la definizione dell'attività deve contenere la definizione del contenitore per un contenitore predefinito che serve il modello di inferenza per. TensorFlow È fornito da AWS Deep Learning Containers. Questo contenitore contiene il runtime AWS Neuron e l'applicazione TensorFlow Serving. All'avvio, questo contenitore recupera il modello da Amazon S3, avvia TensorFlow Neuron Serving con il modello salvato e attende le richieste di previsione. Nell'esempio seguente, l'immagine del contenitore ha 1.15 e Ubuntu 18.04. TensorFlow È disponibile un elenco completo di Deep Learning Containers predefiniti ottimizzati per Neuron. GitHub Per ulteriori informazioni, consulta Using AWS TensorFlow Neuron Serving.
763104351884.dkr.ecr.us-east-1.amazonaws.com/tensorflow-inference-neuron:1.15.4-neuron-py37-ubuntu18.04
In alternativa, puoi creare la tua immagine di container sidecar di Neuron. Per ulteriori informazioni, consulta Tutorial: Neuron TensorFlow Serving
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. Per una definizione di attività di esempio, vedere. Specificare l'apprendimento automatico di AWS Neuron in una definizione di attività Amazon ECS Nella tabella seguente vengono descritti in dettaglio i chip specifici per ogni tipo di istanza.
| Tipo di istanza | v CPUs | 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 |