Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Amazon ECS-Aufgabendefinitionen für AWS Neuron-Workloads für maschinelles Lernen
Sie können Amazon EC2 Trn1-, Amazon EC2 Trn2
Amazon EC2 Trn1- und Trn2-Instances werden mit Trainium-Chips betrieben.AWS
Die Amazon-EC2-Instances Inf1 und Inf2 werden von AWS -Inferentia-Chips
Machine-Learning-Modelle werden auf Containern mit AWS Neuron
Überlegungen
Berücksichtigen Sie Folgendes, bevor Sie mit der Bereitstellung von Neuron auf Amazon ECS beginnen:
-
Ihre Cluster können eine Mischung aus Trn1, Trn2, Inf1, Inf2 und anderen Instances enthalten.
-
Sie benötigen eine Linux-Anwendung in einem Container, der ein Framework für maschinelles Lernen verwendet, das Neuron unterstützt. AWS
Wichtig
Anwendungen, die andere Frameworks verwenden, weisen möglicherweise keine verbesserte Leistung auf Trn1-, Trn2-, Inf1- und Inf2-Instances auf.
-
Auf jedem AWS Trainium
- oder AWS Inferentia -Chip kann nur eine Inferenz- oder Inferenztrainingsaufgabe ausgeführt werden. Bei Inf1 hat jeder Chip 4. NeuronCores Für Trn1, Trn2 und Inf2 hat jeder Chip 2. NeuronCores Sie können so viele Aufgaben ausführen, wie Chips für jede Ihrer Trn1-, Trn2-, Inf1- und Inf2-Instances vorhanden sind. -
Wenn Sie eine eigenständige Aufgabe ausführen oder einen Service erstellen, können Sie beim Konfigurieren der Aufgabenplatzierungbedingungen Attribute des Instance-Typs verwenden. Dadurch wird sichergestellt, dass die Aufgabe auf der von Ihnen angegebenen Container-Instance gestartet wird. Auf diese Weise können Sie die allgemeine Ressourcennutzung optimieren und sicherstellen, dass Aufgaben für Inferenz-Workloads auf Ihren Trn1-, Trn2-, Inf1- und Inf2-Instances ausgeführt werden. Weitere Informationen finden Sie unter So platziert Amazon ECS Aufgaben in Container-Instances.
Im folgenden Beispiel wird eine Aufgabe auf einer
Inf1.xlarge-Instance auf Ihremdefault-Cluster ausgeführt.aws ecs run-task \ --cluster default \ --task-definition ecs-inference-task-def \ --placement-constraints type=memberOf,expression="attribute:ecs.instance-type == Inf1.xlarge" -
Ressourcenanforderungen für Neuron können in einer Aufgabendefinition nicht definiert werden. Stattdessen konfigurieren Sie einen Container so, dass er bestimmte AWS Trainium- oder Inferentia-Chips verwendet, die auf der Host-Container-Instance verfügbar sind. AWS Nutzen Sie dazu den
linuxParameters-Parameter und geben Sie die Geräteinformationen an. Weitere Informationen finden Sie unter Anforderungen an die Aufgabendefinition.
Das Amazon-ECS-optimierte AMI für Amazon Linux 2023 (Neuron) verwenden
Amazon ECS bietet ein für Amazon ECS optimiertes AMI, das auf Amazon Linux 2023 für AWS Trainium- und AWS Inferentia-Workloads basiert. Es wird mit den AWS Neuron-Treibern und der Laufzeit für Docker geliefert. Dieses AMI erleichtert das Ausführen von Machine Learning Inferenz-Workloads auf Amazon ECS.
Wir empfehlen, das Amazon-ECS-optimierte AMI für Amazon Linux 2023 (Neuron) zu verwenden, wenn Sie Ihre Amazon-EC2-Trn1-, -Inf1- und -Inf2-Instances starten.
Sie können das aktuelle Amazon ECS-optimierte Amazon Linux 2023 (Neuron) AMI AWS CLI mit dem folgenden Befehl abrufen.
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2023/neuron/recommended
Anforderungen an die Aufgabendefinition
Um Neuron auf Amazon ECS bereitzustellen, muss Ihre Aufgabendefinition die Container-Definition für einen vorgefertigten Container enthalten, für den das Inferenzmodell verwendet wird. TensorFlow Es wird von AWS Deep Learning Containers bereitgestellt. Dieser Container enthält die AWS Neuron-Runtime und die TensorFlow Serving-Anwendung. Beim Start ruft dieser Container Ihr Modell von Amazon S3 ab, startet Neuron TensorFlow Serving mit dem gespeicherten Modell und wartet auf Vorhersageanfragen. Im folgenden Beispiel hat das Container-Image TensorFlow 1.15 und Ubuntu 18.04. Eine vollständige Liste vorgefertigter Deep Learning Containers, die für Neuron optimiert sind, wird auf geführt. GitHub Weitere Informationen finden Sie unter AWS Neuron TensorFlow Serving verwenden.
763104351884.dkr.ecr.us-east-1.amazonaws.com/tensorflow-inference-neuron:1.15.4-neuron-py37-ubuntu18.04
Alternativ können Sie Ihr eigenes Neuron Seitenwagen Container-Image erstellen. Weitere Informationen finden Sie unter Tutorial: Neuron TensorFlow Serving
Die Aufgabendefinition muss für den einzelnen Instance-Typ spezifisch sein. Sie müssen einen Container so konfigurieren, dass er bestimmte AWS Trainium- oder AWS Inferentia-Geräte verwendet, die auf der Host-Container-Instance verfügbar sind. Dazu können Sie den linuxParameters-Parameter verwenden. Ein Beispiel für eine Aufgabendefinition finden Sie unter. Spezifizierung des maschinellen Lernens mit AWS Neuron in einer Amazon ECS-Aufgabendefinition In der folgenden Tabelle sind die Chips aufgeführt, die für jeden Instance-Typ spezifisch sind.
| Instance-Typ | v CPUs | RAM (GiB) | AWS ML-Beschleunigerchips | Gerätepfade |
|---|---|---|---|---|
| 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 |