

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

# Buat Multi-Model Endpoint
<a name="create-multi-model-endpoint"></a>

Anda dapat menggunakan konsol SageMaker AI atau AWS SDK for Python (Boto) untuk membuat titik akhir multi-model. Untuk membuat titik akhir yang didukung CPU atau GPU melalui konsol, lihat prosedur konsol di bagian berikut. Jika Anda ingin membuat titik akhir multi-model dengan AWS SDK for Python (Boto), gunakan prosedur CPU atau GPU di bagian berikut. Alur kerja CPU dan GPU serupa tetapi memiliki beberapa perbedaan, seperti persyaratan wadah.

**Topics**
+ [Membuat titik akhir multi-model (konsol)](#create-multi-model-endpoint-console)
+ [Buat titik akhir multi-model menggunakan CPU dengan AWS SDK untuk Python (Boto3)](#create-multi-model-endpoint-sdk-cpu)
+ [Buat titik akhir multi-model menggunakan GPU dengan AWS SDK untuk Python (Boto3)](#create-multi-model-endpoint-sdk-gpu)

## Membuat titik akhir multi-model (konsol)
<a name="create-multi-model-endpoint-console"></a>

Anda dapat membuat titik akhir multi-model yang didukung CPU dan GPU melalui konsol. Gunakan prosedur berikut untuk membuat titik akhir multi-model melalui konsol SageMaker AI.

**Untuk membuat titik akhir multi-model (konsol)**

1. Buka konsol Amazon SageMaker AI di [ https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Pilih ** Model**, dan kemudian dari ** grup ** Inferensi, pilih ** Buat model**. 

1. Untuk nama ** Model**, masukkan nama.

1. Untuk peran ** IAM**, pilih atau buat peran IAM yang memiliki kebijakan I `AmazonSageMakerFullAccess` AM terlampir. 

1.  Di ** bagian definisi ** kontainer, untuk Men ** yediakan artefak model dan opsi gambar inferensi**, pilih ** Gunakan beberapa model**.  
![Bagian halaman Buat model di mana Anda dapat memilih Gunakan beberapa model.](https://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/mme-create-model-ux-2.PNG)

1. Untuk gambar kontainer ** inferensi**, masukkan jalur Amazon ECR untuk gambar kontainer yang Anda inginkan.

   Untuk model GPU, Anda harus menggunakan wadah yang didukung oleh NVIDIA Triton Inference Server. Untuk daftar gambar kontainer yang bekerja dengan titik akhir yang didukung GPU, lihat Kontainer Inferensi [ NVIDIA Triton (hanya dukungan SM). ](https://github.com/aws/deep-learning-containers/blob/master/available_images.md#nvidia-triton-inference-containers-sm-support-only) Untuk informasi selengkapnya tentang Server Inferensi NVIDIA Triton, lihat [ Menggunakan Server Inferensi Triton dengan AI. SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/triton.html)

1. Pilih ** Buat model**.

1. Terapkan titik akhir multi-model Anda seperti yang Anda lakukan pada titik akhir model tunggal. Untuk petunjuk, lihat [Menyebarkan Model ke Layanan Hosting SageMaker AI](ex1-model-deployment.md#ex1-deploy-model).

## Buat titik akhir multi-model menggunakan CPU dengan AWS SDK untuk Python (Boto3)
<a name="create-multi-model-endpoint-sdk-cpu"></a>

Gunakan bagian berikut untuk membuat titik akhir multi-model yang didukung oleh instance CPU. Anda membuat titik akhir multi-model menggunakan Amazon SageMaker AI [`create_model`](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_model), [`create_endpoint_config`](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_endpoint_config), dan [`create_endpoint`](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_endpoint) API sama seperti Anda membuat titik akhir model tunggal, tetapi dengan dua perubahan. Saat mendefinisikan wadah model, Anda harus meneruskan nilai `Mode` parameter baru,`MultiModel`. Anda juga harus meneruskan `ModelDataUrl` bidang yang menentukan awalan di Amazon S3 tempat artefak model berada, bukan jalur ke artefak model tunggal, seperti yang Anda lakukan saat menerapkan model tunggal.

Untuk contoh notebook yang menggunakan SageMaker AI untuk menerapkan beberapa model XGBoost ke titik akhir, lihat [ Multi-Model Notebook Sampel Endpoint XGBoost. ](https://sagemaker-examples.readthedocs.io/en/latest/advanced_functionality/multi_model_xgboost_home_value/xgboost_multi_model_endpoint_home_value.html) 

Prosedur berikut menguraikan langkah-langkah utama yang digunakan dalam sampel tersebut untuk membuat titik akhir multi-model yang didukung CPU.

**Untuk menerapkan model (AWS SDK untuk Python (Boto 3))**

1. Dapatkan wadah dengan gambar yang mendukung penerapan titik akhir multi-model. Untuk daftar algoritma bawaan dan wadah kerangka kerja yang mendukung titik akhir multi-model, lihat. [Algoritma, kerangka kerja, dan instance yang didukung untuk titik akhir multi-model](multi-model-support.md) Untuk contoh ini, kami menggunakan algoritma [K-Nearest Algoritma Tetangga (k-NN)](k-nearest-neighbors.md) bawaan. Kami memanggil fungsi [ utilitas ](https://sagemaker.readthedocs.io/en/stable/) SageMaker Python SDK `image_uris.retrieve()` untuk mendapatkan alamat gambar algoritma bawaan N K-Nearest eighbors.

   ```
   import sagemaker
   region = sagemaker_session.boto_region_name
   image = image_uris.retrieve("knn",region=region)
   container = { 
                 'Image':        image,
                 'ModelDataUrl': 's3://{{<BUCKET_NAME>}}/{{<PATH_TO_ARTIFACTS>}}',
                 'Mode':         'MultiModel'
               }
   ```

1. Dapatkan klien AWS SDK untuk Python (Boto3) SageMaker AI dan buat model yang menggunakan wadah ini.

   ```
   import boto3
   sagemaker_client = boto3.client('sagemaker')
   response = sagemaker_client.create_model(
                 ModelName        = {{'<MODEL_NAME>'}},
                 ExecutionRoleArn = role,
                 Containers       = [container])
   ```

1. (Opsional) Jika Anda menggunakan pipeline inferensi serial, dapatkan wadah tambahan untuk disertakan dalam pipeline, dan sertakan dalam `Containers` argumen: `CreateModel`

   ```
   preprocessor_container = { 
                  'Image': '{{<ACCOUNT_ID>}}.dkr.ecr.{{<REGION_NAME>}}.amazonaws.com/{{<PREPROCESSOR_IMAGE>}}:{{<TAG>}}'
               }
   
   multi_model_container = { 
                 'Image': '{{<ACCOUNT_ID>}}.dkr.ecr.{{<REGION_NAME>}}.amazonaws.com/{{<IMAGE>}}:{{<TAG>}}',
                 'ModelDataUrl': 's3://{{<BUCKET_NAME>}}/{{<PATH_TO_ARTIFACTS>}}',
                 'Mode':         'MultiModel'
               }
   
   response = sagemaker_client.create_model(
                 ModelName        = {{'<MODEL_NAME>'}},
                 ExecutionRoleArn = role,
                 Containers       = [preprocessor_container, multi_model_container]
               )
   ```
**catatan**  
Anda hanya dapat menggunakan satu titik akhir berkemampuan multi-model dalam pipeline inferensi serial.

1. (Opsional) Jika kasus penggunaan Anda tidak mendapat manfaat dari caching model, tetapkan nilai `ModelCacheSetting` bidang `MultiModelConfig` parameter ke`Disabled`, dan sertakan dalam `Container` argumen panggilan ke`create_model`. Nilai `ModelCacheSetting` bidang secara `Enabled` default.

   ```
   container = { 
                   'Image': image, 
                   'ModelDataUrl': 's3://{{<BUCKET_NAME>}}/{{<PATH_TO_ARTIFACTS>}}',
                   'Mode': 'MultiModel' 
                   'MultiModelConfig': {
                           // Default value is 'Enabled'
                           'ModelCacheSetting': 'Disabled'
                   }
              }
   
   response = sagemaker_client.create_model(
                 ModelName        = {{'<MODEL_NAME>'}},
                 ExecutionRoleArn = role,
                 Containers       = [container]
               )
   ```

1. Konfigurasikan titik akhir multi-model untuk model. Sebaiknya konfigurasi titik akhir Anda dengan setidaknya dua instance. Hal ini memungkinkan SageMaker AI untuk menyediakan serangkaian prediksi yang sangat tersedia di beberapa Zona Ketersediaan untuk model.

   ```
   response = sagemaker_client.create_endpoint_config(
                   EndpointConfigName = {{'<ENDPOINT_CONFIG_NAME>'}},
                   ProductionVariants=[
                        {
                           'InstanceType':        'ml.m4.xlarge',
                           'InitialInstanceCount': 2,
                           'InitialVariantWeight': 1,
                           'ModelName':            {{'<MODEL_NAME>'}},
                           'VariantName':          'AllTraffic'
                         }
                   ]
              )
   ```
**catatan**  
Anda hanya dapat menggunakan satu titik akhir berkemampuan multi-model dalam pipeline inferensi serial.

1. Buat titik akhir multi-model menggunakan `EndpointConfigName` parameter `EndpointName` dan.

   ```
   response = sagemaker_client.create_endpoint(
                 EndpointName       = {{'<ENDPOINT_NAME>'}},
                 EndpointConfigName = {{'<ENDPOINT_CONFIG_NAME>'}})
   ```

## Buat titik akhir multi-model menggunakan GPU dengan AWS SDK untuk Python (Boto3)
<a name="create-multi-model-endpoint-sdk-gpu"></a>

Gunakan bagian berikut untuk membuat titik akhir multi-model yang didukung GPU. Anda membuat titik akhir multi-model menggunakan Amazon SageMaker AI [`create_model`](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_model), [`create_endpoint_config`](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_endpoint_config), dan [`create_endpoint`](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_endpoint) API mirip dengan membuat titik akhir model tunggal, tetapi ada beberapa perubahan. Saat mendefinisikan wadah model, Anda harus meneruskan nilai `Mode` parameter baru,`MultiModel`. Anda juga harus meneruskan `ModelDataUrl` bidang yang menentukan awalan di Amazon S3 tempat artefak model berada, bukan jalur ke artefak model tunggal, seperti yang Anda lakukan saat menerapkan model tunggal. Untuk titik akhir multi-model yang didukung GPU, Anda juga harus menggunakan wadah dengan NVIDIA Triton Inference Server yang dioptimalkan untuk berjalan pada instans GPU. Untuk daftar gambar kontainer yang bekerja dengan titik akhir yang didukung GPU, lihat Kontainer Inferensi [ NVIDIA Triton (hanya dukungan SM). ](https://github.com/aws/deep-learning-containers/blob/master/available_images.md#nvidia-triton-inference-containers-sm-support-only)

Untuk contoh buku catatan yang menunjukkan cara membuat titik akhir multi-model yang didukung oleh GPU, lihat Men [ jalankan model pembelajaran mendalam mulitple pada GPU dengan Amazon SageMaker AI Multi-model endpoints (MME). ](https://github.com/aws/amazon-sagemaker-examples/blob/main/multi-model-endpoints/mme-on-gpu/cv/resnet50_mme_with_gpu.ipynb)

Prosedur berikut menguraikan langkah-langkah utama untuk membuat titik akhir multi-model yang didukung GPU.

**Untuk menerapkan model (AWS SDK untuk Python (Boto 3))**

1. Tentukan gambar kontainer. Untuk membuat titik akhir multi-model dengan dukungan GPU untuk ResNet model, tentukan wadah untuk menggunakan gambar Server [ NVIDIA Triton. ](https://docs.aws.amazon.com/sagemaker/latest/dg/triton.html) Wadah ini mendukung titik akhir multi-model dan dioptimalkan untuk berjalan pada instans GPU. Kami memanggil fungsi [ utilitas ](https://sagemaker.readthedocs.io/en/stable/) SageMaker AI Python SDK `image_uris.retrieve()` untuk mendapatkan alamat gambar. Contoh:

   ```
   import sagemaker
   region = sagemaker_session.boto_region_name
   
   // Find the sagemaker-tritonserver image at 
   // https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-triton/resnet50/triton_resnet50.ipynb
   // Find available tags at https://github.com/aws/deep-learning-containers/blob/master/available_images.md#nvidia-triton-inference-containers-sm-support-only
   
   image = "{{<ACCOUNT_ID>}}.dkr.ecr.{{<REGION_NAME>}}.amazonaws.com/sagemaker-tritonserver:{{<TAG>}}".format(
       account_id=account_id_map[region], region=region
   )
   
   container = { 
                 'Image':        image,
                 'ModelDataUrl': 's3://{{<BUCKET_NAME>}}/{{<PATH_TO_ARTIFACTS>}}',
                 'Mode':         'MultiModel',
                 "Environment": {"SAGEMAKER_TRITON_DEFAULT_MODEL_NAME": "resnet"},
               }
   ```

1. Dapatkan klien AWS SDK untuk Python (Boto3) SageMaker AI dan buat model yang menggunakan wadah ini.

   ```
   import boto3
   sagemaker_client = boto3.client('sagemaker')
   response = sagemaker_client.create_model(
                 ModelName        = {{'<MODEL_NAME>'}},
                 ExecutionRoleArn = role,
                 Containers       = [container])
   ```

1. (Opsional) Jika Anda menggunakan pipeline inferensi serial, dapatkan wadah tambahan untuk disertakan dalam pipeline, dan sertakan dalam `Containers` argumen: `CreateModel`

   ```
   preprocessor_container = { 
                  'Image': '{{<ACCOUNT_ID>}}.dkr.ecr.{{<REGION_NAME>}}.amazonaws.com/{{<PREPROCESSOR_IMAGE>}}:{{<TAG>}}'
               }
   
   multi_model_container = { 
                 'Image': '{{<ACCOUNT_ID>}}.dkr.ecr.{{<REGION_NAME>}}.amazonaws.com/{{<IMAGE>}}:{{<TAG>}}',
                 'ModelDataUrl': 's3://{{<BUCKET_NAME>}}/{{<PATH_TO_ARTIFACTS>}}',
                 'Mode':         'MultiModel'
               }
   
   response = sagemaker_client.create_model(
                 ModelName        = {{'<MODEL_NAME>'}},
                 ExecutionRoleArn = role,
                 Containers       = [preprocessor_container, multi_model_container]
               )
   ```
**catatan**  
Anda hanya dapat menggunakan satu titik akhir berkemampuan multi-model dalam pipeline inferensi serial.

1. (Opsional) Jika kasus penggunaan Anda tidak mendapat manfaat dari caching model, tetapkan nilai `ModelCacheSetting` bidang `MultiModelConfig` parameter ke`Disabled`, dan sertakan dalam `Container` argumen panggilan ke`create_model`. Nilai `ModelCacheSetting` bidang secara `Enabled` default.

   ```
   container = { 
                   'Image': image, 
                   'ModelDataUrl': 's3://{{<BUCKET_NAME>}}/{{<PATH_TO_ARTIFACTS>}}',
                   'Mode': 'MultiModel' 
                   'MultiModelConfig': {
                           // Default value is 'Enabled'
                           'ModelCacheSetting': 'Disabled'
                   }
              }
   
   response = sagemaker_client.create_model(
                 ModelName        = {{'<MODEL_NAME>'}},
                 ExecutionRoleArn = role,
                 Containers       = [container]
               )
   ```

1. Konfigurasikan titik akhir multi-model dengan instans yang didukung GPU untuk model. Sebaiknya konfigurasi titik akhir Anda dengan lebih dari satu instans untuk memungkinkan ketersediaan tinggi dan hit cache yang lebih tinggi.

   ```
   response = sagemaker_client.create_endpoint_config(
                   EndpointConfigName = {{'<ENDPOINT_CONFIG_NAME>'}},
                   ProductionVariants=[
                        {
                           'InstanceType':        'ml.g4dn.4xlarge',
                           'InitialInstanceCount': 2,
                           'InitialVariantWeight': 1,
                           'ModelName':            {{'<MODEL_NAME>'}},
                           'VariantName':          'AllTraffic'
                         }
                   ]
              )
   ```

1. Buat titik akhir multi-model menggunakan `EndpointConfigName` parameter `EndpointName` dan.

   ```
   response = sagemaker_client.create_endpoint(
                 EndpointName       = {{'<ENDPOINT_NAME>'}},
                 EndpointConfigName = {{'<ENDPOINT_CONFIG_NAME>'}})
   ```