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
Puoi utilizzare le istanze Amazon EC2 Trn1
Le istanze Amazon EC2 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 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
resourceRequirementsparametro con il 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. -
Specifica manuale del dispositivo Neuron: utilizza il
linuxParameters.devicesparametro 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.
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 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
Inf1le istanze sono supportate solo nel tipo di avvio EC2. Per utilizzare le istanze Inf1, consulta. Specifiche manuali del dispositivo Neuron
Selezione delle istanze Neuron
Per selezionare i tipi di Neuron-enabled istanze per i carichi di lavoro delle istanze gestite, utilizzate l'instanceRequirementsoggetto nel modello di avvio del fornitore di capacità. È possibile utilizzare i seguenti attributi per selezionare Neuron-enabled le istanze:
-
acceleratorManufacturers— Utilizzatoamazon-web-servicesper selezionare le istanze con AWS acceleratori (include Inferentia e Trainium). -
acceleratorNames— Usainferentia2trainium, o per selezionare chip acceleratori specificitrainium2. -
allowedInstanceTypes— Usainf*etrn*per selezionare i tipi di istanza Neuron per nome.
Nell'esempio seguente viene utilizzato allowedInstanceTypes:
{ "instanceRequirements": { "allowedInstanceTypes": ["inf*", "trn*"] } }
Definizione di attività
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
NeuronDeviceinresourceRequirements. -
Non è possibile combinarli
resourceRequirementscon i dispositivi typeNeuronDeviceelinuxParameters.devicesfor Neuron nella stessa definizione di attività.
Dopo l'avvio dell'attività, puoi verificare l'assegnazione del dispositivo Neuron richiamando l'DescribeTasksoperazione 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à, consultaEsempio 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 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.
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 | 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à, vedereEsempio 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 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