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 EC2-Starttyp unterstützt) und Amazon EC2 Inf2-Instances mit Ihren Clustern für maschinelles Lernen verwenden.

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-Instance (Inf1 wird nur beim EC2-Starttyp unterstützt) oder auf einer Inf2-Instance 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:

  • 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 Neuron unterstützt. AWS

    Wichtig

    Anwendungen, die andere Frameworks verwenden, weisen möglicherweise keine verbesserte Leistung auf Trn1-, Trn2-, Inf1- und Inf2-Instances auf.

  • 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 Neuron-Geräte automatisch und weist sie Ihren Containern zu. Nur für verwaltete Instances verfügbar. Weitere Informationen finden Sie unter Verwaltete Neuron-Gerätezuweisung.

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

    Wichtig

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

Verwaltete Neuron-Gerätezuweisung

Bei Managed Instances 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 pro Instance nur eine Neuron-Aufgabe ausgeführt.

Anmerkung

Inf1Instanzen werden nur beim EC2-Starttyp 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 Instanztypen für Ihre Managed Instance-Workloads auszuwählen. Sie können die folgenden Attribute verwenden, um Neuron-enabled Instances auszuwählen:

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

  • acceleratorNames— Verwenden Sieinferentia2, 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 auf der Instanz.

Die folgenden Einschränkungen gelten:

  • Maximal eine Containerdefinition kann angeben NeuronDevice inresourceRequirements.

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

Nachdem Ihre Aufgabe gestartet wurde, 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, in dem die IDs der zugewiesenen Neuron-Geräte angezeigt werden. Sie können auch den DescribeContainerInstances API-Vorgang aufrufen, um die remainingResources Felder registeredResources und für die Container-Instance anzuzeigenNEURON_DEVICES.

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

Manuelle Neuron-Gerätespezifikation

Bei diesem Ansatz geben Sie AWS Trainium- oder AWS Inferentia-Gerätepfade in Ihrer Aufgabendefinition mithilfe des Parameters manuell an. linuxParameters.devices Dieser Ansatz funktioniert sowohl für den EC2-Starttyp als auch für verwaltete 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-Typ-Attribute 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 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

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 Laufzeit 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 AWS CLI mit dem folgenden Befehl abrufen.

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