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 apprendimento automatico Neuron
Puoi usare Amazon EC2 Trn1, Amazon EC2 Trn2, Amazon
Le istanze Amazon EC2 Trn1 e Trn2 sono alimentate da chip Trainium.AWS
Le istanze Inf1 e Inf2 di Amazon EC2 si basano sui chip AWS Inferentia
I modelli di machine learning vengono implementati in container utilizzando AWS Neuron
Considerazioni
Prima di iniziare a implementare Neuron su Amazon ECS, tieni presente quanto segue:
-
A seconda del tipo di avvio, i cluster possono contenere un mix di Trn1, Trn2, Inf1, Inf2 e altre istanze.
-
È necessaria un'applicazione Linux in un contenitore che utilizza 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.
-
Amazon ECS supporta due approcci per configurare l'accesso ai dispositivi Neuron:
-
Allocazione gestita dei dispositivi Neuron: utilizza il
resourceRequirementsparametro con tipoNeuronDevicenella 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. -
Specificazione manuale del dispositivo Neuron: utilizza il
linuxParameters.devicesparametro per specificare in modo esplicito i percorsi dei dispositivi Neuron. Disponibile sia per il tipo di avvio EC2 che per le istanze gestite. Per ulteriori informazioni, consulta Specifiche manuali del dispositivo Neuron.
Importante
Utilizza un solo approccio in modo coerente per evitare conflitti.
-
Allocazione gestita dei dispositivi Neuron
Con Managed Instances, puoi utilizzare il resourceRequirements parametro nella definizione del contenitore per richiedere 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 una sola attività Neuron per istanza.
Nota
Inf1le istanze sono supportate solo nel tipo di avvio EC2. Per utilizzare le istanze Inf1, consulta. Specifiche manuali del dispositivo Neuron
Selezione dell'istanza Neuron
Per selezionare i tipi di Neuron-enabled istanze per i carichi di lavoro delle istanze gestite, utilizza l'instanceRequirementsoggetto nel modello di avvio del provider di capacità. È possibile utilizzare i seguenti attributi per selezionare Neuron-enabled le istanze:
-
acceleratorManufacturers— Utilizzatoamazon-web-servicesper selezionare istanze con AWS acceleratori (include Inferentia e Trainium). -
acceleratorNames— Usa oinferentia2seleziona chiptrainiumacceleratori specificitrainium2. -
allowedInstanceTypes— Usainf*e selezionatrn*i tipi di istanza Neuron per nome.
Nell'esempio seguente viene utilizzato allowedInstanceTypes:
{ "instanceRequirements": { "allowedInstanceTypes": ["inf*", "trn*"] } }
Definizione di attività
Per richiedere dispositivi Neuron nella definizione dell'attività, aggiungi una resourceRequirements voce con tipo NeuronDevice e valore. ALL Ciò offre 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
NeuronDeviceinresourceRequirements. -
Non è possibile combinare
resourceRequirementsil tipoNeuronDeviceelinuxParameters.devicesper i dispositivi Neuron nella stessa definizione di attività.
Dopo l'avvio dell'attività, puoi verificare l'assegnazione del dispositivo Neuron chiamando l'operazione API. DescribeTasks 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 dell'istanza del contenitore.
Per un esempio di definizione dell'attività, vediEsempi di definizioni delle attività Neuron.
Specifiche manuali del dispositivo Neuron
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
Per il tipo di avvio EC2, puoi utilizzare gli attributi del tipo di istanza quando configuri i vincoli di posizionamento delle attività per garantire 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.
Requisiti di definizione di attività
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 | 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 |
Per un esempio di definizione dell'attività, vedereEsempi di definizioni delle attività Neuron.
Istanze gestite
Le istanze gestite utilizzano automaticamente un'AMI che include il driver Neuron. Non è richiesta alcuna configurazione AMI aggiuntiva.
Tipo di avvio EC2
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