Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Définitions de tâches Amazon ECS pour les charges de travail d'apprentissage automatique AWS Neuron
Vous pouvez enregistrer les instances Amazon EC2 Trn1
Les instances Amazon EC2 Trn1 sont alimentées par des puces AWS Trainium
Les instances Inf1 et Inf2 d'Amazon EC2 sont alimentées par des puces AWS Inferentia
Les modèles de machine learning sont déployés sur des conteneurs à l'aide d'AWS Neuron
Considérations
Avant de commencer à déployer Neuron sur Amazon ECS, prenez en compte ce qui suit :
-
Vos clusters peuvent contenir une combinaison d'instances Trn1, Inf1, Inf2 et d'autres instances.
-
Vous avez besoin d'une application Linux dans un conteneur qui utilise un framework d'apprentissage automatique compatible avec AWS Neuron.
Important
Les applications qui utilisent d'autres cadres peuvent ne pas avoir de performances améliorées sur les instances Trn1, Inf1 et Inf2.
-
Une seule tâche d'inférence ou d'entraînement d'inférence peut être exécutée sur chaque puce AWS Trainium
ou AWS Inferentia . Pour Inf1, chaque puce en possède 4 NeuronCores. Pour Trn1 et Inf2, chaque puce en possède 2. NeuronCores Vous pouvez exécuter autant de tâches qu'il y a de puces pour chacune de vos instances Trn1, Inf1 et Inf2. -
Lorsque vous exécutez une tâche autonome ou créez un service, vous pouvez utiliser des attributs de type d'instance lors de la configuration des contraintes de placement des tâches. Cela garantit que la tâche est lancée sur l'instance de conteneur que vous spécifiez. Cela vous aide à optimiser l'utilisation globale des ressources et garantit que les tâches des charges de travail d'inférence sont sur vos instances Trn1, Inf1 et Inf2. Pour plus d’informations, consultez Comment Amazon ECS place les tâches sur les instances de conteneur.
Dans l'exemple suivant, une tâche est exécutée sur une instance
Inf1.xlarge
de votre clusterdefault
.aws ecs run-task \ --cluster default \ --task-definition ecs-inference-task-def \ --placement-constraints type=memberOf,expression="attribute:ecs.instance-type == Inf1.xlarge"
-
Les besoins en ressources Neuron ne peuvent pas être définis dans une définition de tâche. Au lieu de cela, vous configurez un conteneur pour utiliser des puces AWS Trainium ou AWS Inferentia spécifiques disponibles sur l'instance de conteneur hôte. Pour ce faire, utilisez le paramètre
linuxParameters
et en spécifiant les détails du dispositif. Pour plus d’informations, consultez Exigences relatives à la définition de tâche.
Utiliser l'AMI Amazon Linux 2023 (Neuron) optimisée pour Amazon ECS
Amazon ECS fournit une AMI optimisée pour Amazon ECS basée sur Amazon Linux 2023 pour les charges de travail AWS Trainium et AWS Inferentia. Il est livré avec les pilotes AWS Neuron et le runtime pour Docker. Cette AMI facilite l'exécution de charges de travail d'inférence de machine learning sur Amazon ECS.
Nous vous recommandons d'utiliser l'AMI Amazon Linux 2023 (Neuron) optimisée pour Amazon ECS lors du lancement de vos instances Amazon EC2 Trn1, Inf1 et Inf2.
Vous pouvez récupérer l'AMI Amazon Linux 2023 (Neuron) actuellement optimisée pour Amazon ECS à l'aide de la commande AWS CLI suivante.
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2023/neuron/recommended
L'AMI Amazon Linux 2023 (Neuron) optimisée pour Amazon ECS est prise en charge dans les régions suivantes :
-
USA Est (Virginie du Nord)
-
USA Est (Ohio)
-
USA Ouest (Californie du Nord)
-
USA Ouest (Oregon)
-
Asie-Pacifique (Mumbai)
-
Asie-Pacifique (Osaka)
-
Asie-Pacifique (Séoul)
-
Asie-Pacifique (Tokyo)
-
Asie-Pacifique (Singapour)
-
Asie-Pacifique (Sydney)
-
Canada (Centre)
-
Europe (Francfort)
-
Europe (Irlande)
-
Europe (Londres)
-
Europe (Paris)
-
Europe (Stockholm)
-
Amérique du Sud (São Paulo)
Utiliser l'AMI Amazon Linux 2 (Neuron) optimisée pour Amazon ECS
Amazon ECS fournit une AMI optimisée pour Amazon ECS basée sur Amazon Linux 2 pour les charges de travail AWS Trainium et AWS Inferentia. Il est livré avec les pilotes AWS Neuron et le runtime pour Docker. Cette AMI facilite l'exécution de charges de travail d'inférence de machine learning sur Amazon ECS.
Nous vous recommandons d'utiliser l'AMI Amazon Linux 2 (Neuron) optimisée pour Amazon ECS lors du lancement de vos instances Trn1, Inf1 et Inf2 Amazon EC2.
Vous pouvez récupérer l'AMI Amazon Linux 2 (Neuron) actuellement optimisée pour Amazon ECS à l' AWS CLI aide de la commande suivante.
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/inf/recommended
L'AMI Amazon Linux 2 (Neuron) optimisée pour Amazon ECS est prise en charge dans les régions suivantes :
-
USA Est (Virginie du Nord)
-
USA Est (Ohio)
-
USA Ouest (Californie du Nord)
-
USA Ouest (Oregon)
-
Asie-Pacifique (Mumbai)
-
Asie-Pacifique (Osaka)
-
Asie-Pacifique (Séoul)
-
Asie-Pacifique (Tokyo)
-
Asie-Pacifique (Singapour)
-
Asie-Pacifique (Sydney)
-
Canada (Centre)
-
Europe (Francfort)
-
Europe (Irlande)
-
Europe (Londres)
-
Europe (Paris)
-
Europe (Stockholm)
-
Amérique du Sud (São Paulo)
Exigences relatives à la définition de tâche
Pour déployer Neuron sur Amazon ECS, votre définition de tâche doit contenir la définition du conteneur d'un conteneur prédéfini servant le modèle d'inférence pour. TensorFlow Il est fourni par AWS Deep Learning Containers. Ce conteneur contient le runtime AWS Neuron et l'application TensorFlow Serving. Au démarrage, ce conteneur récupère votre modèle depuis Amazon S3, lance Neuron TensorFlow Serving avec le modèle enregistré et attend les demandes de prédiction. Dans l'exemple suivant, l'image du conteneur est TensorFlow 1.15 et Ubuntu 18.04. Une liste complète des Deep Learning Containers prédéfinis optimisés pour Neuron est disponible sur. GitHub Pour plus d'informations, consultez la section Utilisation de AWS Neuron TensorFlow Serving.
763104351884.dkr.ecr.us-east-1.amazonaws.com/tensorflow-inference-neuron:1.15.4-neuron-py37-ubuntu18.04
Alternativement, vous pouvez également créer votre propre image de conteneur sidecar Neuron. Pour plus d'informations, consultez Tutoriel : Neuron TensorFlow Serving
La définition de tâche doit être spécifique au type d'instance unique. Vous devez configurer un conteneur pour utiliser des appareils AWS Trainium ou AWS Inferentia spécifiques disponibles sur l'instance de conteneur hôte. Vous pouvez effectuer cette opération à l'aide du paramètre linuxParameters
. Le tableau suivant détaille les cartes et les puces qui sont spécifiques à chaque type d'instance.
Type d'instance | vCPU | RAM (Gio) | AWS puces accélératrices ML | Chemins de l'appareil |
---|---|---|---|---|
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 |