ECSAmazon-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.

ECSAmazon-Aufgabendefinitionen für AWS Neuron-Workloads für maschinelles Lernen

Sie können Amazon EC2 Trn1-, Amazon Inf1 - und Amazon EC2 EC2 Inf2-Instances in Ihren Clustern für Machine-Learning-Workloads registrieren.

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

Die Amazon EC2 Inf1-Instances und Inf2-Instances werden von AWS Inferentia-Chips angetrieben. Sie bieten hohe Leistung und kostengünstigste Inferenz in der Cloud.

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

Überlegungen

Bevor Sie mit der Bereitstellung von Neuron auf Amazon beginnenECS, sollten Sie Folgendes beachten:

  • Ihre Cluster können eine Mischung aus Trn1-, 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 möglicherweise keine verbesserte Leistung auf Trn1-, Inf1 und Inf2-Instances.

  • Auf jedem AWS Trainium- oder AWS Inferentia-Chip kann nur eine Inferenz- oder Inferenztrainingsaufgabe ausgeführt werden. Für Inf1 hat jeder Chip 4. NeuronCores Für Trn1 und Inf2 hat jeder Chip 2. NeuronCores Sie können so viele Aufgaben ausführen, wie Chips für jede Ihrer Trn1-, 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. Das hilft dabei, die allgemeine Ressourcenauslastung zu optimieren und sicherzustellen, dass sich Aufgaben für Inferenz-Workloads auf Ihren Trn1-, Inf1 oder Inf2-Instances befinden. Weitere Informationen finden Sie unter So ECS platziert Amazon Aufgaben auf 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 AWS Inferentia-Chips verwendet, die auf der Host-Container-Instance verfügbar sind. Nutzen Sie dazu den linuxParameters-Parameter und geben Sie die Geräteinformationen an. Weitere Informationen finden Sie unter Anforderungen an die Aufgabendefinition.

Verwenden Sie das für Amazon ECS optimierte Amazon Linux 2023 (Neuron) AMI

Amazon ECS bietet eine für Amazon ECS optimierte VersionAMI, die 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. Dies AMI erleichtert die Ausführung von Inferenz-Workloads für maschinelles Lernen auf Amazon. ECS

Wir empfehlen, AMI beim Starten Ihrer Amazon EC2 Trn1 ECS -, Inf1- und Inf2-Instances das für Amazon optimierte Amazon Linux 2023 (Neuron) zu verwenden.

Sie können das aktuelle, für 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

Das für Amazon ECS optimierte Amazon Linux 2023 (Neuron) AMI wird in den folgenden Regionen unterstützt:

  • USA Ost (Nord-Virginia)

  • USA Ost (Ohio)

  • USA West (Nordkalifornien)

  • USA West (Oregon)

  • Asien-Pazifik (Mumbai)

  • Asien-Pazifik (Osaka)

  • Asien-Pazifik (Seoul)

  • Asien-Pazifik (Tokio)

  • Asien-Pazifik (Singapur)

  • Asien-Pazifik (Sydney)

  • Kanada (Zentral)

  • Europe (Frankfurt)

  • Europa (Irland)

  • Europe (London)

  • Europe (Paris)

  • Europa (Stockholm)

  • Südamerika (São Paulo)

Verwenden Sie das ECS für Amazon optimierte Amazon Linux 2 (Neuron) AMI

Amazon ECS bietet eine für Amazon ECS optimierte VersionAMI, die auf Amazon Linux 2 für AWS Trainium- und AWS Inferentia-Workloads basiert. Es wird mit den AWS Neuron-Treibern und der Laufzeit für Docker geliefert. Dies AMI erleichtert die Ausführung von Inferenz-Workloads für maschinelles Lernen auf Amazon. ECS

Wir empfehlen, AMI beim Starten Ihrer Amazon EC2 Trn1-, Inf1- und Inf2-Instances das für Amazon ECS optimierte Amazon Linux 2 (Neuron) zu verwenden.

Sie können das aktuelle, ECS für Amazon optimierte Amazon Linux 2 (Neuron) AMI AWS CLI mit dem folgenden Befehl abrufen.

aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/inf/recommended

Das ECS für Amazon optimierte Amazon Linux 2 (Neuron) AMI wird in den folgenden Regionen unterstützt:

  • USA Ost (Nord-Virginia)

  • USA Ost (Ohio)

  • USA West (Nordkalifornien)

  • USA West (Oregon)

  • Asien-Pazifik (Mumbai)

  • Asien-Pazifik (Osaka)

  • Asien-Pazifik (Seoul)

  • Asien-Pazifik (Tokio)

  • Asien-Pazifik (Singapur)

  • Asien-Pazifik (Sydney)

  • Kanada (Zentral)

  • Europe (Frankfurt)

  • Europa (Irland)

  • Europe (London)

  • Europe (Paris)

  • Europa (Stockholm)

  • Südamerika (São Paulo)

Anforderungen an die Aufgabendefinition

Um Neuron auf Amazon bereitzustellenECS, 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. 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
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