

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

# Terapkan model ke Amazon EC2
<a name="ex1-model-deployment"></a>

Untuk mendapatkan prediksi, terapkan model Anda ke Amazon EC2 menggunakan SageMaker Amazon AI.

**Topics**
+ [Menyebarkan Model ke Layanan Hosting SageMaker AI](#ex1-deploy-model)
+ [(Opsional) Gunakan Prediktor SageMaker AI untuk Menggunakan Kembali Titik Akhir yang Dihosting](#ex1-deploy-model-sdk-use-endpoint)
+ [(Opsional) Buat Prediksi dengan Batch Transform](#ex1-batch-transform)

## Menyebarkan Model ke Layanan Hosting SageMaker AI
<a name="ex1-deploy-model"></a>

Untuk meng-host model melalui Amazon EC2 menggunakan Amazon SageMaker AI, terapkan model yang Anda latih [Membuat dan Menjalankan Training Job](ex1-train-model.md#ex1-train-model-sdk) dengan memanggil `deploy` metode estimator. `xgb_model` Ketika Anda memanggil `deploy` metode, Anda harus menentukan nomor dan jenis instance EC2 MLyang ingin Anda gunakan untuk hosting endpoint.

```
import sagemaker
from sagemaker.serializers import CSVSerializer
xgb_predictor=xgb_model.deploy(
    initial_instance_count=1,
    instance_type='ml.t2.medium',
    serializer=CSVSerializer()
)
```
+ `initial_instance_count`(int) — Jumlah instance untuk menyebarkan model.
+ `instance_type`(str) - Jenis instance yang ingin Anda operasikan model yang Anda gunakan.
+ `serializer`(int) — Serialisasi data input dari berbagai format ( NumPy array, daftar, file, atau buffer) ke string. CSV-formatted Kami menggunakan ini karena algoritma XGBoost menerima file input dalam format CSV.

`deploy`Metode ini membuat model yang dapat diterapkan, mengonfigurasi titik akhir layanan hosting SageMaker AI, dan meluncurkan titik akhir untuk meng-host model. Untuk informasi selengkapnya, lihat [metode kelas penerapan Estimator generik SageMaker AI](https://sagemaker.readthedocs.io/en/stable/estimators.html#sagemaker.estimator.Estimator.deploy) di Amazon [Python SageMaker ](https://sagemaker.readthedocs.io/en/stable) SDK. Untuk mengambil nama endpoint yang dihasilkan oleh `deploy` metode, jalankan kode berikut:

```
xgb_predictor.endpoint_name
```

Ini harus mengembalikan nama titik akhir dari. `xgb_predictor` Format nama endpoint adalah`"sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS"`. Endpoint ini tetap aktif dalam instance ML, dan Anda dapat membuat prediksi seketika kapan saja kecuali jika Anda mematikannya nanti. Salin nama titik akhir ini dan simpan untuk digunakan kembali dan buat prediksi waktu nyata di tempat lain di instance notebook SageMaker Studio atau SageMaker AI.

**Tip**  
Untuk mempelajari lebih lanjut tentang mengompilasi dan mengoptimalkan model Anda untuk penerapan ke instans Amazon EC2 atau perangkat edge, lihat [Mengompilasi](https://docs.aws.amazon.com/sagemaker/latest/dg/neo.html) dan Menerapkan Model dengan Neo.

## (Opsional) Gunakan Prediktor SageMaker AI untuk Menggunakan Kembali Titik Akhir yang Dihosting
<a name="ex1-deploy-model-sdk-use-endpoint"></a>

Setelah menerapkan model ke titik akhir, Anda dapat menyiapkan prediktor SageMaker AI baru dengan memasangkan titik akhir dan terus membuat prediksi waktu nyata di notebook lain. Kode contoh berikut menunjukkan cara menggunakan kelas Prediktor SageMaker AI untuk menyiapkan objek prediktor baru menggunakan titik akhir yang sama. Re-use nama titik akhir yang Anda gunakan untuk. `xgb_predictor`

```
import sagemaker
xgb_predictor_reuse=sagemaker.predictor.Predictor(
    endpoint_name="{{sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS}}",
    sagemaker_session=sagemaker.Session(),
    serializer=sagemaker.serializers.CSVSerializer()
)
```

`xgb_predictor_reuse`Prediktor berperilaku persis sama dengan aslinya. `xgb_predictor` Untuk informasi selengkapnya, lihat kelas [Prediktor SageMaker AI](https://sagemaker.readthedocs.io/en/stable/predictors.html#sagemaker.predictor.RealTimePredictor) di [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable).

## (Opsional) Buat Prediksi dengan Batch Transform
<a name="ex1-batch-transform"></a>

Alih-alih menghosting titik akhir dalam produksi, Anda dapat menjalankan pekerjaan inferensi batch satu kali untuk membuat prediksi pada kumpulan data pengujian menggunakan transformasi batch AI. SageMaker Setelah pelatihan model Anda selesai, Anda dapat memperluas estimator ke `transformer` objek, yang didasarkan pada kelas [SageMaker AI Transformer](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html). Trafo batch membaca data input dari bucket S3 tertentu dan membuat prediksi.

**Untuk menjalankan pekerjaan transformasi batch**

1. Jalankan kode berikut untuk mengonversi kolom fitur kumpulan data pengujian menjadi file CSV dan unggah ke bucket S3:

   ```
   X_test.to_csv('test.csv', index=False, header=False)
   
   boto3.Session().resource('s3').Bucket(bucket).Object(
   os.path.join(prefix, 'test/test.csv')).upload_file('test.csv')
   ```

1. Tentukan URI bucket S3 dari input dan output untuk pekerjaan transformasi batch seperti yang ditunjukkan berikut:

   ```
   # The location of the test dataset
   batch_input = 's3://{}/{}/test'.format(bucket, prefix)
   
   # The location to store the results of the batch transform job
   batch_output = 's3://{}/{}/batch-prediction'.format(bucket, prefix)
   ```

1. Buat objek transformator yang menentukan jumlah minimal parameter: `instance_count` dan `instance_type` parameter untuk menjalankan pekerjaan transformasi batch, dan `output_path` untuk menyimpan data prediksi seperti yang ditunjukkan berikut: 

   ```
   transformer = xgb_model.transformer(
       instance_count=1, 
       instance_type='ml.m4.xlarge', 
       output_path=batch_output
   )
   ```

1. Memulai pekerjaan transformasi batch dengan mengeksekusi `transform()` metode `transformer` objek seperti yang ditunjukkan berikut:

   ```
   transformer.transform(
       data=batch_input, 
       data_type='S3Prefix',
       content_type='text/csv', 
       split_type='Line'
   )
   transformer.wait()
   ```

1. Saat pekerjaan transformasi batch selesai, SageMaker AI membuat data `test.csv.out` prediksi yang disimpan di `batch_output` jalur, yang harus dalam format berikut:`s3://sagemaker-<region>-111122223333/demo-sagemaker-xgboost-adult-income-prediction/batch-prediction`. Jalankan yang berikut ini AWS CLI untuk mengunduh data keluaran dari pekerjaan transformasi batch:

   ```
   ! aws s3 cp {batch_output} ./ --recursive
   ```

   Ini harus membuat `test.csv.out` file di bawah direktori kerja saat ini. Anda akan dapat melihat nilai float yang diprediksi berdasarkan regresi logistik dari pekerjaan pelatihan XGBoost.