

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

# Terapkan ke beberapa tipe instans dengan kumpulan instance
<a name="realtime-endpoints-heterogeneous"></a>

Saat menerapkan model ke titik akhir SageMaker AI, Anda biasanya menentukan satu jenis instans untuk varian produksi. Jika jenis instans tersebut tidak tersedia di Zona Ketersediaan target, penerapan gagal dengan kesalahan kapasitas yang tidak mencukupi (ICE), dan Anda harus mencoba lagi secara manual dengan jenis instans yang berbeda.

Dengan kumpulan instans, Anda dapat menentukan daftar terurut hingga lima jenis instans untuk varian produksi. SageMaker AI mencoba menyediakan instance yang dimulai dengan tipe prioritas tertinggi (prioritas 1) dan secara otomatis kembali ke tipe prioritas rendah ketika kapasitas tidak tersedia. Ini menghilangkan kebutuhan untuk mencoba lagi secara manual dan meningkatkan ketersediaan titik akhir.

Kumpulan instans mendukung titik akhir inferensi real-time dan asinkron. Anda dapat menggunakannya dengan titik akhir model tunggal dan dengan komponen inferensi.

Langkah-langkah berikut menjelaskan cara kerja penyediaan kumpulan instance:

1. SageMaker AI mencoba menyediakan instance dari kumpulan prioritas tertinggi (prioritas 1).

1. Jika SageMaker AI menemukan kesalahan kapasitas yang tidak mencukupi (ICE) untuk jenis instans saat ini, secara otomatis akan kembali ke kumpulan berikutnya dalam urutan prioritas.

1. Ini berlanjut hingga jumlah instance yang diperlukan disediakan, semua kumpulan habis, atau total batas waktu penyediaan () tercapai. `VariantInstanceProvisionTimeoutInSeconds`

**Topics**
+ [Siapkan titik akhir dengan kumpulan instance](#heterogeneous-endpoint-setup)
+ [Pantau kolam contoh](#heterogeneous-endpoint-observability)
+ [Auto-scaling dengan kolam contoh](#heterogeneous-endpoint-autoscaling)

## Siapkan titik akhir dengan kumpulan instance
<a name="heterogeneous-endpoint-setup"></a>

Untuk menggunakan kumpulan instance, Anda mengganti `InstanceType` parameter dalam varian produksi Anda dengan `InstancePools` daftar. Setiap entri menentukan jenis instance dan prioritas (1 sampai 5, di mana 1 adalah yang tertinggi). Anda dapat mengatur `VariantInstanceProvisionTimeoutInSeconds` (300 hingga 3600 detik) secara opsional untuk mengontrol total waktu yang dihabiskan SageMaker AI untuk mencoba menyediakan instance di semua kumpulan sebelum operasi gagal.

### Real-time titik akhir dengan satu model
<a name="heterogeneous-endpoint-setup-realtime"></a>

Contoh berikut membuat konfigurasi endpoint dengan dua kumpulan instance. Jika `ml.g6.2xlarge` instance tidak tersedia, SageMaker AI kembali ke. `ml.g6e.2xlarge`

```
import boto3

sagemaker_client = boto3.client("sagemaker")

endpoint_config_name = "my-heterog-endpoint-config"

sagemaker_client.create_endpoint_config(
    EndpointConfigName=endpoint_config_name,
    ProductionVariants=[
        {
            "VariantName": "AllTraffic",
            "ModelName": "my-model",
            "InitialInstanceCount": 2,
            "InstancePools": [
                {
                    "InstanceType": "ml.g6.2xlarge",
                    "Priority": 1,
                },
                {
                    "InstanceType": "ml.g6e.2xlarge",
                    "Priority": 2,
                },
            ],
            "VariantInstanceProvisionTimeoutInSeconds": 600,
        }
    ],
)

sagemaker_client.create_endpoint(
    EndpointName="my-heterog-endpoint",
    EndpointConfigName=endpoint_config_name,
)
```

Anda juga dapat menggunakan `ModelNameOverride` parameter di setiap kumpulan untuk menentukan model berbeda yang dioptimalkan untuk jenis instance tersebut. Misalnya, Anda dapat menerapkan model yang dikompilasi untuk GPU pada satu jenis instans dan versi yang tidak dikompilasi di yang lain.

### Real-time titik akhir dengan komponen inferensi
<a name="heterogeneous-endpoint-setup-ic"></a>

Saat Anda menggunakan komponen inferensi dengan kumpulan instance, Anda memiliki dua opsi untuk menentukan spesifikasi:
+ **Single `Specification`** — Gunakan model dan konfigurasi sumber daya yang sama di semua jenis instance di kumpulan instans titik akhir. Ini berfungsi ketika model dapat berjalan pada salah satu jenis instance yang disediakan dengan persyaratan sumber daya yang sama.
+ **Multiple `Specifications`** — Gunakan `Specifications` parameter (jamak) untuk menentukan model atau konfigurasi sumber daya yang berbeda untuk setiap jenis instance. Setiap spesifikasi menyertakan `InstanceType` bidang yang memetakannya ke jenis instance di kumpulan instance titik akhir.

Contoh berikut membuat komponen inferensi dengan spesifikasi per-instance-type:

```
sagemaker_client.create_inference_component(
    InferenceComponentName="my-ic",
    EndpointName="my-heterog-endpoint",
    VariantName="AllTraffic",
    Specifications=[
        {
            "InstanceType": "ml.g6.2xlarge",
            "ModelName": "my-model-g6",
            "Container": {
                "Image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/my-image:latest",
            },
            "ComputeResourceRequirements": {
                "NumberOfAcceleratorDevicesRequired": {{1}},
                "MinMemoryRequiredInMb": {{4096}},
            },
        },
        {
            "InstanceType": "ml.g6e.2xlarge",
            "ModelName": "my-model-g6e",
            "Container": {
                "Image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/my-image:latest",
            },
            "ComputeResourceRequirements": {
                "NumberOfAcceleratorDevicesRequired": {{1}},
                "MinMemoryRequiredInMb": {{8192}},
            },
        },
    ],
    RuntimeConfig={
        "CopyCount": 2,
    },
)
```

## Pantau kolam contoh
<a name="heterogeneous-endpoint-observability"></a>

 CloudWatch Metrik yang ada yang digabungkan di semua instance dalam varian — seperti`Invocations`,`ModelLatency`, dan `CPUUtilization` — terus bekerja dengan cara yang sama saat Anda menggunakan kumpulan instance. Selain itu, CloudWatch menerbitkan metrik ini dengan `InstanceType` dimensi sehingga Anda dapat memantau kinerja untuk setiap jenis instans secara terpisah.

### Per-instance-type metrik
<a name="heterogeneous-observability-per-type"></a>

Saat varian produksi menggunakan kumpulan instans, kombinasi dimensi berikut tersedia CloudWatch untuk pemantauan tipe per instans:


| Kombinasi dimensi | Kasus penggunaan | 
| --- | --- | 
| EndpointName, VariantName, InstanceType | Filter metrik tingkat titik akhir dan pemanggilan (sepertiCPUUtilization,Invocations,ModelLatency) untuk jenis instance tertentu dalam varian. | 
| InferenceComponentName, InstanceType | Filter metrik komponen inferensi untuk jenis instance tertentu. Gunakan ini untuk membandingkan kinerja komponen inferensi yang sama di berbagai jenis instance. | 

Dimensi ini tersedia untuk metrik standar dan CloudWatch metrik yang disempurnakan. Untuk daftar lengkap metrik yang tersedia, lihat [Metrik Amazon SageMaker AI di Amazon CloudWatch](monitoring-cloudwatch.md) dan[Amazon SageMaker AI meningkatkan metrik untuk titik akhir inferensi](monitoring-cloudwatch-enhanced-metrics.md).

### Periksa distribusi armada
<a name="heterogeneous-observability-distribution"></a>

Untuk melihat jumlah instans saat ini untuk setiap kumpulan, panggil [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html)API. `ProductionVariants`Dalam respon termasuk `InstancePools` daftar dengan jumlah saat ini untuk setiap jenis instance. Ini menunjukkan komposisi armada Anda setelah penyediaan, termasuk instans fallback apa pun dari kumpulan dengan prioritas lebih rendah.

Jika Anda menggunakan komponen inferensi, [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeInferenceComponent.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeInferenceComponent.html)respons menyertakan `PlacementStatus` bidang dalam ringkasan konfigurasi runtime yang menunjukkan jumlah salinan per jenis instance. Gunakan ini untuk memahami bagaimana salinan komponen inferensi didistribusikan di seluruh jenis instance di armada Anda.

## Auto-scaling dengan kolam contoh
<a name="heterogeneous-endpoint-autoscaling"></a>

Auto-scaling dengan kumpulan instance mengikuti proses yang sama dengan auto-scaling titik akhir standar. Anda mendaftarkan target yang dapat diskalakan, menentukan kebijakan penskalaan, dan menerapkannya ke titik akhir Anda. Untuk pengaturan auto-scaling umum, lihat. [Penskalaan otomatis model Amazon SageMaker AI](endpoint-auto-scaling.md)

Perbedaan utamanya adalah bagaimana SageMaker AI menyediakan dan merilis instance saat peristiwa penskalaan memicu:

Skala keluar (menambahkan instance)  
SageMaker Instance ketentuan AI dimulai dengan kumpulan prioritas tertinggi (nilai prioritas terendah). Jika SageMaker AI mengalami kesalahan kapasitas yang tidak mencukupi untuk jenis instans saat ini, AI secara otomatis kembali ke kumpulan berikutnya dalam urutan prioritas. SageMaker AI terus mencoba lagi di seluruh kumpulan hingga instance disediakan atau totalnya tercapai. `VariantInstanceProvisionTimeoutInSeconds`

Skala (menghapus instance)  
SageMaker AI merilis instans yang dimulai dengan kumpulan prioritas terendah (nilai prioritas tertinggi). Jenis instans pilihan dan prioritas lebih tinggi tetap berjalan selama mungkin, dan instans fallback dirilis terlebih dahulu.

### Gunakan metrik penskalaan yang telah ditentukan
<a name="heterogeneous-autoscaling-predefined"></a>

Metrik penskalaan yang telah ditentukan sebelumnya seperti `SageMakerVariantInvocationsPerInstance` terus bekerja dengan kumpulan instance. Metrik ini digabungkan di semua tipe instance dalam varian, sehingga perilaku penskalaan sama dengan titik akhir standar. Ini adalah pendekatan paling sederhana ketika semua jenis instans di kolam Anda memiliki kapasitas yang sama.

Untuk pengaturan kebijakan pelacakan target dan penskalaan langkah, lihat[Penskalaan otomatis model Amazon SageMaker AI](endpoint-auto-scaling.md).

### Gunakan metrik kustom tertimbang untuk armada campuran
<a name="heterogeneous-autoscaling-weighted"></a>

Jika kumpulan instans berisi tipe instans dengan kapasitas komputasi yang berbeda, Anda dapat menggunakan matematika CloudWatch metrik untuk membuat sinyal penskalaan tertimbang. Ini memungkinkan Anda mengontrol seberapa besar kontribusi beban setiap jenis instans terhadap keputusan penskalaan secara keseluruhan.

Contoh berikut membuat kebijakan pelacakan target yang menggunakan rata-rata tertimbang `ConcurrentRequestsPerModel` di dua jenis instans. Bobot menentukan seberapa sensitif kebijakan penskalaan terhadap beban setiap jenis:

```
import boto3

aas_client = boto3.client("application-autoscaling")

# Register the scalable target
aas_client.register_scalable_target(
    ServiceNamespace="sagemaker",
    ResourceId="endpoint/my-heterog-endpoint/variant/AllTraffic",
    ScalableDimension="sagemaker:variant:DesiredInstanceCount",
    MinCapacity=1,
    MaxCapacity=10,
)

# Define target tracking policy with weighted metric math
aas_client.put_scaling_policy(
    PolicyName="weighted-concurrent-requests",
    ServiceNamespace="sagemaker",
    ResourceId="endpoint/my-heterog-endpoint/variant/AllTraffic",
    ScalableDimension="sagemaker:variant:DesiredInstanceCount",
    PolicyType="TargetTrackingScaling",
    TargetTrackingScalingPolicyConfiguration={
        "TargetValue": {{10.0}},
        "CustomizedMetricSpecification": {
            "Metrics": [
                {
                    "Id": "cr_g6",
                    "Label": "ConcurrentRequests-g6-2xlarge",
                    "MetricStat": {
                        "Metric": {
                            "Namespace": "AWS/SageMaker",
                            "MetricName": "ConcurrentRequestsPerModel",
                            "Dimensions": [
                                {"Name": "EndpointName", "Value": "my-heterog-endpoint"},
                                {"Name": "VariantName", "Value": "AllTraffic"},
                                {"Name": "InstanceType", "Value": "ml.g6.2xlarge"},
                            ],
                        },
                        "Stat": "Average",
                    },
                    "ReturnData": False,
                },
                {
                    "Id": "cr_g6e",
                    "Label": "ConcurrentRequests-g6e-2xlarge",
                    "MetricStat": {
                        "Metric": {
                            "Namespace": "AWS/SageMaker",
                            "MetricName": "ConcurrentRequestsPerModel",
                            "Dimensions": [
                                {"Name": "EndpointName", "Value": "my-heterog-endpoint"},
                                {"Name": "VariantName", "Value": "AllTraffic"},
                                {"Name": "InstanceType", "Value": "ml.g6e.2xlarge"},
                            ],
                        },
                        "Stat": "Average",
                    },
                    "ReturnData": False,
                },
                {
                    "Id": "weighted_avg",
                    "Label": "WeightedConcurrentRequests",
                    "Expression": "{{0.5}} * cr_g6 + {{0.5}} * cr_g6e",
                    "ReturnData": True,
                },
            ],
        },
    },
)
```

Dalam contoh ini, `cr_g6` dan `cr_g6e` ambil metrik `ConcurrentRequestsPerModel` per-instance-type. `weighted_avg`Ekspresi menggabungkan mereka dengan bobot yang sama (0,5/0,5). Sesuaikan bobot untuk mengubah cara kebijakan merespons pemuatan pada setiap jenis instans.

**Bagaimana bobot memengaruhi perilaku penskalaan:** Bobot yang lebih tinggi pada tipe instans berarti kebijakan penskalaan *lebih sensitif terhadap* beban tipe tersebut — tidak kurang. Sinyal tipe berbobot lebih rendah dibasahi, sehingga dapat berjalan pada pemanfaatan yang lebih tinggi sebelum memicu peristiwa penskalaan.


| Strategi berat | High-priority jenis toleransi | Low-priority jenis toleransi | Terbaik untuk | 
| --- | --- | --- | --- | 
| Bobot yang lebih tinggi pada prioritas tinggi (0,7/0,3) | Lebih rendah (dilindungi) | Lebih tinggi (berjalan lebih panas) | Melindungi instans yang mahal atau berkapasitas tinggi dari kelebihan beban | 
| Sama (0,5/0,5) | Seimbang | Seimbang | Rekomendasi default untuk sebagian besar beban kerja | 
| Bobot lebih tinggi pada prioritas rendah (0,3/0,7) | Lebih tinggi (berjalan lebih panas) | Lebih rendah (dilindungi) | Mencegah instance fallback yang lebih kecil menjadi jenuh | 

Untuk informasi selengkapnya tentang metrik kustom dengan auto-scaling, lihat. [Tentukan metrik khusus (CloudWatch metrik: CPUUutilization)](endpoint-auto-scaling-add-code-define.md#endpoint-auto-scaling-add-code-custom)