Buat Model - Amazon SageMaker

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 for Python (Boto3). Beberapa baris pertama mendefinisikan:

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

  • sagemaker_role: Variabel string dengan SageMaker IAM peran 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 XGBoost model pra-terlatih bernamademo-xgboost-model.tar.gz. Amazon S3 lengkap URI disimpan dalam variabel string: model_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 kontainer algoritma XGBoost bawaan:

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 denganCreateModel. Tentukan hal berikut:

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

  • ExecutionRoleArn: Amazon Resource Name (ARN) dari IAM peran yang SageMaker dapat diasumsikan Amazon untuk mengakses artefak model dan image Docker untuk penerapan pada instance komputasi HTML 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 diterapkan 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 CreateModeldeskripsi di Panduan SageMaker API Referensi untuk daftar lengkap API parameter.

Jika Anda menggunakan wadah yang SageMaker disediakan, Anda dapat meningkatkan batas waktu server model dan ukuran payload dari nilai default ke maksimum yang didukung kerangka kerja dengan menyetel variabel lingkungan di langkah ini. Anda mungkin tidak dapat memanfaatkan batas waktu maksimum dan ukuran payload yang didukung Asynchronous Inference jika Anda tidak secara eksplisit mengatur variabel-variabel ini. 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 Anda selesai membuat endpoint Anda, 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 (berdasarkanMMS)

'MMS_ _ MAX REQUEST _SIZE': '1000000000'

'MMS_ _ MAX RESPONSE _SIZE': '1000000000'

'MMS_ DEFAULT _ RESPONSE _TIMEOUT': '970'

HuggingFace Wadah Inferensi (berdasarkanMMS)

'MMS_ _ MAX REQUEST _SIZE': '2000000000'

'MMS_ _ MAX RESPONSE _SIZE': '2000000000'

'MMS_ DEFAULT _ RESPONSE _TIMEOUT': '970'