View a markdown version of this page

Jalankan Real-time Prediksi dengan Pipeline Inferensi - Amazon SageMaker AI

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

Jalankan Real-time Prediksi dengan Pipeline Inferensi

Anda dapat menggunakan model terlatih dalam pipeline inferensi untuk membuat prediksi real-time secara langsung tanpa melakukan prapemrosesan eksternal. Saat mengonfigurasi pipeline, Anda dapat memilih untuk menggunakan transformator fitur bawaan yang sudah tersedia di Amazon SageMaker AI. Atau, Anda dapat menerapkan logika transformasi Anda sendiri hanya menggunakan beberapa baris kode scikit-learn atau Spark.

MLap, format serialisasi dan mesin eksekusi untuk pipeline pembelajaran mesin, mendukung Spark, scikit-learn, dan TensorFlow untuk pipeline pelatihan dan mengekspornya ke pipeline serial yang disebut MLap Bundle. Anda dapat mendeserialisasi Bundel kembali ke Spark untuk penilaian mode batch atau ke runtime mLeap untuk mendukung layanan API real-time.

Kontainer dalam pipa mendengarkan port yang ditentukan dalam variabel SAGEMAKER_BIND_TO_PORT lingkungan (bukan 8080). Saat berjalan dalam pipeline inferensi, SageMaker AI secara otomatis menyediakan variabel lingkungan ini ke wadah. Jika variabel lingkungan ini tidak ada, kontainer secara default menggunakan port 8080. Untuk menunjukkan bahwa wadah Anda memenuhi persyaratan ini, gunakan perintah berikut untuk menambahkan label ke Dockerfile Anda:

LABEL com.amazonaws.sagemaker.capabilities.accept-bind-to-port=true

Jika wadah 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 AI memberikan nilai ini secara otomatis saat Anda menjalankan wadah dalam pipeline multicontainer.

catatan

Untuk menggunakan gambar Docker kustom dalam pipeline yang menyertakan algoritma bawaan SageMaker AI, Anda memerlukan kebijakan https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html Amazon Elastic Container Registry (Amazon ECR). Repositori Amazon ECR Anda harus memberikan izin SageMaker AI untuk menarik gambar. Untuk informasi selengkapnya, lihat Memecahkan Masalah Izin Amazon ECR untuk Saluran Saluran Inferensi.

Membuat dan Menyebarkan Titik Akhir Pipeline Inferensi

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

from sagemaker.serve import ModelBuilder sparkml_data = 's3://{}/{}/{}'.format(s3_model_bucket, s3_model_key_prefix, 'model.tar.gz') model_name = 'serial-inference-' + timestamp_prefix endpoint_name = 'serial-inference-ep-' + timestamp_prefix model_builder = ModelBuilder( s3_model_data_url=sparkml_data, role_arn=role, instance_type='ml.c4.xlarge', pipeline_models=[sparkml_data, xgb_model.s3_model_data_url], ) endpoint = model_builder.build().deploy( initial_instance_count=1, instance_type='ml.c4.xlarge', endpoint_name=endpoint_name )

Minta Real-Time Inferensi dari Titik Akhir Pipeline Inferensi

Contoh berikut menunjukkan cara membuat prediksi real-time dengan memanggil titik akhir inferensi dan meneruskan payload permintaan dalam format JSON:

import json from sagemaker.core.resources import Endpoint 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" } } endpoint = Endpoint(endpoint_name=endpoint_name) response = endpoint.invoke(body=json.dumps(payload), content_type='application/json', accept='application/json') print(response)

Respons yang Anda dapatkan adalah hasil inferensi model.

Contoh pipeline 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 contoh lainnya di GitHub repositori SageMaker contoh Amazon.