

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

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](https://combust.github.io/mleap-docs/), 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](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html), Anda memerlukan kebijakan [https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html](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](inference-pipeline-troubleshoot.md#inference-pipeline-troubleshoot-permissions).

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

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

Anda dapat menjalankan [ contoh buku catatan ini menggunakan prediktor SKLearn ](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 contoh lainnya di GitHub repositori SageMaker contoh [ Amazon](https://github.com/awslabs/amazon-sagemaker-examples).