

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 AWS Carichi di lavoro di machine learning Neuron
<a name="ecs-inference"></a>

Puoi utilizzare le istanze [ Amazon EC2 Trn1](https://aws.amazon.com/ec2/instance-types/trn1/), Amazon EC2 Trn2, [ Amazon EC2 Inf1 [ (Inf1 è supportato solo sul ](https://aws.amazon.com/ec2/instance-types/inf1/) tipo di ](https://aws.amazon.com/ec2/instance-types/trn2/) avvio EC2) e Amazon EC2 Inf2 con i tuoi cluster per carichi di lavoro di machine learning. [https://aws.amazon.com/ec2/instance-types/inf2/](https://aws.amazon.com/ec2/instance-types/inf2/)

Le istanze Amazon EC2 [AWS](https://aws.amazon.com/ai/machine-learning/trainium/) Trn1 e Trn2 sono alimentate da chip 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 (Inf1 è supportato solo sul tipo di avvio EC2) o su 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 è costituito 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, e Apache MXNet. PyTorch

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

Prima di iniziare a implementare Neuron su Amazon ECS, tieni presente quanto segue:
+ A seconda del tipo di avvio, i cluster possono contenere una combinazione di Trn1, Trn2, Inf1, Inf2 e altre istanze.
+ È necessaria un'applicazione Linux in un contenitore che utilizzi un framework di machine learning che supporti Neuron. AWS 
**Importante**  
Le applicazioni che utilizzano altri framework potrebbero non avere prestazioni migliorate sulle istanze Trn1, Trn2, Inf1 e Inf2.
+ Amazon ECS supporta due approcci per configurare l'accesso ai dispositivi Neuron:
  + **Allocazione gestita dei dispositivi Neuron**: utilizza il `resourceRequirements` parametro con il tipo `NeuronDevice` nella definizione del contenitore. Amazon ECS rileva e assegna automaticamente i dispositivi Neuron ai tuoi contenitori. Disponibile solo su istanze gestite. Per ulteriori informazioni, consulta [Allocazione gestita dei dispositivi Neuron](#ecs-inference-managed).
  + **Specifica manuale del dispositivo Neuron**: utilizza il `linuxParameters.devices` parametro per specificare esplicitamente i percorsi dei dispositivi Neuron. Disponibile sia sul tipo di avvio EC2 che sulle istanze gestite. Per ulteriori informazioni, consulta [Specifiche manuali del dispositivo Neuron](#ecs-inference-ec2).
**Importante**  
Utilizza un solo approccio in modo coerente per evitare conflitti.

## Allocazione gestita dei dispositivi Neuron
<a name="ecs-inference-managed"></a>

Con Managed Instances, puoi utilizzare il `resourceRequirements` parametro nella definizione del contenitore per richiedere i dispositivi Neuron. Amazon ECS rileva automaticamente i dispositivi Neuron sull'istanza, li assegna all'attività e configura il contenitore con accesso a tutti i dispositivi Neuron sull'istanza. Poiché l'attività richiede l'accesso esclusivo a tutti i dispositivi, viene eseguita solo un'attività Neuron per istanza.

**Nota**  
`Inf1`le istanze sono supportate solo nel tipo di avvio EC2. Per utilizzare le istanze Inf1, consulta. [Specifiche manuali del dispositivo Neuron](#ecs-inference-ec2)

### Selezione delle istanze Neuron
<a name="ecs-inference-managed-instance-selection"></a>

Per selezionare i tipi di Neuron-enabled istanze per i carichi di lavoro delle istanze gestite, utilizzate l'`instanceRequirements`oggetto nel modello di avvio del fornitore di capacità. È possibile utilizzare i seguenti attributi per selezionare Neuron-enabled le istanze:
+ `acceleratorManufacturers`— Utilizzato `amazon-web-services` per selezionare le istanze con AWS acceleratori (include Inferentia e Trainium).
+ `acceleratorNames`— Usa `inferentia2``trainium`, o per selezionare chip acceleratori specifici`trainium2`.
+ `allowedInstanceTypes`— Usa `inf*` e `trn*` per selezionare i tipi di istanza Neuron per nome.

Nell'esempio seguente viene utilizzato `allowedInstanceTypes`:

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

### Definizione di attività
<a name="ecs-inference-managed-task-def"></a>

Per richiedere i dispositivi Neuron nella definizione dell'attività, aggiungete una `resourceRequirements` voce con tipo `NeuronDevice` e valore. `ALL` Ciò fornisce al contenitore l'accesso esclusivo a tutti i dispositivi Neuron sull'istanza.

Vengono applicati i vincoli seguenti:
+ È possibile specificare al massimo una definizione di contenitore `NeuronDevice` in`resourceRequirements`.
+ Non è possibile combinarli `resourceRequirements` con i dispositivi type `NeuronDevice` e `linuxParameters.devices` for Neuron nella stessa definizione di attività.

Dopo l'avvio dell'attività, puoi verificare l'assegnazione del dispositivo Neuron richiamando l'`DescribeTasks`operazione API. La risposta include un `neuronDeviceIds` campo su ogni contenitore che mostra gli ID dei dispositivi Neuron assegnati. Puoi anche chiamare l'operazione `DescribeContainerInstances` API per visualizzarla `NEURON_DEVICES` nei `remainingResources` campi `registeredResources` e per l'istanza del contenitore.

Per un esempio di definizione dell'attività, consulta[Esempio di definizioni delle attività Neuron](ecs-inference-task-def.md).

## Specifiche manuali del dispositivo Neuron
<a name="ecs-inference-ec2"></a>

Con questo approccio, specificate manualmente i percorsi dei dispositivi AWS Trainium o AWS Inferentia nella definizione dell'attività utilizzando il parametro. `linuxParameters.devices` Questo approccio funziona sia sul tipo di avvio EC2 che sulle istanze gestite.

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/). È possibile eseguire tante attività quanti sono i chip presenti sull'istanza assegnando dispositivi diversi a ciascuna attività.

Per il tipo di avvio EC2, puoi utilizzare gli attributi del tipo di istanza quando configuri i vincoli di posizionamento dell'attività per assicurarti che l'attività venga avviata sul tipo di istanza specificato. Per ulteriori informazioni, consulta [In che modo Amazon ECS colloca le attività sulle istanze dei container](task-placement.md).

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

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`. Nella tabella seguente vengono descritti in dettaglio i chip specifici per ogni tipo di istanza.


| Tipo di istanza | vCPU | 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 | 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 | 

Per un esempio di definizione delle attività, vedere[Esempio di definizioni delle attività Neuron](ecs-inference-task-def.md).

### Istanze gestite
<a name="ecs-inference-manual-mi"></a>

Le istanze gestite utilizzano automaticamente un'AMI che include il driver Neuron. Non è richiesta alcuna configurazione AMI aggiuntiva.

### Tipo di avvio EC2
<a name="ecs-inference-manual-ec2"></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 e il runtime AWS Neuron per Docker. Questa AMI semplifica l'esecuzione dei carichi di lavoro di inferenza di machine learning su Amazon ECS.

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

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

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