View a markdown version of this page

Buat Model - Amazon SageMaker AI

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

Buat Model

Contoh berikut menunjukkan cara membuat model menggunakan AWS SDK untuk Python (Boto3). Beberapa baris pertama mendefinisikan:

  • sagemaker_client: Objek klien SageMaker AI tingkat rendah yang membuatnya mudah untuk mengirim dan menerima permintaan ke AWS layanan.

  • sagemaker_role: Variabel string dengan peran SageMaker AI IAM Amazon Resource Name (ARN).

  • aws_region: Variabel string dengan nama AWS wilayah Anda.

import boto3 # Specify your AWS Region aws_region='<aws_region>' # Create a low-level SageMaker service client. sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Role to give SageMaker permission to access AWS services. sagemaker_role= "arn:aws:iam::<account>:role/*"

Selanjutnya, tentukan lokasi model pra-terlatih yang disimpan di Amazon S3. Dalam contoh ini, kami menggunakan model XGBoost yang telah dilatih sebelumnya bernama. demo-xgboost-model.tar.gz URI Amazon S3 lengkap disimpan dalam variabel stringmodel_url:

#Create a variable w/ the model S3 URI s3_bucket = '<your-bucket-name>' # Provide the name of your S3 bucket bucket_prefix='saved_models' model_s3_key = f"{bucket_prefix}/demo-xgboost-model.tar.gz" #Specify S3 bucket w/ model model_url = f"s3://{s3_bucket}/{model_s3_key}"

Tentukan wadah utama. Untuk wadah utama, Anda menentukan image Docker yang berisi kode inferensi, artefak (dari pelatihan sebelumnya), dan peta lingkungan khusus yang digunakan kode inferensi saat Anda menerapkan model untuk prediksi.

Dalam contoh ini, kami menentukan gambar wadah algoritma bawaan XGBoost:

from sagemaker import image_uris # Specify an AWS container image. container = image_uris.retrieve(region=aws_region, framework='xgboost', version='0.90-1')

Buat model di Amazon SageMaker AI denganCreateModel. Tentukan hal berikut:

  • ModelName: Nama untuk model Anda (dalam contoh ini disimpan sebagai variabel string yang disebutmodel_name).

  • ExecutionRoleArn: Nama Sumber Daya Amazon (ARN) dari peran IAM yang dapat diasumsikan oleh Amazon SageMaker AI untuk mengakses artefak model dan gambar Docker untuk penerapan pada instans komputasi ML atau untuk pekerjaan transformasi batch.

  • PrimaryContainer: Lokasi gambar Docker utama yang berisi kode inferensi, artefak terkait, dan peta lingkungan khusus yang digunakan kode inferensi saat model digunakan untuk prediksi.

model_name = '<The_name_of_the_model>' #Create model create_model_response = sagemaker_client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, PrimaryContainer = { 'Image': container, 'ModelDataUrl': model_url, })

Lihat CreateModel deskripsi di Panduan Referensi SageMaker API untuk daftar lengkap parameter API.

Jika Anda menggunakan wadah yang disediakan SageMaker AI, Anda dapat meningkatkan batas waktu server model dan ukuran muatan dari nilai default ke maksimum yang didukung kerangka kerja dengan menyetel variabel lingkungan pada langkah ini. Anda mungkin tidak dapat memanfaatkan batas waktu maksimum dan ukuran muatan yang didukung Inferensi Asinkron jika Anda tidak menetapkan variabel ini secara eksplisit. Contoh berikut menunjukkan bagaimana Anda dapat mengatur variabel lingkungan untuk wadah PyTorch Inferensi berdasarkan TorchServe.

model_name = '<The_name_of_the_model>' #Create model create_model_response = sagemaker_client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, PrimaryContainer = { 'Image': container, 'ModelDataUrl': model_url, 'Environment': { 'TS_MAX_REQUEST_SIZE': '100000000', 'TS_MAX_RESPONSE_SIZE': '100000000', 'TS_DEFAULT_RESPONSE_TIMEOUT': '1000' }, })

Setelah selesai membuat titik akhir, Anda harus menguji apakah Anda telah mengatur variabel lingkungan dengan benar dengan mencetaknya dari inference.py skrip Anda. Tabel berikut mencantumkan variabel lingkungan untuk beberapa kerangka kerja yang dapat Anda atur untuk mengubah nilai default.

Kerangka Kerja Variabel-variabel lingkungan

PyTorch 1.8 (berdasarkan TorchServe)

'TS_MAX_REQUEST_SIZE': '100000000'

'TS_MAX_RESPONSE_SIZE': '100000000'

'TS_DEFAULT_RESPONSE_TIMEOUT': '1000'

PyTorch 1.4 (berdasarkan MMS)

'MMS_MAX_REQUEST_SIZE': '1000000000'

'MMS_MAX_RESPONSE_SIZE': '1000000000'

'MMS_DEFAULT_RESPONSE_TIMEOUT': '900'

HuggingFace Inferensi Wadah (berdasarkan MMS)

'MMS_MAX_REQUEST_SIZE': '2000000000'

'MMS_MAX_RESPONSE_SIZE': '2000000000'

'MMS_DEFAULT_RESPONSE_TIMEOUT': '900'