View a markdown version of this page

Amazon ECS-Aufgabendefinitionen für AWS Workloads für maschinelles Lernen mit Neuronen - 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 Workloads für maschinelles Lernen mit Neuronen

Sie können Amazon EC2 Trn1, Amazon EC2 Trn2, Amazon EC2 Inf1 (Inf1 wird nur beim Starttyp EC2 unterstützt) und Amazon EC2 Inf2-Instances mit Ihren Clustern für Workloads mit maschinellem Lernen verwenden. https://aws.amazon.com/ec2/instance-types/inf2/

Die Amazon EC2 AWS Trn1 - und Trn2-Instances werden von Trainium-Chips angetrieben. 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-Instance ausführen (Inf1 wird nur beim Starttyp EC2 unterstützt) oder auf einer Inf2-Instance, 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, einer Laufzeit und Profiling-Tools, die die Machine-Learning-Leistung von Machine-Learning-Chips 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:

  • Je nach Starttyp können Ihre Cluster 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 AWS Neuron unterstützt.

    Wichtig

    Anwendungen, die andere Frameworks verwenden, haben die Leistung auf Trn1-, Trn2-, Inf1- und Inf2-Instances möglicherweise nicht verbessert.

  • Amazon ECS unterstützt zwei Ansätze für die Konfiguration des Neuron-Gerätezugriffs:

    • Verwaltete Neuron-Gerätezuweisung — Verwenden Sie den resourceRequirements Parameter mit Typ NeuronDevice in Ihrer Container-Definition. Amazon ECS erkennt automatisch Neuron-Geräte und weist sie Ihren Containern zu. Nur auf verwalteten Instances verfügbar. Weitere Informationen finden Sie unter Verwaltete Neuron-Gerätezuweisung.

    • Manuelle Neuron-Gerätespezifikation — Verwenden Sie den linuxParameters.devices Parameter, um die Neuron-Gerätepfade explizit anzugeben. Verfügbar sowohl für den EC2-Starttyp als auch für Managed Instances. Weitere Informationen finden Sie unter Manuelle Neuron-Gerätespezifikation.

    Wichtig

    Verwenden Sie konsequent nur einen Ansatz, um Konflikte zu vermeiden.

Verwaltete Neuron-Gerätezuweisung

Bei verwalteten Instanzen können Sie den resourceRequirements Parameter in Ihrer Container-Definition verwenden, um Neuron-Geräte anzufordern. Amazon ECS erkennt automatisch Neuron-Geräte auf der Instance, weist sie Ihrer Aufgabe zu und konfiguriert den Container mit Zugriff auf alle Neuron-Geräte auf der Instance. Da die Aufgabe exklusiven Zugriff auf alle Geräte erfordert, wird nur eine Neuron-Aufgabe pro Instance ausgeführt.

Anmerkung

Inf1Instances werden nur für den Starttyp EC2 unterstützt. Informationen zur Verwendung von Inf1-Instances finden Sie unter. Manuelle Neuron-Gerätespezifikation

Auswahl der Neuron-Instanz

Verwenden Sie das instanceRequirements Objekt in der Startvorlage des Kapazitätsanbieters, um Neuron-enabled Instance-Typen für Ihre Managed Instance-Workloads auszuwählen. Sie können die folgenden Attribute verwenden, um Neuron-enabled Instanzen auszuwählen:

  • acceleratorManufacturers— Wird verwendetamazon-web-services, um Instanzen mit AWS Beschleunigern auszuwählen (einschließlich Inferentia und Trainium).

  • acceleratorNames— Verwendeinferentia2, odertrainium, um bestimmte Beschleunigerchips trainium2 auszuwählen.

  • allowedInstanceTypes— Verwenden Sie inf* undtrn*, um Neuron-Instanztypen nach Namen auszuwählen.

Im folgenden Beispiel wird verwende allowedInstanceTypes:

{ "instanceRequirements": { "allowedInstanceTypes": ["inf*", "trn*"] } }

Aufgabendefinition

Um Neuron-Geräte in Ihrer Aufgabendefinition anzufordern, fügen Sie einen resourceRequirements Eintrag mit Typ NeuronDevice und Wert hinzu. ALL Dadurch erhält der Container exklusiven Zugriff auf alle Neuron-Geräte in der Instanz.

Die folgenden Einschränkungen gelten:

  • Höchstens eine Container-Definition kann NeuronDevice in resourceRequirements angegeben werden.

  • Sie können Neuron-Geräte nicht resourceRequirements mit Typ NeuronDevice und linuxParameters.devices für Neuron-Geräte in derselben Aufgabendefinition kombinieren.

Nach dem Start Ihrer Aufgabe können Sie die Neuron-Gerätezuweisung überprüfen, indem Sie den DescribeTasks API-Vorgang aufrufen. Die Antwort enthält in jedem Container ein neuronDeviceIds Feld, das die IDs der zugewiesenen Neuron-Geräte anzeigt. Sie können auch die DescribeContainerInstances API-Operation aufrufen, um sie NEURON_DEVICES in den remainingResources Feldern registeredResources und für die Container-Instance anzuzeigen.

Ein Beispiel für eine Aufgabendefinition finden Sie unterBeispiel für Neuron-Aufgabendefinitionen.

Manuelle Neuron-Gerätespezifikation

Bei diesem Ansatz geben Sie die AWS Trainium- oder AWS Inferentia-Gerätepfade in Ihrer Aufgabendefinition mithilfe des Parameters manuell an. linuxParameters.devices Dieser Ansatz funktioniert sowohl beim EC2-Starttyp als auch bei Managed Instances.

Auf jedem AWS Trainium- oder AWS Inferentia-Chip kann nur eine Inferenz- oder Inferenztrainingsaufgabe ausgeführt werden. Sie können so viele Aufgaben ausführen, wie Chips auf der Instance vorhanden sind, indem Sie jeder Aufgabe unterschiedliche Geräte zuweisen.

Für den EC2-Starttyp können Sie Instance-Typattribute verwenden, wenn Sie Einschränkungen für die Aufgabenplatzierung konfigurieren, um sicherzustellen, dass die Aufgabe auf dem von Ihnen angegebenen Instance-Typ gestartet wird. Weitere Informationen finden Sie unter So platziert Amazon ECS Aufgaben in Container-Instances.

Anforderungen an die Aufgabendefinition

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. In der folgenden Tabelle sind die Chips aufgeführt, die für jeden Instance-Typ spezifisch sind.

Instance-Typ vCPUs 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 2048 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 4 16 1 /dev/neuron0
inf2.8xlarge 32 128 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

Ein Beispiel für eine Aufgabendefinition finden Sie unterBeispiel für Neuron-Aufgabendefinitionen.

Verwaltete Instances

Verwaltete Instances verwenden automatisch ein AMI, das den Neuron-Treiber enthält. Es ist keine zusätzliche AMI-Konfiguration erforderlich.

EC2-Starttyp

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 Runtime für Docker geliefert. Dieses AMI erleichtert das Ausführen von Machine Learning Inferenz-Workloads auf Amazon ECS.

Wir empfehlen, das Amazon ECS-optimized Amazon Linux 2023 (Neuron) AMI zu verwenden, wenn Sie Ihre Amazon EC2 Trn1-, Inf1- und Inf2-Instances starten.

Sie können das aktuelle Amazon ECS-optimized Amazon Linux 2023 (Neuron) AMI mit dem folgenden Befehl abrufen. AWS CLI

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