

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

# Prasyarat untuk menggunakan Amazon SageMaker Inference Recommender
<a name="inference-recommender-prerequisites"></a>

Sebelum Anda dapat menggunakan Amazon SageMaker Inference Recommender, Anda harus menyelesaikan langkah-langkah prasyarat. Sebagai contoh, kami menunjukkan cara menggunakan model ResNet-18 pra-terlatih PyTorch (v1.7.1) untuk kedua jenis pekerjaan rekomendasi Amazon SageMaker Inference Recommender. Contoh yang ditampilkan menggunakan AWS SDK untuk Python (Boto3).

**catatan**  
Contoh kode berikut menggunakan Python. Hapus `!` karakter awalan jika Anda menjalankan salah satu contoh kode berikut di terminal Anda atau AWS CLI.
Anda dapat menjalankan contoh berikut dengan kernel Python 3 (TensorFlow 2.6 Python 3.8 CPU Dioptimalkan) di notebook Amazon SageMaker Studio. Untuk informasi selengkapnya tentang Studio, lihat[SageMaker Studio Amazon](studio-updated.md).

1. **Buat peran IAM untuk Amazon SageMaker AI. **

   Buat peran IAM untuk Amazon SageMaker AI yang memiliki kebijakan yang dikelola `AmazonSageMakerFullAccess` IAM terlampir.

1. **Siapkan lingkungan Anda. **

   Impor dependensi dan buat variabel untuk Anda Wilayah AWS, peran SageMaker AI IAM Anda (dari Langkah 1), dan klien SageMaker AI.

   ```
   !pip install --upgrade pip awscli botocore boto3  --quiet
   from sagemaker.core.helper.session_helper import get_execution_role, Session
   from sagemaker.core import image_uris
   import boto3
   
   region = boto3.Session().region_name
   role = get_execution_role()
   sagemaker_client = boto3.client("sagemaker", region_name=region)
   sagemaker_session = Session()
   ```

1. **(Opsional) Tinjau model yang ada yang dibandingkan oleh Inference Recommender. **

   Model tolok ukur Inferensi Recommender dari kebun binatang model populer. Inference Recommender mendukung model Anda meskipun belum diukur.

   Gunakan `ListModelMetaData` untuk mendapatkan objek respons yang mencantumkan domain, kerangka kerja, tugas, dan nama model model pembelajaran mesin yang ditemukan di kebun binatang model umum.

   Anda menggunakan domain, kerangka kerja, versi kerangka kerja, tugas, dan nama model di langkah-langkah selanjutnya untuk memilih image Docker inferensi dan mendaftarkan model Anda dengan SageMaker Model Registry. Berikut ini menunjukkan cara membuat daftar metadata model dengan SDK untuk Python (Boto3): 

   ```
   list_model_metadata_response=sagemaker_client.list_model_metadata()
   ```

   Outputnya mencakup ringkasan model (`ModelMetadataSummaries`) dan metadata respons (`ResponseMetadata`) mirip dengan contoh berikut:

   ```
   {
       'ModelMetadataSummaries': [{
               'Domain': 'NATURAL_LANGUAGE_PROCESSING',
               'Framework': 'PYTORCH:1.6.0',
                'Model': 'bert-base-cased',
                'Task': 'FILL_MASK'
                },
               {
                'Domain': 'NATURAL_LANGUAGE_PROCESSING',
                'Framework': 'PYTORCH:1.6.0',
                'Model': 'bert-base-uncased',
                'Task': 'FILL_MASK'
                },
               {
               'Domain': 'COMPUTER_VISION',
                'Framework': 'MXNET:1.8.0',
                'Model': 'resnet18v2-gluon',
                'Task': 'IMAGE_CLASSIFICATION'
                },
                {
                'Domain': 'COMPUTER_VISION',
                'Framework': 'PYTORCH:1.6.0',
                'Model': 'resnet152',
                'Task': 'IMAGE_CLASSIFICATION'
                }],
       'ResponseMetadata': {
                               'HTTPHeaders': {
                               'content-length': '2345',
                               'content-type': 'application/x-amz-json-1.1',
                               'date': 'Tue, 19 Oct 2021 20:52:03 GMT',
                               'x-amzn-requestid': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
                             },
       'HTTPStatusCode': 200,
       'RequestId': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
       'RetryAttempts': 0
       }
   }
   ```

   Untuk demo ini, kami menggunakan ResNet-18 model PyTorch (v1.7.1) untuk melakukan klasifikasi gambar. Contoh kode Python berikut menyimpan kerangka kerja, versi kerangka kerja, domain, dan tugas ke dalam variabel untuk digunakan nanti:

   ```
   # ML framework details
   framework = 'pytorch'
   framework_version = '1.7.1'
   
   # ML model details
   ml_domain = 'COMPUTER_VISION'
   ml_task = 'IMAGE_CLASSIFICATION'
   ```

1. **Unggah model pembelajaran mesin Anda ke Amazon S3. **

   Gunakan model PyTorch (v1.7.1) ini jika Anda tidak memiliki ResNet-18 model pembelajaran mesin yang telah dilatih sebelumnya:

   ```
   # Optional: Download a sample PyTorch model
   import torch
   from torchvision import models, transforms, datasets
   
   # Create an example input for tracing
   image = torch.zeros([1, 3, 256, 256], dtype=torch.float32)
   
   # Load a pretrained resnet18 model from TorchHub
   model = models.resnet18(pretrained=True)
   
   # Tell the model we are using it for evaluation (not training). Note this is required for Inferentia compilation.
   model.eval()
   model_trace = torch.jit.trace(model, image)
   
   # Save your traced model
   model_trace.save('model.pth')
   ```

   Unduh contoh skrip `inference.py` inferensi. Buat `code` direktori dan pindahkan skrip inferensi ke `code` direktori.

   ```
   # Download the inference script
   !wget https://aws-ml-blog-artifacts.s3.us-east-2.amazonaws.com/inference.py
   
   # move it into a code/ directory
   !mkdir code
   !mv inference.py code/
   ```

   Amazon SageMaker AI memerlukan model pembelajaran mesin pra-terlatih untuk dikemas sebagai file TAR terkompresi (`*.tar.gz`). Kompres model dan skrip inferensi Anda untuk memenuhi persyaratan ini:

   ```
   !tar -czf test.tar.gz model.pth code/inference.py
   ```

   Saat titik akhir Anda disediakan, file dalam arsip diekstraksi ke `/opt/ml/model/` titik akhir.

   Setelah Anda mengompres model dan model artefak Anda sebagai `.tar.gz` file, unggah ke bucket Amazon S3 Anda. Contoh berikut menunjukkan cara mengunggah model Anda ke Amazon S3 menggunakan AWS CLI:

   ```
   !aws s3 cp test.tar.gz s3://{{{your-bucket}}}/models/
   ```

1. **Pilih gambar inferensi Docker bawaan atau buat Inferensi Docker Image Anda sendiri. **

   SageMaker AI menyediakan wadah untuk algoritma bawaan dan gambar Docker bawaan untuk beberapa kerangka kerja pembelajaran mesin yang paling umum, seperti Apache MXnet,, TensorFlow PyTorch, dan Chainer. Untuk daftar lengkap gambar SageMaker AI yang tersedia, lihat Gambar Wadah Pem [ belajaran Mendalam yang Tersedia](https://github.com/aws/deep-learning-containers/blob/master/available_images.md).

   Jika tidak ada wadah SageMaker AI yang ada yang memenuhi kebutuhan Anda dan Anda tidak memiliki wadah sendiri, buat gambar Docker baru. Lihat [Wadah dengan kode inferensi khusus](your-algorithms-inference-main.md) untuk informasi tentang cara membuat image Docker Anda.

   Berikut ini menunjukkan cara mengambil gambar inferensi PyTorch versi 1.7.1 menggunakan SageMaker Python SDK:

   ```
   from sagemaker.core import image_uris
   
   ## Uncomment and replace with your own values if you did not define  
   ## these variables a previous step.
   #framework = 'pytorch'
   #framework_version = '1.7.1'
   
   # Note: you can use any CPU-based instance here, 
   # this is just to set the arch as CPU for the Docker image
   instance_type = 'ml.m5.2xlarge' 
   
   image_uri = image_uris.retrieve(framework, 
                                   region, 
                                   version=framework_version, 
                                   py_version='py3', 
                                   instance_type=instance_type, 
                                   image_scope='inference')
   ```

   Untuk daftar Instans SageMaker AI yang tersedia, lihat [ Harga Amazon SageMaker AI](https://aws.amazon.com/sagemaker/pricing/).

1. **Buat arsip muatan sampel. **

   Buat arsip yang berisi file individual yang dapat dikirim alat pengujian beban ke titik akhir SageMaker AI Anda. Kode inferensi Anda harus dapat membaca format file dari muatan sampel.

   Berikut ini mengunduh gambar.jpg yang digunakan contoh ini pada langkah selanjutnya untuk ResNet-18 model.

   ```
   !wget https://cdn.pixabay.com/photo/2020/12/18/05/56/flowers-5841251_1280.jpg
   ```

   Kompres muatan sampel sebagai tarball:

   ```
   !tar -cvzf payload.tar.gz flowers-5841251_1280.jpg
   ```

   Unggah payload sampel ke Amazon S3 dan catat URI Amazon S3:

   ```
   !aws s3 cp payload.tar.gz s3://{bucket}/models/
   ```

   Anda memerlukan URI Amazon S3 di langkah selanjutnya, jadi simpan dalam variabel:

   ```
   bucket_prefix='models'
   bucket = {{'<your-bucket-name>'}} # Provide the name of your S3 bucket
   payload_s3_key = f"{bucket_prefix}/payload.tar.gz"
   sample_payload_url= f"s3://{bucket}/{payload_s3_key}"
   ```

1. **Siapkan input model Anda untuk pekerjaan rekomendasi **

   Untuk prasyarat terakhir, Anda memiliki dua opsi untuk menyiapkan input model Anda. Anda dapat mendaftarkan model Anda dengan SageMaker Model Registry, yang dapat Anda gunakan untuk membuat katalog model untuk produksi, atau Anda dapat membuat model SageMaker AI dan menentukannya di `ContainerConfig` lapangan saat membuat pekerjaan rekomendasi. Opsi pertama adalah yang terbaik jika Anda ingin memanfaatkan fitur yang disediakan [ Model Registry](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html), seperti mengelola versi model dan mengotomatisasi penerapan model. Opsi kedua sangat ideal jika Anda ingin memulai dengan cepat. Untuk opsi pertama, pergi ke langkah 7. Untuk opsi kedua, lewati langkah 7 dan pergi ke langkah 8.

1. **Opsi 1: Daftarkan model Anda di registri model **

   Dengan SageMaker Model Registry, Anda dapat membuat katalog model untuk produksi, mengelola versi model, mengaitkan metadata (seperti metrik pelatihan) dengan model, mengelola status persetujuan model, menyebarkan model ke produksi, dan mengotomatiskan penerapan model dengan CI/CD.

   Saat Anda menggunakan SageMaker Model Registry untuk melacak dan mengelola model Anda, model tersebut direpresentasikan sebagai paket model berversi dalam grup paket model. Paket model tanpa versi bukan bagian dari grup model. Grup paket model menyimpan beberapa versi atau iterasi model. Meskipun tidak diperlukan untuk membuatnya untuk setiap model dalam registri, mereka membantu mengatur berbagai model yang semuanya memiliki tujuan yang sama dan menyediakan versi otomatis.

   Untuk menggunakan Amazon SageMaker Inference Recommender, Anda harus memiliki paket model berversi. Anda dapat membuat paket model berversi secara terprogram dengan AWS SDK untuk Python (Boto3) atau dengan Amazon SageMaker Studio Classic. Untuk membuat paket model berversi secara terprogram, pertama-tama buat grup paket model dengan API. `CreateModelPackageGroup` Selanjutnya, buat paket model menggunakan `CreateModelPackage` API. Memanggil metode ini membuat paket model berversi.

   Lihat [Buat Grup Model](model-registry-model-group.md) dan [Daftarkan Versi Model](model-registry-version.md) untuk petunjuk terperinci tentang cara membuat grup paket model secara terprogram dan interaktif dan cara membuat paket model berversi, masing-masing, dengan AWS SDK untuk Python (Boto3) dan Amazon Studio Classic. SageMaker 

   Contoh kode berikut menunjukkan cara membuat paket model berversi menggunakan. AWS SDK untuk Python (Boto3)
**catatan**  
Anda tidak perlu menyetujui paket model untuk membuat pekerjaan Inference Recommender.

   1. **Membuat grup paket model **

      Buat grup paket model dengan `CreateModelPackageGroup` API. Berikan nama ke grup paket model untuk `ModelPackageGroupName` dan secara opsional berikan deskripsi paket model di `ModelPackageGroupDescription` lapangan.

      ```
      model_package_group_name = {{'<INSERT>'}}
      model_package_group_description = {{'<INSERT>'}} 
      
      model_package_group_input_dict = {
       "ModelPackageGroupName" : model_package_group_name,
       "ModelPackageGroupDescription" : model_package_group_description,
      }
      
      model_package_group_response = sagemaker_client.create_model_package_group(**model_package_group_input_dict)
      ```

      Lihat Panduan Refer SageMaker ensi API [ Amazon ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/Welcome.html) untuk daftar lengkap argumen opsional dan wajib yang dapat Anda sampaikan [`CreateModelPackageGroup`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackageGroup.html).

      Buat paket model dengan menentukan image Docker yang menjalankan kode inferensi Anda dan lokasi Amazon S3 dari artefak model Anda dan memberikan nilai untuk. `InferenceSpecification` `InferenceSpecification`harus berisi informasi tentang pekerjaan inferensi yang dapat dijalankan dengan model berdasarkan paket model ini, termasuk yang berikut:
      + Jalur Amazon ECR dari gambar yang menjalankan kode inferensi Anda.
      + (Opsional) Jenis instance yang didukung paket model untuk pekerjaan transformasi dan titik akhir real-time yang digunakan untuk inferensi.
      + Format konten input dan output yang didukung paket model untuk inferensi.

      Selain itu, Anda harus menentukan parameter berikut saat Anda membuat paket model:
      + [Domain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html#sagemaker-CreateModelPackage-request-Domain): Domain pembelajaran mesin dari paket model Anda dan komponennya. Domain pembelajaran mesin umum termasuk visi komputer dan pemrosesan bahasa alami.
      + [Tugas](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html#sagemaker-CreateModelPackage-request-Task): Tugas pembelajaran mesin yang diselesaikan paket model Anda. Tugas pembelajaran mesin umum termasuk deteksi objek dan klasifikasi gambar. Tentukan “LAINNYA” jika tidak ada tugas yang tercantum dalam Panduan Referensi [ API ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/Welcome.html) yang memenuhi kasus penggunaan Anda. Lihat deskripsi bidang [ T ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html#sagemaker-CreateModelPackage-request-Task) ask API untuk daftar tugas pembelajaran mesin yang didukung.
      + [SamplePayloadUrl](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html#sagemaker-CreateModelPackage-request-SamplePayloadUrl): Jalur Amazon Simple Storage Service (Amazon S3) tempat muatan sampel disimpan. Jalur ini harus menunjuk ke satu arsip TAR terkompresi GZIP (akhiran.tar.gz).
      + [Ker ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelPackageContainerDefinition.html#sagemaker-Type-ModelPackageContainerDefinition-Framework) angka kerja: Kerangka kerja pembelajaran mesin dari gambar wadah paket model.
      + [FrameworkVersion](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelPackageContainerDefinition.html#sagemaker-Type-ModelPackageContainerDefinition-FrameworkVersion): Versi kerangka kerja dari gambar wadah paket model.

      Jika Anda memberikan daftar izin jenis instans yang akan digunakan untuk menghasilkan kesimpulan secara real-time untuk [ SupportedRealtimeInferenceInstanceTypes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InferenceSpecification.html#sagemaker-Type-InferenceSpecification-SupportedRealtimeInferenceInstanceTypes), Inference Recommender membatasi ruang pencarian untuk jenis instance selama pekerjaan. `Default` Gunakan parameter ini jika Anda memiliki batasan anggaran atau mengetahui ada kumpulan jenis instans tertentu yang dapat mendukung model dan image kontainer Anda.

      Pada langkah sebelumnya, kami mengunduh model ResNet 18 yang telah dilatih sebelumnya dan menyimpannya di bucket Amazon S3 di direktori yang disebut`models`. Kami mengambil gambar inferensi Deep Learning Container PyTorch (v1.7.1) dan menyimpan URI dalam variabel yang disebut. `image_uri` Gunakan variabel-variabel tersebut dalam contoh kode berikut untuk menentukan kamus yang digunakan sebagai input ke [`CreateModelPackage`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html) API.

      ```
      # Provide the Amazon S3 URI of your compressed tarfile
      # so that Model Registry knows where to find your model artifacts
      bucket_prefix='models'
      bucket = {{'<your-bucket-name>'}} # Provide the name of your S3 bucket
      model_s3_key = f"{bucket_prefix}/test.tar.gz"
      model_url= f"s3://{bucket}/{model_s3_key}"
      
      # Similar open source model to the packaged model
      # The name of the ML model as standardized by common model zoos
      nearest_model_name = 'resnet18'
      
      # The supported MIME types for input and output data. In this example, 
      # we are using images as input.
      input_content_type='image/jpeg'
      
      
      # Optional - provide a description of your model.
      model_package_description = {{'<INSERT>'}}
      
      ## Uncomment if you did not store the domain and task in an earlier
      ## step 
      #ml_domain = 'COMPUTER_VISION'
      #ml_task = 'IMAGE_CLASSIFICATION'
      
      ## Uncomment if you did not store the framework and framework version
      ## in a previous step.
      #framework = 'PYTORCH'
      #framework_version = '1.7.1'
      
      # Optional: Used for optimizing your model using SageMaker Neo
      # PyTorch uses NCHW format for images
      data_input_configuration = "[[1,3,256,256]]"
      
      # Create a dictionary to use as input for creating a model pacakge group
      model_package_input_dict = {
              "ModelPackageGroupName" : model_package_group_name,
              "ModelPackageDescription" : model_package_description,
              "Domain": ml_domain,
              "Task": ml_task,
              "SamplePayloadUrl": sample_payload_url,
              "InferenceSpecification": {
                      "Containers": [
                          {
                              "Image": image_uri,
                              "ModelDataUrl": model_url,
                              "Framework": framework.upper(), 
                              "FrameworkVersion": framework_version,
                              "NearestModelName": nearest_model_name,
                              "ModelInput": {"DataInputConfig": data_input_configuration}
                          }
                          ],
                      "SupportedContentTypes": [input_content_type]
              }
          }
      ```

   1. **Buat paket model **

      Gunakan `CreateModelPackage` API untuk membuat paket model. Luluskan kamus input yang ditentukan pada langkah sebelumnya:

      ```
      model_package_response = sagemaker_client.create_model_package(**model_package_input_dict)
      ```

      Anda memerlukan paket model ARN untuk menggunakan Amazon SageMaker Inference Recommender. Perhatikan ARN dari paket model atau simpan dalam variabel:

      ```
      model_package_arn = model_package_response["ModelPackageArn"]
      
      print('ModelPackage Version ARN : {}'.format(model_package_arn))
      ```

1. **Opsi 2: Buat model dan konfigurasikan `ContainerConfig` bidang **

   Gunakan opsi ini jika Anda ingin memulai pekerjaan rekomendasi inferensi dan tidak perlu mendaftarkan model Anda di Model Registry. Dalam langkah-langkah berikut, Anda membuat model di SageMaker AI dan mengonfigurasi `ContainerConfig` bidang sebagai input untuk pekerjaan rekomendasi.

   1. **Buat model **

      Buat model dengan `CreateModel` API. Untuk contoh yang memanggil metode ini saat menerapkan model ke SageMaker AI Hosting, lihat [ Membuat Model (AWS SDK untuk Python (Boto3))](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-deployment.html#realtime-endpoints-deployment-create-model).

      Pada langkah sebelumnya, kami mengunduh model ResNet 18 yang telah dilatih sebelumnya dan menyimpannya di bucket Amazon S3 di direktori yang disebut`models`. Kami mengambil gambar inferensi Deep Learning Container PyTorch (v1.7.1) dan menyimpan URI dalam variabel yang disebut. `image_uri` Kami menggunakan variabel-variabel tersebut dalam contoh kode berikut di mana kami mendefinisikan kamus yang digunakan sebagai input ke `[CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html#sagemaker-CreateModel-request-ModelName)` API.

      ```
      model_name = '{{<name_of_the_model>}}'
      # Role to give SageMaker permission to access AWS services.
      sagemaker_role= "arn:aws:iam::{{<region>}}:{{<account>}}:role/*"
      
      # Provide the Amazon S3 URI of your compressed tarfile
      # so that Model Registry knows where to find your model artifacts
      bucket_prefix='models'
      bucket = '{{<your-bucket-name>}}' # Provide the name of your S3 bucket
      model_s3_key = f"{bucket_prefix}/test.tar.gz"
      model_url= f"s3://{bucket}/{model_s3_key}"
      
      #Create model
      create_model_response = sagemaker_client.create_model(
          ModelName = model_name,
          ExecutionRoleArn = sagemaker_role, 
          PrimaryContainer = {
              'Image': image_uri,
              'ModelDataUrl': model_url,
          })
      ```

   1. **Konfigurasikan `ContainerConfig` bidang **

      Selanjutnya, Anda harus mengkonfigurasi [ ContainerConfig ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RecommendationJobInputConfig.html#sagemaker-Type-RecommendationJobInputConfig-ContainerConfig) bidang dengan model yang baru saja Anda buat dan tentukan parameter berikut di dalamnya:
      + `Domain`: Domain pembelajaran mesin model dan komponennya, seperti visi komputer atau pemrosesan bahasa alami.
      + `Task`: Tugas pembelajaran mesin yang diselesaikan model, seperti klasifikasi gambar atau deteksi objek.
      + `PayloadConfig`: Konfigurasi untuk payload untuk pekerjaan rekomendasi. Untuk informasi selengkapnya tentang subbidang, lihat`[RecommendationJobPayloadConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RecommendationJobPayloadConfig.html#sagemaker-Type-RecommendationJobPayloadConfig-SamplePayloadUrl)`.
      + `Framework`: Kerangka pembelajaran mesin dari gambar wadah, seperti PyTorch.
      + `FrameworkVersion`: Versi kerangka kerja dari gambar kontainer.
      + (Opsional)`SupportedInstanceTypes`: Daftar jenis instance yang digunakan untuk menghasilkan kesimpulan secara real-time.

      Jika Anda menggunakan `SupportedInstanceTypes` parameter, Inference Recommender membatasi ruang pencarian untuk jenis contoh selama pekerjaan`Default`. Gunakan parameter ini jika Anda memiliki batasan anggaran atau mengetahui ada kumpulan jenis instans tertentu yang dapat mendukung model dan image kontainer Anda.

      Dalam contoh kode berikut, kita menggunakan parameter yang ditentukan sebelumnya, bersama dengan`NearestModelName`, untuk mendefinisikan kamus yang digunakan sebagai input ke `[CreateInferenceRecommendationsJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateInferenceRecommendationsJob.html)` API.

      ```
      ## Uncomment if you did not store the domain and task in a previous step
      #ml_domain = 'COMPUTER_VISION'
      #ml_task = 'IMAGE_CLASSIFICATION'
      
      ## Uncomment if you did not store the framework and framework version in a previous step
      #framework = 'PYTORCH'
      #framework_version = '1.7.1'
      
      # The name of the ML model as standardized by common model zoos
      nearest_model_name = 'resnet18'
      
      # The supported MIME types for input and output data. In this example, 
      # we are using images as input
      input_content_type='image/jpeg'
      
      # Optional: Used for optimizing your model using SageMaker Neo
      # PyTorch uses NCHW format for images
      data_input_configuration = "[[1,3,256,256]]"
      
      # Create a dictionary to use as input for creating an inference recommendation job
      container_config = {
              "Domain": ml_domain,
              "Framework": framework.upper(), 
              "FrameworkVersion": framework_version,
              "NearestModelName": nearest_model_name,
              "PayloadConfig": { 
                  "SamplePayloadUrl": sample_payload_url,
                  "SupportedContentTypes": [ input_content_type ]
               },
              "DataInputConfig": data_input_configuration
              "Task": ml_task,
              }
      ```