Jalankan Prediksi Real-time dengan Pipeline Inferensi - Amazon SageMaker

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, format serialisasi dan mesin eksekusi untuk pipeline pembelajaran mesin, mendukung Spark, scikit-learn, dan TensorFlow untuk melatih pipeline dan mengekspornya ke pipeline serial yang disebut Bundle. MLeap Anda dapat melakukan deserialisasi Bundel kembali ke Spark untuk penilaian mode batch atau ke runtime untuk memberi daya pada layanan waktu nyata. MLeap API

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 yang menunjukkan cara menerapkan titik akhir, menjalankan permintaan inferensi, lalu deserialisasi respons. Temukan buku catatan ini dan lebih banyak contoh di GitHub repositori SageMaker contoh Amazon.