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

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 image Docker kustom dalam pipeline yang menyertakan algoritme SageMaker bawaan, Anda memerlukan kebijakan Amazon Elastic Container Registry (Amazon ECR). Repositori Amazon ECR Anda harus memberikan SageMaker izin untuk menarik gambar. Untuk informasi selengkapnya, lihat Memecahkan Masalah Izin Amazon ECR untuk Pipa Inferensi.

Membuat dan Menerapkan Titik Akhir Pipa Inferensi

Kode berikut membuat dan menerapkan model pipeline inferensi real-time dengan model SparkMl dan XGBoost secara seri menggunakan SDK. SageMaker

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 prediktor SKLearn 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.