

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, Amazon EC2 Trn2](https://aws.amazon.com/ec2/instance-types/trn1/), [Amazon EC2](https://aws.amazon.com/ec2/instance-types/trn2/) [Inf1 (Inf1 wird nur beim EC2-Starttyp](https://aws.amazon.com/ec2/instance-types/inf1/) unterstützt) und [Amazon EC2](https://aws.amazon.com/ec2/instance-types/inf2/) Inf2-Instances mit Ihren Clustern für maschinelles Lernen verwenden.

[Amazon EC2 Trn1- und Trn2-Instances werden mit Trainium-Chips betrieben.AWS](https://aws.amazon.com/ai/machine-learning/trainium/) 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](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, 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
<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 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](#ecs-inference-managed).
  + **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](#ecs-inference-ec2).
**Wichtig**  
Verwenden Sie konsistent nur einen Ansatz, um Konflikte zu vermeiden.

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

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**  
`Inf1`Instanzen werden nur beim EC2-Starttyp 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 Instanztypen für Ihre Managed Instance-Workloads auszuwählen. Sie können die folgenden Attribute verwenden, um Neuron-enabled Instances auszuwählen:
+ `acceleratorManufacturers`— Wird verwendet`amazon-web-services`, um Instanzen mit AWS Beschleunigern auszuwählen (einschließlich Inferentia und Trainium).
+ `acceleratorNames`— Verwenden Sie`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 auf der Instanz.

Die folgenden Einschränkungen gelten:
+ Maximal eine Containerdefinition kann angeben `NeuronDevice` in`resourceRequirements`.
+ 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 anzuzeigen`NEURON_DEVICES`.

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