Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Jalankan Prediksi Real-time dengan Pipeline Inferensi
Anda dapat menggunakan model terlatih dalam pipeline inferensi untuk membuat prediksi real-time secara langsung tanpa melakukan preprocessing eksternal. Saat mengonfigurasi pipeline, Anda dapat memilih untuk menggunakan transformator fitur bawaan yang sudah tersedia di Amazon. SageMaker Atau, Anda dapat menerapkan logika transformasi Anda sendiri hanya dengan menggunakan beberapa baris kode scikit-learn atau Spark.
MLeap
Kontainer dalam pipa mendengarkan pada port yang ditentukan dalam variabel SAGEMAKER_BIND_TO_PORT
lingkungan (bukan 8080). Saat berjalan di pipeline inferensi, SageMaker secara otomatis menyediakan variabel lingkungan ini ke kontainer. Jika variabel lingkungan ini tidak ada, kontainer default menggunakan port 8080. Untuk menunjukkan bahwa kontainer Anda mematuhi persyaratan ini, gunakan perintah berikut untuk menambahkan label ke Dockerfile Anda:
LABEL com.amazonaws.sagemaker.capabilities.accept-bind-to-port=true
Jika kontainer Anda perlu mendengarkan pada port kedua, pilih port dalam rentang yang ditentukan oleh variabel SAGEMAKER_SAFE_PORT_RANGE
lingkungan. Tentukan nilai sebagai rentang inklusif dalam format"XXXX-YYYY"
, di mana XXXX
dan YYYY
merupakan bilangan bulat multi-digit. SageMaker memberikan nilai ini secara otomatis saat Anda menjalankan container dalam pipeline multicontainer.
catatan
Untuk menggunakan gambar Docker khusus dalam pipeline yang menyertakan algoritme SageMaker bawaan, Anda memerlukan kebijakan Amazon Elastic Container Registry ECR (Amazon). ECRRepositori Amazon Anda harus memberikan SageMaker izin untuk menarik gambar. Untuk informasi selengkapnya, lihat Memecahkan Masalah ECR Izin Amazon untuk Pipa Inferensi.
Membuat dan Menerapkan Titik Akhir Pipa Inferensi
Kode berikut membuat dan menerapkan model pipeline inferensi real-time dengan SparkMl dan XGBoost model secara seri menggunakan file. SageMaker SDK
from sagemaker.model import Model from sagemaker.pipeline_model import PipelineModel from sagemaker.sparkml.model import SparkMLModel sparkml_data = 's3://{}/{}/{}'.format(s3_model_bucket, s3_model_key_prefix, 'model.tar.gz') sparkml_model = SparkMLModel(model_data=sparkml_data) xgb_model = Model(model_data=xgb_model.model_data, image=training_image) model_name = 'serial-inference-' + timestamp_prefix endpoint_name = 'serial-inference-ep-' + timestamp_prefix sm_model = PipelineModel(name=model_name, role=role, models=[sparkml_model, xgb_model]) sm_model.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge', endpoint_name=endpoint_name)
Minta Inferensi Waktu Nyata dari Titik Akhir Pipa Inferensi
Contoh berikut menunjukkan cara membuat prediksi real-time dengan memanggil titik akhir inferensi dan meneruskan payload permintaan dalam format: JSON
import sagemaker from sagemaker.predictor import json_serializer, json_deserializer, Predictor payload = { "input": [ { "name": "Pclass", "type": "float", "val": "1.0" }, { "name": "Embarked", "type": "string", "val": "Q" }, { "name": "Age", "type": "double", "val": "48.0" }, { "name": "Fare", "type": "double", "val": "100.67" }, { "name": "SibSp", "type": "double", "val": "1.0" }, { "name": "Sex", "type": "string", "val": "male" } ], "output": { "name": "features", "type": "double", "struct": "vector" } } predictor = Predictor(endpoint=endpoint_name, sagemaker_session=sagemaker.Session(), serializer=json_serializer, content_type='text/csv', accept='application/json' print(predictor.predict(payload))
Respons yang Anda dapatkan predictor.predict(payload)
adalah hasil inferensi model.
Contoh pipa inferensi waktu nyata
Anda dapat menjalankan contoh buku catatan ini menggunakan SKLearn prediktor