Amazon ECS-Aufgabendefinitionen für AWS Neuron-Workloads für maschinelles Lernen - Amazon Elastic Container Service

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 Inf1- und Amazon EC2 Inf2-Instances in Ihren Clustern für maschinelles Lernen registrieren.

Amazon EC2 Trn1- und Trn2-Instances werden mit Trainium-Chips betrieben.AWS Diese Instances bieten leistungsstarkes und kostengünstiges Training für Machine Learning in der Cloud. Sie können ein Inferenzmodell für maschinelles Lernen mithilfe eines Frameworks für maschinelles Lernen mit AWS Neuron auf einer Trn1- oder Trn2-Instance trainieren. Anschließend können Sie das Modell auf einer Inf1-Instanz oder einer Inf2-Instanz ausführen, um die Beschleunigung der Inferentia-Chips zu nutzen. AWS

Die Amazon-EC2-Instances Inf1 und Inf2 werden von AWS -Inferentia-Chips angetrieben. Sie bieten hohe Leistung und niedrigste Kosten für Inferenzen in der Cloud.

Machine-Learning-Modelle werden auf Containern mit AWS Neuron bereitgestellt, einem spezialisierten Software Developer Kit (SDK). Das SDK besteht aus einem Compiler, Runtime- und Profiling-Tools, die die Leistung von Machine-Learning-Chips für maschinelles Lernen optimieren. AWS AWS Neuron unterstützt beliebte Frameworks für maschinelles Lernen wie TensorFlow PyTorch, und Apache. MXNet

Ü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 Ihrem default-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 im AWS Deep Learning AMIs Entwicklerhandbuch.

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