

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
<a name="ecs-inference"></a>

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

Die Amazon EC2 [AWS Trn1 ](https://aws.amazon.com/ai/machine-learning/trainium/) - 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](https://aws.amazon.com/ai/machine-learning/inferentia/) angetrieben. Sie bieten hohe Leistung und niedrigste Kosten für Inferenzen in der Cloud.

Machine-Learning-Modelle werden auf Containern mit [AWS Neuron](https://aws.amazon.com/ai/machine-learning/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
<a name="ecs-inference-considerations"></a>

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](#ecs-inference-managed).
  + **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](#ecs-inference-ec2).
**Wichtig**  
Verwenden Sie konsequent nur einen Ansatz, um Konflikte zu vermeiden.

## Verwaltete Neuron-Gerätezuweisung
<a name="ecs-inference-managed"></a>

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**  
`Inf1`Instances werden nur für den Starttyp EC2 unterstützt. Informationen zur Verwendung von Inf1-Instances finden Sie unter. [Manuelle Neuron-Gerätespezifikation](#ecs-inference-ec2)

### Auswahl der Neuron-Instanz
<a name="ecs-inference-managed-instance-selection"></a>

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 verwendet`amazon-web-services`, um Instanzen mit AWS Beschleunigern auszuwählen (einschließlich Inferentia und Trainium).
+ `acceleratorNames`— Verwende`inferentia2`, oder`trainium`, um bestimmte Beschleunigerchips `trainium2` auszuwählen.
+ `allowedInstanceTypes`— Verwenden Sie `inf*` und`trn*`, um Neuron-Instanztypen nach Namen auszuwählen.

Im folgenden Beispiel wird verwende `allowedInstanceTypes`:

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

### Aufgabendefinition
<a name="ecs-inference-managed-task-def"></a>

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 unter[Beispiel für Neuron-Aufgabendefinitionen](ecs-inference-task-def.md).

## Manuelle Neuron-Gerätespezifikation
<a name="ecs-inference-ec2"></a>

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](https://aws.amazon.com/ai/machine-learning/trainium/)- oder [AWS Inferentia](https://aws.amazon.com/ai/machine-learning/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](task-placement.md).

### Anforderungen an die Aufgabendefinition
<a name="ecs-inference-requirements"></a>

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 unter[Beispiel für Neuron-Aufgabendefinitionen](ecs-inference-task-def.md).

### Verwaltete Instances
<a name="ecs-inference-manual-mi"></a>

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

### EC2-Starttyp
<a name="ecs-inference-manual-ec2"></a>

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
```