

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Definisi tugas Amazon ECS untuk AWS Beban kerja pembelajaran mesin neuron
<a name="ecs-inference"></a>

[Anda dapat menggunakan [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 [hanya didukung pada tipe peluncuran EC2), dan instans Amazon](https://aws.amazon.com/ec2/instance-types/inf1/) EC2 Inf2 dengan cluster Anda untuk beban kerja pembelajaran mesin.](https://aws.amazon.com/ec2/instance-types/inf2/)

[Instans Amazon EC2 Trn1 dan Trn2 didukung oleh chip Trainium.AWS](https://aws.amazon.com/ai/machine-learning/trainium/) Instans ini memberikan pelatihan berkinerja tinggi dan biaya rendah untuk pembelajaran mesin di cloud. Anda dapat melatih model inferensi pembelajaran mesin menggunakan kerangka pembelajaran mesin dengan AWS Neuron pada instance Trn1 atau Trn2. Kemudian, Anda dapat menjalankan model pada instance Inf1 (Inf1 hanya didukung pada tipe peluncuran EC2), atau instance Inf2 untuk menggunakan akselerasi chip Inferentia. AWS 

Instans Amazon EC2 Inf1 dan instans Inf2 didukung oleh chip [AWS Inferentia. Instans ini memberikan kinerja tinggi dan inferensi](https://aws.amazon.com/ai/machine-learning/inferentia/) biaya terendah di cloud.

Model pembelajaran mesin digunakan ke wadah menggunakan [AWS Neuron](https://aws.amazon.com/ai/machine-learning/neuron/), yang merupakan Kit Pengembang Perangkat Lunak (SDK) khusus. SDK terdiri dari compiler, runtime, dan alat profiling yang mengoptimalkan kinerja machine learning chip machine learning. AWS AWS Neuron mendukung kerangka kerja pembelajaran mesin populer seperti TensorFlow, PyTorch, dan Apache MXNet.

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

Sebelum Anda mulai menerapkan Neuron di Amazon ECS, pertimbangkan hal berikut:
+ Bergantung pada jenis peluncuran, cluster Anda dapat berisi campuran Trn1, Trn2, Inf1, Inf2, dan instance lainnya.
+ Anda memerlukan aplikasi Linux dalam wadah yang menggunakan kerangka pembelajaran mesin yang mendukung AWS Neuron.
**penting**  
Aplikasi yang menggunakan kerangka kerja lain mungkin tidak meningkatkan kinerja pada instance Trn1, Trn2, Inf1, dan Inf2.
+ Amazon ECS mendukung dua pendekatan untuk mengonfigurasi akses perangkat Neuron:
  + **Alokasi perangkat Neuron Terkelola** — Gunakan `resourceRequirements` parameter dengan tipe `NeuronDevice` dalam definisi kontainer Anda. Amazon ECS secara otomatis menemukan dan menetapkan perangkat Neuron ke wadah Anda. Hanya tersedia di Instans Terkelola. Untuk informasi selengkapnya, lihat [Alokasi perangkat Neuron terkelola](#ecs-inference-managed).
  + **Spesifikasi perangkat Neuron Manual** — Gunakan `linuxParameters.devices` parameter untuk secara eksplisit menentukan jalur perangkat Neuron. Tersedia pada tipe peluncuran EC2 dan Instans Terkelola. Untuk informasi selengkapnya, lihat [Spesifikasi perangkat Neuron manual](#ecs-inference-ec2).
**penting**  
Gunakan hanya satu pendekatan secara konsisten untuk menghindari konflik.

## Alokasi perangkat Neuron terkelola
<a name="ecs-inference-managed"></a>

Dengan Instans Terkelola, Anda dapat menggunakan `resourceRequirements` parameter dalam definisi container untuk meminta perangkat Neuron. Amazon ECS secara otomatis menemukan perangkat Neuron pada instans, menetapkannya ke tugas Anda, dan mengonfigurasi wadah dengan akses ke semua perangkat Neuron pada instance. Karena tugas tersebut memerlukan akses eksklusif ke semua perangkat, hanya satu tugas Neuron yang berjalan per instance.

**catatan**  
`Inf1`instance hanya didukung pada tipe peluncuran EC2. Untuk menggunakan instance Inf1, lihat. [Spesifikasi perangkat Neuron manual](#ecs-inference-ec2)

### Pemilihan contoh neuron
<a name="ecs-inference-managed-instance-selection"></a>

Untuk memilih jenis Neuron-enabled instans untuk beban kerja Instans Terkelola, gunakan `instanceRequirements` objek dalam templat peluncuran penyedia kapasitas. Anda dapat menggunakan atribut berikut untuk memilih Neuron-enabled instance:
+ `acceleratorManufacturers`— Gunakan `amazon-web-services` untuk memilih instance dengan AWS akselerator (termasuk Inferentia dan Trainium).
+ `acceleratorNames`— Gunakan`inferentia2`,`trainium`, atau `trainium2` untuk memilih chip akselerator tertentu.
+ `allowedInstanceTypes`— Gunakan `inf*` dan `trn*` untuk memilih jenis instance Neuron berdasarkan nama.

Contoh berikut menggunakan `allowedInstanceTypes`:

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

### Definisi tugas
<a name="ecs-inference-managed-task-def"></a>

Untuk meminta perangkat Neuron dalam definisi tugas Anda, tambahkan `resourceRequirements` entri dengan jenis `NeuronDevice` dan nilai`ALL`. Ini memberi wadah akses eksklusif ke semua perangkat Neuron pada instance.

Batasan berikut berlaku:
+ Paling banyak satu definisi kontainer dapat menentukan `NeuronDevice` di`resourceRequirements`.
+ Anda tidak dapat menggabungkan `resourceRequirements` dengan tipe `NeuronDevice` dan `linuxParameters.devices` untuk perangkat Neuron dalam definisi tugas yang sama.

Setelah tugas dimulai, Anda dapat memverifikasi penetapan perangkat Neuron dengan memanggil operasi `DescribeTasks` API. Respons mencakup `neuronDeviceIds` bidang pada setiap wadah yang menunjukkan ID perangkat Neuron yang ditetapkan. Anda juga dapat memanggil operasi `DescribeContainerInstances` API untuk melihat `NEURON_DEVICES` di `registeredResources` dan `remainingResources` bidang untuk instance container.

Untuk contoh definisi tugas, lihat[Contoh definisi tugas Neuron](ecs-inference-task-def.md).

## Spesifikasi perangkat Neuron manual
<a name="ecs-inference-ec2"></a>

Dengan pendekatan ini, Anda secara manual menentukan jalur perangkat AWS Trainium atau AWS Inferentia dalam definisi tugas Anda menggunakan parameter. `linuxParameters.devices` Pendekatan ini bekerja pada tipe peluncuran EC2 dan Instans Terkelola.

[Hanya satu tugas inferensi atau pelatihan inferensi yang dapat dijalankan pada setiap chip [AWS Trainium](https://aws.amazon.com/ai/machine-learning/trainium/) atau Inferentia.AWS](https://aws.amazon.com/ai/machine-learning/inferentia/) Anda dapat menjalankan tugas sebanyak mungkin karena ada chip pada instance dengan menetapkan perangkat yang berbeda untuk setiap tugas.

Untuk tipe peluncuran EC2, Anda dapat menggunakan atribut tipe instans saat mengonfigurasi batasan penempatan tugas untuk memastikan bahwa tugas diluncurkan pada jenis instans yang Anda tentukan. Untuk informasi selengkapnya, lihat [Cara Amazon ECS Menempatkan Tugas di Instans Kontainer](task-placement.md).

### Persyaratan ketentuan tugas
<a name="ecs-inference-requirements"></a>

Definisi tugas harus spesifik untuk satu jenis instance. Anda harus mengonfigurasi wadah untuk menggunakan perangkat AWS Trainium atau AWS Inferentia tertentu yang tersedia di instance wadah host. Anda dapat melakukannya dengan menggunakan `linuxParameters` parameter. Tabel berikut merinci chip yang spesifik untuk setiap jenis instance.


| Tipe Instans | vCPUs | RAM (GiB) | AWS Chip akselerator mL | Jalur Perangkat | 
| --- | --- | --- | --- | --- | 
| 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 | 

Untuk contoh definisi tugas, lihat[Contoh definisi tugas Neuron](ecs-inference-task-def.md).

### Instans Terkelola
<a name="ecs-inference-manual-mi"></a>

Instans Terkelola secara otomatis menggunakan AMI yang menyertakan driver Neuron. Tidak diperlukan konfigurasi AMI tambahan.

### Jenis peluncuran EC2
<a name="ecs-inference-manual-ec2"></a>

Amazon ECS menyediakan AMI Amazon ECS yang dioptimalkan yang didasarkan pada Amazon Linux 2023 untuk beban kerja AWS Trainium dan Inferentia. AWS Muncul dengan driver AWS Neuron dan runtime untuk Docker. AMI ini membuat menjalankan beban kerja inferensi pembelajaran mesin lebih mudah di Amazon ECS.

Sebaiknya gunakan AMI Amazon ECS-optimized Amazon Linux 2023 (Neuron) saat meluncurkan instans Amazon EC2 Trn1, Inf1, dan Inf2 Anda. 

Anda dapat mengambil AMI Amazon ECS-optimized Amazon Linux 2023 (Neuron) saat ini menggunakan AWS CLI perintah berikut.

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