Migrasikan beban kerja inferensi dari x86 ke Graviton AWS - Amazon SageMaker

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

Migrasikan beban kerja inferensi dari x86 ke Graviton AWS

AWS Graviton adalah serangkaian prosesor ARM berbasis yang dirancang oleh. AWS Mereka lebih hemat energi daripada prosesor berbasis x86 dan menawarkan rasio harga-kinerja yang menarik. Amazon SageMaker menawarkan instance berbasis Graviton sehingga Anda dapat memanfaatkan prosesor canggih ini untuk kebutuhan inferensi Anda.

Anda dapat memigrasikan beban kerja inferensi yang ada dari instance berbasis x86 ke instance berbasis Graviton, dengan menggunakan gambar kontainer yang kompatibel atau gambar kontainer multi-arsitektur. ARM Panduan ini mengasumsikan bahwa Anda menggunakan gambar kontainer AWS Deep Learning, atau gambar kontainer Anda sendiri yang ARM kompatibel. Untuk informasi lebih lanjut tentang membuat gambar Anda sendiri, periksa Membangun gambar Anda.

Pada tingkat tinggi, memigrasikan beban kerja inferensi dari instance berbasis x86 ke instance berbasis Graviton adalah proses empat langkah:

  1. Dorong gambar kontainer ke Amazon Elastic Container Registry (AmazonECR), registri kontainer AWS terkelola.

  2. Buat SageMaker Model.

  3. Buat konfigurasi titik akhir.

  4. Buat titik akhir.

Bagian berikut dari panduan ini memberikan rincian lebih lanjut mengenai langkah-langkah di atas. Ganti user placeholder text dalam contoh kode dengan informasi Anda sendiri.

Dorong gambar wadah ke Amazon ECR

Anda dapat mendorong gambar kontainer Anda ke Amazon ECR dengan file AWS CLI. Saat menggunakan gambar yang ARM kompatibel, verifikasi bahwa itu mendukung ARM arsitektur:

docker inspect deep-learning-container-uri

Respons "Architecture": "arm64" menunjukkan bahwa gambar mendukung ARM arsitektur. Anda dapat mendorongnya ke Amazon ECR dengan docker push perintah. Untuk informasi selengkapnya, periksa Mendorong gambar Docker.

Gambar kontainer multi-arsitektur pada dasarnya adalah sekumpulan gambar kontainer yang mendukung arsitektur atau sistem operasi yang berbeda, yang dapat Anda rujuk dengan nama manifes umum. Jika Anda menggunakan gambar wadah multi-arsitektur, maka selain mendorong gambar ke AmazonECR, Anda juga harus mendorong daftar manifes ke AmazonECR. Daftar manifes memungkinkan penyertaan bersarang dari manifes gambar lain, di mana setiap gambar yang disertakan ditentukan oleh arsitektur, sistem operasi, dan atribut platform lainnya. Contoh berikut membuat daftar manifes, dan mendorongnya ke AmazonECR.

  1. Buat daftar manifes.

    docker manifest create aws-account-id.dkr.ecr.aws-region.amazonaws.com/my-repository \ aws-account-id.dkr.ecr.aws-account-id.amazonaws.com/my-repository:amd64 \ aws-account-id.dkr.ecr.aws-account-id.amazonaws.com/my-repository:arm64 \
  2. Beri anotasi daftar manifes, sehingga benar mengidentifikasi gambar mana untuk arsitektur mana.

    docker manifest annotate --arch arm64 aws-account-id.dkr.ecr.aws-region.amazonaws.com/my-repository \ aws-account-id.dkr.ecr.aws-region.amazonaws.com/my-repository:arm64
  3. Dorong manifes.

    docker manifest push aws-account-id.dkr.ecr.aws-region.amazonaws.com/my-repository

Untuk informasi selengkapnya tentang membuat dan mendorong daftar manifes ke AmazonECR, periksa Memperkenalkan gambar wadah multi-arsitektur untuk Amazon ECR, dan Mendorong gambar multi-arsitektur.

Buat SageMaker Model

Buat SageMaker Model dengan memanggil file CreateModelAPI.

import boto3 from sagemaker import get_execution_role aws_region = "aws-region" sagemaker_client = boto3.client("sagemaker", region_name=aws_region) role = get_execution_role() sagemaker_client.create_model( ModelName = "model-name", PrimaryContainer = { "Image": "deep-learning-container-uri", "ModelDataUrl": "model-s3-location", "Environment": { "SAGEMAKER_PROGRAM": "inference.py", "SAGEMAKER_SUBMIT_DIRECTORY": "inference-script-s3-location", "SAGEMAKER_CONTAINER_LOG_LEVEL": "20", "SAGEMAKER_REGION": aws_region, } }, ExecutionRoleArn = role )

Buat konfigurasi titik akhir

Buat konfigurasi titik akhir dengan memanggil file. CreateEndpointConfigAPI Untuk daftar instance berbasis Graviton, periksa Instance yang dioptimalkan Compute.

sagemaker_client.create_endpoint_config( EndpointConfigName = "endpoint-config-name", ProductionVariants = [ { "VariantName": "variant-name", "ModelName": "model-name", "InitialInstanceCount": 1, "InstanceType": "ml.c7g.xlarge", # Graviton-based instance } ] )

Buat titik akhir

Buat titik akhir dengan memanggil file. CreateEndpointAPI

sagemaker_client.create_endpoint( EndpointName = "endpoint-name", EndpointConfigName = "endpoint-config-name" )