View a markdown version of this page

Menyebarkan Model yang Dikompilasi Menggunakan SageMaker SDK - Amazon SageMaker AI

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

Menyebarkan Model yang Dikompilasi Menggunakan SageMaker SDK

Anda harus memenuhi bagian prasyarat jika model dikompilasi menggunakan AWS SDK untuk Python (Boto3) AWS CLI,, atau konsol Amazon SageMaker AI. Ikuti salah satu kasus penggunaan berikut untuk menerapkan model yang dikompilasi dengan SageMaker Neo berdasarkan bagaimana Anda mengkompilasi model Anda.

Jika Anda mengkompilasi model menggunakan SageMaker SDK

Handle objek SageMaker.model untuk model yang dikompilasi menyediakan fungsi deploy (), yang memungkinkan Anda membuat titik akhir untuk melayani permintaan inferensi. Fungsi ini memungkinkan Anda mengatur jumlah dan jenis instance yang digunakan untuk titik akhir. Anda harus memilih instance yang telah Anda kompilasi model Anda. Misalnya, dalam pekerjaan yang di kompilasi di bagian Kompilasi Model (Amazon SageMaker SDK), ini adalahml_c5.

from sagemaker.serve import ModelBuilder model_builder = ModelBuilder( model=compiled_model, role_arn=role, instance_type='ml.c5.4xlarge', ) endpoint = model_builder.build().deploy( initial_instance_count=1, instance_type='ml.c5.4xlarge' ) # Print the name of newly created endpoint print(endpoint.endpoint_name)

Jika Anda mengkompilasi model Anda menggunakan MXnet atau PyTorch

Buat dan terapkan model SageMaker AI menggunakanModelBuilder. Tentukan s3_model_data_url parameter sebagai jalur S3 ke arsip model terkompilasi Anda, role_arn parameter sebagai peran eksekusi Anda, dan instance_type parameter untuk instance target Anda. Anda juga harus mengatur variabel MMS_DEFAULT_RESPONSE_TIMEOUT lingkungan ke500.

Contoh berikut menunjukkan cara menggunakan fungsi-fungsi ini untuk menerapkan model yang dikompilasi menggunakan SageMaker Python SDK:

from sagemaker.serve import ModelBuilder # V3 uses a unified ModelBuilder approach for all frameworks model_builder = ModelBuilder( s3_model_data_url='insert S3 path of compiled model archive', role_arn='AmazonSageMaker-ExecutionRole', instance_type='ml.p3.2xlarge', env={'MMS_DEFAULT_RESPONSE_TIMEOUT': '500'}, ) endpoint = model_builder.build().deploy( initial_instance_count=1, instance_type='ml.p3.2xlarge' ) # Print the name of newly created endpoint print(endpoint.endpoint_name)
catatan

AmazonS3ReadOnlyAccessKebijakan AmazonSageMakerFullAccess dan harus dilampirkan pada peran AmazonSageMaker-ExecutionRole IAM.

Jika Anda mengkompilasi model Anda menggunakan Boto3, SageMaker konsol, atau CLI untuk TensorFlow

Buat objek model, lalu panggil deploy:

from sagemaker.serve import ModelBuilder model_builder = ModelBuilder( s3_model_data_url='S3 path for model file', role_arn=role, instance_type='ml.c5.xlarge', ) endpoint = model_builder.build().deploy( initial_instance_count=1, instance_type='ml.c5.xlarge' )

Lihat Men yebarkan langsung dari artefak model untuk informasi selengkapnya.

Anda dapat memilih gambar Docker Amazon ECR URI yang memenuhi kebutuhan Anda dari daftar https://docs.aws.amazon.com/sagemaker/latest/dg/neo-deployment-hosting-services-container-images.html ini.

Untuk informasi selengkapnya tentang cara membuat TensorFlowModel objek, lihat SageMaker SDK.

catatan

Permintaan inferensi pertama Anda mungkin memiliki latensi tinggi jika Anda menerapkan model Anda pada GPU. Ini karena kernel komputasi yang dioptimalkan dibuat pada permintaan inferensi pertama. Kami menyarankan Anda membuat file pemanasan permintaan inferensi dan menyimpannya di samping file model Anda sebelum mengirimkannya ke TFX. Ini dikenal sebagai “pemanasan” model.

Cuplikan kode berikut menunjukkan cara menghasilkan file pemanasan untuk contoh klasifikasi gambar di bagian prasyarat:

import tensorflow as tf from tensorflow_serving.apis import classification_pb2 from tensorflow_serving.apis import inference_pb2 from tensorflow_serving.apis import model_pb2 from tensorflow_serving.apis import predict_pb2 from tensorflow_serving.apis import prediction_log_pb2 from tensorflow_serving.apis import regression_pb2 import numpy as np with tf.python_io.TFRecordWriter("tf_serving_warmup_requests") as writer: img = np.random.uniform(0, 1, size=[224, 224, 3]).astype(np.float32) img = np.expand_dims(img, axis=0) test_data = np.repeat(img, 1, axis=0) request = predict_pb2.PredictRequest() request.model_spec.name = 'compiled_models' request.model_spec.signature_name = 'serving_default' request.inputs['Placeholder:0'].CopyFrom(tf.compat.v1.make_tensor_proto(test_data, shape=test_data.shape, dtype=tf.float32)) log = prediction_log_pb2.PredictionLog( predict_log=prediction_log_pb2.PredictLog(request=request)) writer.write(log.SerializeToString())

Untuk informasi lebih lanjut tentang cara “menghangatkan” model Anda, lihat halaman TensorFlow TFX.