Membuat Endpoint Multi-Model - Amazon SageMaker

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

Membuat Endpoint Multi-Model

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

Buat titik akhir multi-model (konsol)

Anda dapat membuat keduanya CPU dan GPU mendukung titik akhir multi-model melalui konsol. Gunakan prosedur berikut untuk membuat titik akhir multi-model melalui konsol. SageMaker

Untuk membuat titik akhir multi-model (konsol)
  1. Buka SageMaker konsol Amazon di https://console.aws.amazon.com/sagemaker/.

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

  3. Untuk nama Model, masukkan nama.

  4. Untuk IAMperan, pilih atau buat IAM peran yang memiliki AmazonSageMakerFullAccess IAM kebijakan terlampir.

  5. Di bagian Definisi kontainer, untuk Menyediakan artefak model dan opsi gambar inferensi, pilih Gunakan beberapa model.

    Bagian halaman Buat model tempat Anda dapat memilih Gunakan beberapa model.
  6. Untuk gambar kontainer Inferensi, masukkan ECR jalur Amazon untuk gambar kontainer yang Anda inginkan.

    Untuk GPU model, Anda harus menggunakan wadah yang didukung oleh NVIDIA Triton Inference Server. Untuk daftar gambar kontainer yang berfungsi dengan titik akhir yang GPU didukung, lihat NVIDIATriton Inference Containers (hanya dukungan SM). Untuk informasi selengkapnya tentang Server Inferensi NVIDIA Triton, lihat Menggunakan Server Inferensi Triton dengan. SageMaker

  7. Pilih Buat model.

  8. Terapkan titik akhir multi-model Anda seperti yang Anda lakukan pada titik akhir model tunggal. Untuk petunjuk, silakan lihat Menyebarkan Model ke SageMaker Layanan Hosting.

Buat titik akhir multi-model menggunakan dengan CPUs AWS SDK for Python (Boto3)

Gunakan bagian berikut untuk membuat titik akhir multi-model yang didukung oleh CPU instance. Anda membuat titik akhir multi-model menggunakan Amazon SageMaker create_model, create_endpoint_config, dan create_endpointAPIssama seperti Anda akan membuat titik akhir model tunggal, tetapi dengan dua perubahan. Saat mendefinisikan wadah model, Anda harus melewatkan nilai Mode parameter baru,MultiModel. Anda juga harus melewati ModelDataUrl bidang yang menentukan awalan di Amazon S3 tempat artefak model berada, alih-alih jalur ke artefak model tunggal, seperti yang Anda lakukan saat menerapkan satu model.

Untuk contoh buku catatan yang digunakan SageMaker untuk menerapkan beberapa XGBoost model ke titik akhir, lihat Notebook Contoh Titik Akhir Multi-Model. XGBoost

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

Untuk menyebarkan model (AWS SDKuntuk Python (Boto 3))
  1. Dapatkan wadah dengan gambar yang mendukung penerapan titik akhir multi-model. Untuk daftar algoritme bawaan dan wadah kerangka kerja yang mendukung titik akhir multi-model, lihat. Algoritma, kerangka kerja, dan instance yang didukung Untuk contoh ini, kami menggunakan algoritma Algoritma K-Nearest Neighbors (k-NN) bawaan. Kami memanggil fungsi SDK utilitas SageMaker Python image_uris.retrieve() untuk mendapatkan alamat untuk gambar algoritma bawaan K-Nearest Neighbors.

    import sagemaker region = sagemaker_session.boto_region_name image = sagemaker.image_uris.retrieve("knn",region=region) container = { 'Image': image, 'ModelDataUrl': 's3://<BUCKET_NAME>/<PATH_TO_ARTIFACTS>', 'Mode': 'MultiModel' }
  2. Dapatkan AWS SDK for Python (Boto3) SageMaker klien 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])
  3. (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 multi-model-enabled titik akhir dalam pipeline inferensi serial.

  4. (Opsional) Jika kasus penggunaan Anda tidak mendapat manfaat dari caching model, tetapkan nilai ModelCacheSetting bidang MultiModelConfig parameter keDisabled, dan sertakan dalam Container argumen panggilan kecreate_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] )
  5. Konfigurasikan titik akhir multi-model untuk model. Sebaiknya konfigurasi titik akhir Anda dengan setidaknya dua instance. Hal ini memungkinkan SageMaker untuk menyediakan serangkaian prediksi yang sangat tersedia di beberapa Availability Zone 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 multi-model-enabled titik akhir dalam pipeline inferensi serial.

  6. Buat titik akhir multi-model menggunakan parameter EndpointName danEndpointConfigName.

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

Buat titik akhir multi-model menggunakan dengan GPUs AWS SDK for Python (Boto3)

Gunakan bagian berikut untuk membuat endpoint multi-model yang GPU didukung. Anda membuat titik akhir multi-model menggunakan Amazon SageMaker create_modelcreate_endpoint_config, dan create_endpointAPIsserupa dengan membuat titik akhir model tunggal, tetapi ada beberapa perubahan. Saat mendefinisikan wadah model, Anda harus melewatkan nilai Mode parameter baru,MultiModel. Anda juga harus melewati ModelDataUrl bidang yang menentukan awalan di Amazon S3 tempat artefak model berada, alih-alih jalur ke artefak model tunggal, seperti yang Anda lakukan saat menerapkan satu model. Untuk endpoint multi-model yang GPU didukung, Anda juga harus menggunakan wadah dengan NVIDIA Triton Inference Server yang dioptimalkan untuk berjalan pada instance. GPU Untuk daftar gambar kontainer yang berfungsi dengan titik akhir yang GPU didukung, lihat NVIDIATriton Inference Containers (hanya dukungan SM).

Untuk contoh notebook yang mendemonstrasikan cara membuat endpoint multi-model yang didukung olehGPUs, lihat Menjalankan mulitple deep learning models dengan GPUs Amazon SageMaker Multi-model endpoint (). MME

Prosedur berikut menguraikan langkah-langkah kunci untuk membuat endpoint multi-model yang GPU didukung.

Untuk menyebarkan model (AWS SDKuntuk Python (Boto 3))
  1. Tentukan gambar kontainer. Untuk membuat endpoint multi-model dengan GPU dukungan untuk ResNet model, tentukan wadah untuk menggunakan image NVIDIATriton Server. Wadah ini mendukung titik akhir multi-model dan dioptimalkan untuk berjalan pada GPU instance. Kami memanggil fungsi SDK utilitas SageMaker Python image_uris.retrieve() untuk mendapatkan alamat untuk gambar. Sebagai 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"}, }
  2. Dapatkan AWS SDK for Python (Boto3) SageMaker klien 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])
  3. (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 multi-model-enabled titik akhir dalam pipeline inferensi serial.

  4. (Opsional) Jika kasus penggunaan Anda tidak mendapat manfaat dari caching model, tetapkan nilai ModelCacheSetting bidang MultiModelConfig parameter keDisabled, dan sertakan dalam Container argumen panggilan kecreate_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] )
  5. Konfigurasikan titik akhir multi-model dengan instance GPU yang didukung untuk model. Sebaiknya konfigurasi titik akhir Anda dengan lebih dari satu instance untuk memungkinkan ketersediaan tinggi dan klik 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' } ] )
  6. Buat titik akhir multi-model menggunakan parameter EndpointName danEndpointConfigName.

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