

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
<a name="inference-pipeline-real-time"></a>

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 AI. Atau, Anda dapat menerapkan logika transformasi Anda sendiri hanya dengan menggunakan beberapa baris kode scikit-learn atau Spark. 

[MLeap](https://combust.github.io/mleap-docs/), 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 Bundle kembali ke Spark untuk penilaian mode batch atau ke runtime untuk mengaktifkan layanan API waktu nyata. MLeap 

Kontainer dalam pipa mendengarkan pada port yang ditentukan dalam variabel `SAGEMAKER_BIND_TO_PORT` lingkungan (bukan 8080). Saat berjalan di pipeline inferensi, SageMaker AI 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 AI memberikan nilai ini secara otomatis saat Anda menjalankan container dalam pipeline multicontainer.

**catatan**  
Untuk menggunakan image Docker khusus dalam pipeline yang menyertakan [algoritme bawaan SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html), Anda memerlukan kebijakan [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html). Repositori Amazon ECR Anda harus memberikan izin SageMaker AI untuk menarik gambar. Untuk informasi selengkapnya, lihat [Memecahkan Masalah Izin Amazon ECR untuk Pipa Inferensi](inference-pipeline-troubleshoot.md#inference-pipeline-troubleshoot-permissions).

## Membuat dan Menerapkan Titik Akhir Pipa Inferensi
<a name="inference-pipeline-real-time-sdk"></a>

Kode berikut membuat dan menerapkan model pipeline inferensi real-time dengan SparkMl dan XGBoost model secara seri menggunakan AI 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
<a name="inference-pipeline-endpoint-request"></a>

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
<a name="inference-pipeline-example"></a>

Anda dapat menjalankan [contoh buku catatan ini menggunakan SKLearn prediktor](https://github.com/awslabs/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/scikit_learn_randomforest/Sklearn_on_SageMaker_end2end.ipynb) 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](https://github.com/awslabs/amazon-sagemaker-examples).