

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Definizioni delle attività di Amazon ECS per i carichi di lavoro di machine learning di AWS Neuron
<a name="ecs-inference"></a>

Puoi registrare istanze [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 e [Amazon EC2](https://aws.amazon.com/ec2/instance-types/inf2/) Inf2 nei](https://aws.amazon.com/ec2/instance-types/inf1/) tuoi cluster per carichi di lavoro di machine learning.

[Le istanze Amazon EC2 Trn1 e Trn2 sono alimentate da chip Trainium.AWS](https://aws.amazon.com/ai/machine-learning/trainium/) Queste istanze offrono addestramento ad alte prestazioni e a basso costo per il machine learning nel cloud. Puoi addestrare un modello di inferenza di machine learning utilizzando un framework di machine learning con AWS Neuron su un'istanza Trn1 o Trn2. Quindi, puoi eseguire il modello su un'istanza Inf1 o un'istanza Inf2 per utilizzare l'accelerazione dei chip Inferentia. AWS 

Le istanze Inf1 e Inf2 di Amazon EC2 si basano sui chip [AWS Inferentia](https://aws.amazon.com/ai/machine-learning/inferentia/), che offrono prestazioni elevate e inferenze a costi contenuti nel cloud.

I modelli di machine learning vengono implementati in container utilizzando [AWS Neuron](https://aws.amazon.com/ai/machine-learning/neuron/), ovvero un Software Developer Kit (SDK) specializzato. L'SDK è composto da un compilatore, un runtime e strumenti di profilazione che ottimizzano le prestazioni di apprendimento automatico dei chip di apprendimento automatico. AWS AWS Neuron supporta i più diffusi framework di machine learning come TensorFlow PyTorch, e Apache MXNet.

## Considerazioni
<a name="ecs-inference-considerations"></a>

Prima di iniziare a implementare Neuron su Amazon ECS, tieni presente quanto segue:
+ I tuoi cluster possono contenere un mix di Trn1, Trn2, Inf1, Inf2 e altre istanze.
+ È necessaria un'applicazione Linux in un contenitore che utilizzi un framework di apprendimento automatico che supporti Neuron. AWS 
**Importante**  
Le applicazioni che utilizzano altri framework potrebbero non avere prestazioni migliorate sulle istanze Trn1, Trn2, Inf1 e Inf2.
+ Puoi eseguire soltanto un'attività di inferenza o di addestramento all'inferenza su ogni chip [AWS Trainium](https://aws.amazon.com/ai/machine-learning/trainium/) o [AWS Inferentia](https://aws.amazon.com/ai/machine-learning/inferentia/). Per Inf1, ogni chip ne ha 4. NeuronCores Per Trn1, Trn2 e Inf2 ogni chip ne ha 2. NeuronCores Puoi eseguire tante attività quanti sono i chip disponibili per ciascuna delle tue istanze Trn1, Trn2, Inf1 e Inf2.
+ Durante l'esecuzione di un servizio o di un'attività autonoma, puoi utilizzare gli attributi del tipo di istanza quando configuri i vincoli di posizionamento dell'attività. Ciò garantisce che l'attività venga avviata sull'istanza di container specificata. In questo modo è possibile ottimizzare l'utilizzo complessivo delle risorse e garantire che le attività per i carichi di lavoro di inferenza si trovino sulle istanze Trn1, Trn2, Inf1 e Inf2. Per ulteriori informazioni, consulta [In che modo Amazon ECS colloca le attività sulle istanze dei container](task-placement.md).

  Nell'esempio seguente viene eseguita un'attività su una istanza `Inf1.xlarge` sul cluster `default`.

  ```
  aws ecs run-task \
       --cluster default \
       --task-definition ecs-inference-task-def \
       --placement-constraints type=memberOf,expression="attribute:ecs.instance-type == Inf1.xlarge"
  ```
+ I requisiti di risorse Neuron non possono essere definiti in una definizione di attività. Invece, configurate un contenitore per utilizzare chip AWS Trainium o Inferentia specifici disponibili sull'istanza del contenitore host. AWS Puoi farlo usando il parametro `linuxParameters` e specificando i dettagli del dispositivo. Per ulteriori informazioni, consulta [Requisiti di definizione di attività](#ecs-inference-requirements).

## Usa l'AMI Amazon ECS-optimized Amazon Linux 2023 (Neuron)
<a name="ecs-inference-ami2023"></a>

Amazon ECS fornisce un'AMI ottimizzata per Amazon ECS basata su Amazon Linux 2023 per carichi di lavoro AWS Trainium e AWS Inferentia. Viene fornito con i driver AWS Neuron e il runtime per Docker. Questa AMI semplifica l'esecuzione dei carichi di lavoro di inferenza di machine learning su Amazon ECS.

Ti consigliamo di utilizzare l'AMI Amazon ECS-optimized Amazon Linux 2023 (Neuron) all'avvio delle istanze Amazon EC2 Trn1, Inf1 e Inf2. 

Puoi recuperare l'attuale AMI Amazon ECS-optimized Amazon Linux 2023 (Neuron) usando il AWS CLI comando seguente.

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

## Requisiti di definizione di attività
<a name="ecs-inference-requirements"></a>

Per distribuire Neuron su Amazon ECS, la definizione dell'attività deve contenere la definizione del contenitore per un contenitore predefinito che serve il modello di inferenza per. TensorFlow È fornito da AWS Deep Learning Containers. Questo contenitore contiene il runtime AWS Neuron e l'applicazione TensorFlow Serving. All'avvio, questo contenitore recupera il modello da Amazon S3, avvia TensorFlow Neuron Serving con il modello salvato e attende le richieste di previsione. Nell'esempio seguente, l'immagine del contenitore ha 1.15 e Ubuntu 18.04. TensorFlow È disponibile un elenco completo di Deep Learning Containers predefiniti ottimizzati per Neuron. GitHub Per ulteriori informazioni, consulta [Using AWS TensorFlow Neuron](https://docs.aws.amazon.com/dlami/latest/devguide/tutorial-inferentia-tf-neuron-serving.html) Serving.

```
763104351884.dkr.ecr.us-east-1.amazonaws.com/tensorflow-inference-neuron:1.15.4-neuron-py37-ubuntu18.04
```

In alternativa, puoi creare la tua immagine di container sidecar di Neuron. Per ulteriori informazioni, consulta [Tutorial: Neuron TensorFlow Serving](https://github.com/aws-neuron/aws-neuron-sdk/blob/master/frameworks/tensorflow/tensorflow-neuron/tutorials/tutorials-tensorflow-utilizing-neuron-capabilities.rst) nella Guida per gli *AWS Deep Learning AMIs sviluppatori*.

La definizione di attività deve essere specifica per il tipo di istanza. È necessario configurare un contenitore per utilizzare dispositivi AWS Trainium o AWS Inferentia specifici disponibili sull'istanza del contenitore host. Puoi farlo usando il parametro `linuxParameters`. Per una definizione di attività di esempio, vedere. [Specificare l'apprendimento automatico di AWS Neuron in una definizione di attività Amazon ECS](ecs-inference-task-def.md) Nella tabella seguente vengono descritti in dettaglio i chip specifici per ogni tipo di istanza.


| Tipo di istanza | vCPUs | RAM (GiB) | AWS Chip acceleratori ML | Percorsi dispositivi | 
| --- | --- | --- | --- | --- | 
| 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 | 