Definizioni delle ECS attività di Amazon per i carichi di lavoro di machine learning di AWS 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 ECS attività di Amazon per i carichi di lavoro di machine learning di AWS Neuron

Puoi registrare istanze Amazon EC2 Trn1, Amazon EC2 Inf1 e Amazon EC2 Inf2 nei tuoi cluster per carichi di lavoro di machine learning.

Le istanze Amazon EC2 Trn1 sono alimentate da AWS chip Trainium. 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. Quindi, puoi eseguire il modello su un'istanza Inf1 o un'istanza Inf2 per utilizzare l'accelerazione dei chip Inferentia. AWS

Le istanze Amazon EC2 Inf1 e Inf2 sono alimentate da chip AWS Inferentia e forniscono inferenze ad alte prestazioni e al minor costo nel cloud.

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

Considerazioni

Prima di iniziare a distribuire Neuron su AmazonECS, considera quanto segue:

  • I cluster possono contenere una combinazione di istanze Trn1, Inf1, Inf2 e altre.

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

    Importante

    Le applicazioni che utilizzano altri framework potrebbero non avere prestazioni migliorate sulle istanze Trn1, 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 e Inf2 ogni chip ne ha 2. NeuronCores Puoi eseguire tante attività quanti sono i chip per ciascuna istanza Trn1, 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 puoi ottimizzare l'utilizzo complessivo delle risorse e garantire che le attività per i carichi di lavoro di inferenza si trovino nelle istanze Trn1, Inf1 e Inf2. Per ulteriori informazioni, consulta In che modo Amazon ECS colloca le attività sulle istanze di container.

    Nell'esempio seguente viene eseguita un'attività su una istanza Inf1.xlarge sul cluster default.

    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, configuri un contenitore per utilizzare chip AWS Trainium o AWS Inferentia specifici disponibili sull'istanza del contenitore host. Puoi farlo usando il parametro linuxParameters e specificando i dettagli del dispositivo. Per ulteriori informazioni, consulta Requisiti di definizione di attività.

Usa Amazon Linux 2023 (Neuron) ECS ottimizzato per Amazon AMI

Amazon ECS fornisce un Amazon ECS ottimizzato AMI basato 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. Ciò AMI semplifica l'esecuzione di carichi di lavoro di inferenza di machine learning su Amazon. ECS

Ti consigliamo di utilizzare Amazon Linux 2023 (Neuron) ECS ottimizzato per Amazon all'AMIavvio delle istanze Amazon EC2 Trn1, Inf1 e Inf2.

Puoi recuperare l'attuale Amazon ECS Linux 2023 (Neuron) ottimizzato per Amazon AMI utilizzando il seguente AWS CLI comando.

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

Amazon Linux 2023 (Neuron) ECS ottimizzato per Amazon AMI è supportato nelle seguenti regioni:

  • Stati Uniti orientali (Virginia settentrionale)

  • Stati Uniti orientali (Ohio)

  • Stati Uniti occidentali (California settentrionale)

  • Stati Uniti occidentali (Oregon)

  • Asia Pacifico (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seul)

  • Asia Pacifico (Tokyo)

  • Asia Pacifico (Singapore)

  • Asia Pacifico (Sydney)

  • Canada (Centrale)

  • Europa (Francoforte)

  • Europa (Irlanda)

  • Europe (London)

  • Europe (Paris)

  • Europa (Stoccolma)

  • Sud America (San Paolo)

Usa Amazon Linux 2 (Neuron) ECS ottimizzato per Amazon AMI

Amazon ECS fornisce una soluzione ECS ottimizzata per AMI Amazon basata su Amazon Linux 2 per carichi di lavoro AWS Trainium e AWS Inferentia. Viene fornito con i driver AWS Neuron e il runtime per Docker. Ciò AMI semplifica l'esecuzione di carichi di lavoro di inferenza di machine learning su Amazon. ECS

Ti consigliamo di utilizzare Amazon Linux 2 (Neuron) ECS ottimizzato per Amazon all'AMIavvio delle istanze Amazon EC2 Trn1, Inf1 e Inf2.

Puoi recuperare l'attuale Amazon Linux 2 (Neuron) ECS ottimizzato per Amazon AMI utilizzando il AWS CLI seguente comando.

aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/inf/recommended

Amazon Linux 2 (Neuron) ECS ottimizzato per Amazon AMI è supportato nelle seguenti regioni:

  • Stati Uniti orientali (Virginia settentrionale)

  • Stati Uniti orientali (Ohio)

  • Stati Uniti occidentali (California settentrionale)

  • Stati Uniti occidentali (Oregon)

  • Asia Pacifico (Mumbai)

  • Asia Pacific (Osaka)

  • Asia Pacific (Seul)

  • Asia Pacifico (Tokyo)

  • Asia Pacifico (Singapore)

  • Asia Pacifico (Sydney)

  • Canada (Centrale)

  • Europa (Francoforte)

  • Europa (Irlanda)

  • Europe (London)

  • Europe (Paris)

  • Europa (Stoccolma)

  • Sud America (San Paolo)

Requisiti di definizione di attività

Per distribuire Neuron su AmazonECS, 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 nella Guida per gli AWS Deep Learning AMIs sviluppatori.

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