

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

# Membuat gambar algoritme
<a name="ml-algorithm-images"></a>

Algoritma Amazon SageMaker AI mengharuskan pembeli membawa data mereka sendiri untuk dilatih sebelum membuat prediksi. Sebagai AWS Marketplace penjual, Anda dapat menggunakan SageMaker AI untuk membuat algoritma pembelajaran mesin (ML) dan model yang dapat digunakan pembeli Anda. AWS Bagian berikut Anda cara membuat gambar algoritma untuk AWS Marketplace. Ini termasuk membuat image pelatihan Docker untuk melatih algoritme Anda dan gambar inferensi yang berisi logika inferensi Anda. Baik gambar pelatihan dan inferensi diperlukan saat menerbitkan produk algoritme.

**Topics**
+ [Ikhtisar](#ml-algorithm-images-overview)
+ [Membuat gambar pelatihan untuk algoritme](#ml-creating-a-training-image-for-algorithms)
+ [Membuat gambar inferensi untuk algoritme](#ml-creating-an-inference-image-for-algorithms)

## Ikhtisar
<a name="ml-algorithm-images-overview"></a>

Algoritma mencakup komponen-komponen berikut: 
+  Gambar pelatihan yang disimpan di [Amazon ECR](https://aws.amazon.com/ecr/) 
+  Gambar inferensi yang disimpan di Amazon Elastic Container Registry (Amazon ECR) 

**catatan**  
 Untuk produk algoritme, wadah pelatihan menghasilkan artefak model yang dimuat ke dalam wadah inferensi pada penerapan model. 

Diagram berikut menunjukkan alur kerja untuk menerbitkan dan menggunakan produk algoritma.

![Diagram bagaimana penjual membuat gambar paket algoritma dan bagaimana pembeli menggunakannya.](http://docs.aws.amazon.com/id_id/marketplace/latest/userguide/images/ml-algorithm-package-images.png)


Alur kerja untuk membuat algoritme SageMaker AI AWS Marketplace mencakup langkah-langkah berikut:

1. Penjual membuat gambar pelatihan dan gambar inferensi (tidak ada akses jaringan saat digunakan) dan mengunggahnya ke Amazon ECR Registry. 

1. Penjual kemudian membuat sumber daya algoritme di Amazon SageMaker AI dan menerbitkan produk ML-nya. AWS Marketplace

1. Pembeli berlangganan produk ML. 

1. Pembeli membuat pekerjaan pelatihan dengan dataset yang kompatibel dan nilai hyperparameter yang sesuai. SageMaker AI menjalankan gambar pelatihan dan memuat data pelatihan dan hiperparameter ke dalam wadah pelatihan. [Ketika pekerjaan pelatihan selesai, artefak model yang terletak di `/opt/ml/model/` dikompresi dan disalin ke ember Amazon S3 pembeli.](https://aws.amazon.com/s3/) 

1. Pembeli membuat paket model dengan artefak model dari pelatihan yang disimpan di Amazon S3 dan menyebarkan model. 

1. SageMaker AI menjalankan gambar inferensi, mengekstrak artefak model terkompresi, dan memuat file ke dalam jalur direktori kontainer inferensi `/opt/ml/model/` di mana ia dikonsumsi oleh kode yang melayani inferensi. 

1.  Apakah model diterapkan sebagai titik akhir atau pekerjaan transformasi batch, SageMaker AI meneruskan data untuk inferensi atas nama pembeli ke wadah melalui titik akhir HTTP penampung dan mengembalikan hasil prediksi. 

**catatan**  
 Untuk informasi lebih lanjut, lihat [Model Kereta](https://docs.aws.amazon.com/sagemaker/latest/dg/train-model.html). 

## Membuat gambar pelatihan untuk algoritme
<a name="ml-creating-a-training-image-for-algorithms"></a>

 Bagian ini memberikan panduan untuk mengemas kode pelatihan Anda ke dalam gambar pelatihan. Gambar pelatihan diperlukan untuk membuat produk algoritme. 

 *Gambar pelatihan adalah gambar* Docker yang berisi algoritme pelatihan Anda. Wadah mematuhi struktur file tertentu untuk memungkinkan SageMaker AI menyalin data ke dan dari penampung Anda. 

 Baik gambar pelatihan dan inferensi diperlukan saat menerbitkan produk algoritme. Setelah membuat gambar pelatihan Anda, Anda harus membuat gambar inferensi. Kedua gambar dapat digabungkan menjadi satu gambar atau tetap sebagai gambar terpisah. Apakah akan menggabungkan gambar atau memisahkannya terserah Anda. Biasanya, inferensi lebih sederhana daripada pelatihan, dan Anda mungkin ingin gambar terpisah untuk membantu kinerja inferensi.

**catatan**  
 Berikut ini hanya satu contoh kode pengemasan untuk gambar pelatihan. Untuk informasi selengkapnya, lihat [Menggunakan algoritme dan model Anda sendiri dengan](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-marketplace.html) [contoh AWS Marketplace dan AWS Marketplace SageMaker AI](https://github.com/aws/amazon-sagemaker-examples/tree/master/aws_marketplace). GitHub

**Topics**
+ [Langkah 1: Membuat gambar kontainer](#ml-step-1-creating-the-container-image-1)
+ [Langkah 2: Membangun dan menguji gambar secara lokal](#ml-step-2-building-and-testing-the-image-locally-1)

### Langkah 1: Membuat gambar kontainer
<a name="ml-step-1-creating-the-container-image-1"></a>

 Agar gambar pelatihan kompatibel dengan Amazon SageMaker AI, gambar harus mematuhi struktur file tertentu agar SageMaker AI dapat menyalin data pelatihan dan input konfigurasi ke jalur tertentu di wadah Anda. Saat pelatihan selesai, artefak model yang dihasilkan disimpan di jalur direktori tertentu di wadah tempat salinan SageMaker AI. 

 Berikut ini menggunakan CLI Docker yang diinstal di lingkungan pengembangan pada distribusi Ubuntu Linux. 
+ [Siapkan program Anda untuk membaca input konfigurasi](#ml-prepare-your-program-to-read-configuration-inputs)
+ [Siapkan program Anda untuk membaca input data](#ml-prepare-your-program-to-read-data-inputs)
+ [Siapkan program Anda untuk menulis output pelatihan](#ml-prepare-your-program-to-write-training-outputs)
+ [Buat skrip untuk container run](#ml-create-the-script-for-the-container-run-1)
+ [Buat `Dockerfile`](#ml-create-the-dockerfile-1)

#### Siapkan program Anda untuk membaca input konfigurasi
<a name="ml-prepare-your-program-to-read-configuration-inputs"></a>

 Jika program pelatihan Anda memerlukan input konfigurasi yang disediakan pembeli, berikut ini adalah di mana program tersebut disalin ke dalam container Anda saat dijalankan. Jika diperlukan, program Anda harus membaca dari jalur file tertentu. 
+  `/opt/ml/input/config`adalah direktori yang berisi informasi yang mengontrol bagaimana program Anda berjalan. 
  +  `hyperparameters.json`adalah kamus berformat JSON dari nama dan nilai hyperparameter. Nilainya adalah string, jadi Anda mungkin perlu mengonversinya. 
  +  `resourceConfig.json`[adalah file berformat JSON yang menjelaskan tata letak jaringan yang digunakan untuk pelatihan terdistribusi.](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-running-container.html#your-algorithms-training-algo-running-container-dist-training) Jika gambar pelatihan Anda tidak mendukung pelatihan terdistribusi, Anda dapat mengabaikan file ini. 

**catatan**  
 Untuk informasi selengkapnya tentang input konfigurasi, lihat [Cara Amazon SageMaker AI Menyediakan Informasi Pelatihan](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-running-container.html). 

#### Siapkan program Anda untuk membaca input data
<a name="ml-prepare-your-program-to-read-data-inputs"></a>

 Data pelatihan dapat diteruskan ke wadah dalam salah satu dari dua mode berikut. Program pelatihan Anda yang berjalan di wadah mencerna data pelatihan di salah satu dari dua mode tersebut. 

 **Modus berkas** 
+  `/opt/ml/input/data/<channel_name>/`berisi data input untuk saluran itu. Saluran dibuat berdasarkan panggilan ke `CreateTrainingJob` operasi, tetapi umumnya penting bahwa saluran cocok dengan apa yang diharapkan algoritme. File untuk setiap saluran disalin dari [Amazon](https://aws.amazon.com/s3/) S3 ke direktori ini, mempertahankan struktur pohon yang ditunjukkan oleh struktur kunci Amazon S3. 

 **Modus pipa** 
+  `/opt/ml/input/data/<channel_name>_<epoch_number>`adalah pipa untuk zaman tertentu. Epoch dimulai dari nol dan meningkat satu setiap kali Anda membacanya. Tidak ada batasan jumlah epoch yang dapat Anda jalankan, tetapi Anda harus menutup setiap pipa sebelum membaca epoch berikutnya. 

#### Siapkan program Anda untuk menulis output pelatihan
<a name="ml-prepare-your-program-to-write-training-outputs"></a>

 Output dari pelatihan ditulis ke direktori kontainer berikut: 
+  `/opt/ml/model/`adalah direktori tempat Anda menulis model atau artefak model yang dihasilkan oleh algoritme pelatihan Anda. Model Anda dapat dalam format apa pun yang Anda inginkan. Ini bisa berupa satu file atau seluruh pohon direktori. SageMaker AI mengemas file apa pun di direktori ini ke dalam file terkompresi (.tar.gz). File ini tersedia di lokasi Amazon S3 yang dikembalikan oleh operasi `DescribeTrainingJob` API. 
+  `/opt/ml/output/`adalah direktori tempat algoritme dapat menulis `failure` file yang menjelaskan mengapa pekerjaan gagal. Isi file ini dikembalikan di `FailureReason` bidang `DescribeTrainingJob` hasil. Untuk pekerjaan yang berhasil, tidak ada alasan untuk menulis file ini karena diabaikan. 

#### Buat skrip untuk container run
<a name="ml-create-the-script-for-the-container-run-1"></a>

 Buat skrip `train` shell yang dijalankan SageMaker AI saat menjalankan image container Docker. Ketika pelatihan selesai dan artefak model ditulis ke direktori masing-masing, keluar dari skrip. 

 **`./train`** 

```
#!/bin/bash

# Run your training program here
#
#
#
#
```

#### Buat `Dockerfile`
<a name="ml-create-the-dockerfile-1"></a>

 Buat `Dockerfile` dalam konteks build Anda. Contoh ini menggunakan Ubuntu 18.04 sebagai gambar dasar, tetapi Anda dapat mulai dari gambar dasar apa pun yang berfungsi untuk kerangka kerja Anda. 

 **`./Dockerfile`** 

```
FROM ubuntu:18.04

# Add training dependencies and programs
#
#
#
#
#
# Add a script that SageMaker AI will run
# Set run permissions
# Prepend program directory to $PATH
COPY /train /opt/program/train
RUN chmod 755 /opt/program/train
ENV PATH=/opt/program:${PATH}
```

 `Dockerfile`Menambahkan `train` skrip yang dibuat sebelumnya ke gambar. Direktori skrip ditambahkan ke PATH sehingga dapat berjalan ketika wadah berjalan. 

 Pada contoh sebelumnya, tidak ada logika pelatihan yang sebenarnya. Untuk gambar pelatihan Anda yang sebenarnya, tambahkan dependensi pelatihan ke`Dockerfile`, dan tambahkan logika untuk membaca input pelatihan untuk melatih dan menghasilkan artefak model. 

 Gambar pelatihan Anda harus berisi semua dependensi yang diperlukan karena tidak akan memiliki akses internet. 

 Untuk informasi selengkapnya, lihat [Menggunakan algoritme dan model Anda sendiri dengan](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-marketplace.html) [contoh AWS Marketplace dan AWS Marketplace SageMaker AI](https://github.com/aws/amazon-sagemaker-examples/tree/master/aws_marketplace). GitHub

### Langkah 2: Membangun dan menguji gambar secara lokal
<a name="ml-step-2-building-and-testing-the-image-locally-1"></a>

 Dalam konteks build, file berikut sekarang ada: 
+ `./Dockerfile`
+ `./train`
+ Ketergantungan dan logika pelatihan Anda

 Selanjutnya Anda dapat membangun, menjalankan, dan menguji image container ini. 

#### Bangun citra
<a name="ml-build-the-image-1"></a>

 Jalankan perintah Docker dalam konteks build untuk membangun dan menandai gambar. Contoh ini menggunakan tag`my-training-image`. 

```
sudo docker build --tag my-training-image ./
```

 Setelah menjalankan perintah Docker ini untuk membangun gambar, Anda akan melihat output saat Docker membangun gambar berdasarkan setiap baris di baris Anda. `Dockerfile` Setelah selesai, Anda akan melihat sesuatu yang mirip dengan yang berikut ini. 

```
Successfully built abcdef123456
Successfully tagged my-training-image:latest
```

#### Jalankan secara lokal
<a name="ml-run-locally-1"></a>

 Setelah itu selesai, uji gambar secara lokal seperti yang ditunjukkan pada contoh berikut. 

```
sudo docker run \
  --rm \
  --volume '<path_to_input>:/opt/ml/input:ro' \
  --volume '<path_to_model>:/opt/ml/model' \
  --volume '<path_to_output>:/opt/ml/output' \
  --name my-training-container \
  my-training-image \
  train
```

 Berikut ini adalah detail perintah: 
+  `--rm`- Secara otomatis menghapus wadah setelah berhenti. 
+  `--volume '<path_to_input>:/opt/ml/input:ro'`— Jadikan direktori input pengujian tersedia untuk wadah sebagai hanya-baca. 
+  `--volume '<path_to_model>:/opt/ml/model'`— Bind mount jalur tempat artefak model disimpan di mesin host saat tes pelatihan selesai. 
+  `--volume '<path_to_output>:/opt/ml/output'`— Bind mount path di mana alasan kegagalan dalam `failure` file ditulis pada mesin host. 
+  `--name my-training-container`— Beri nama wadah yang sedang berjalan ini. 
+  `my-training-image`— Jalankan gambar yang dibangun. 
+  `train`— Jalankan skrip yang sama yang dijalankan SageMaker AI saat menjalankan wadah. 

 Setelah menjalankan perintah ini, Docker membuat wadah dari gambar pelatihan yang Anda buat dan menjalankannya. Wadah menjalankan `train` skrip, yang memulai program pelatihan Anda. 

 Setelah program pelatihan Anda selesai dan wadah keluar, periksa apakah artefak model keluaran sudah benar. Selain itu, periksa keluaran log untuk mengonfirmasi bahwa mereka tidak menghasilkan log yang tidak Anda inginkan, sambil memastikan informasi yang cukup diberikan tentang pekerjaan pelatihan. 

 Ini melengkapi pengemasan kode pelatihan Anda untuk produk algoritme. Karena produk algoritme juga menyertakan gambar inferensi, lanjutkan ke bagian berikutnya,[Membuat gambar inferensi untuk algoritme](#ml-creating-an-inference-image-for-algorithms). 

## Membuat gambar inferensi untuk algoritme
<a name="ml-creating-an-inference-image-for-algorithms"></a>

 Bagian ini memberikan panduan untuk mengemas kode inferensi Anda ke dalam gambar inferensi untuk produk algoritme Anda. 

 Gambar inferensi adalah gambar Docker yang berisi logika inferensi Anda. Container saat runtime mengekspos titik akhir HTTP untuk memungkinkan SageMaker AI meneruskan data ke dan dari container Anda. 

 Baik gambar pelatihan dan inferensi diperlukan saat menerbitkan produk algoritme. Jika Anda belum melakukannya, lihat bagian sebelumnya tentang[Membuat gambar pelatihan untuk algoritme](#ml-creating-a-training-image-for-algorithms). Kedua gambar dapat digabungkan menjadi satu gambar atau tetap sebagai gambar terpisah. Apakah akan menggabungkan gambar atau memisahkannya terserah Anda. Biasanya, inferensi lebih sederhana daripada pelatihan, dan Anda mungkin ingin gambar terpisah untuk membantu kinerja inferensi.

**catatan**  
 Berikut ini hanya satu contoh kode kemasan untuk gambar inferensi. Untuk informasi selengkapnya, lihat [Menggunakan algoritme dan model Anda sendiri dengan](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-marketplace.html) [contoh AWS Marketplace dan AWS Marketplace SageMaker AI](https://github.com/aws/amazon-sagemaker-examples/tree/master/aws_marketplace). GitHub  
Contoh berikut menggunakan layanan web, [Flask](https://pypi.org/project/Flask/), untuk kesederhanaan, dan tidak dianggap siap produksi.

**Topics**
+ [Langkah 1: Membuat gambar inferensi](#ml-step-1-creating-the-inference-image)
+ [Langkah 2: Membangun dan menguji gambar secara lokal](#ml-step-2-building-and-testing-the-image-locally-2)

### Langkah 1: Membuat gambar inferensi
<a name="ml-step-1-creating-the-inference-image"></a>

 Agar gambar inferensi kompatibel dengan SageMaker AI, image Docker harus mengekspos titik akhir HTTP. Saat container Anda berjalan, SageMaker AI meneruskan input untuk inferensi yang diberikan oleh pembeli ke titik akhir HTTP container Anda. Hasil inferensi dikembalikan dalam tubuh respons HTTP. 

 Berikut ini menggunakan CLI Docker yang diinstal di lingkungan pengembangan pada distribusi Ubuntu Linux. 
+ [Buat skrip server web](#ml-create-the-web-server-script-1) 
+ [Buat skrip untuk container run](#ml-create-the-script-for-the-container-run-2)
+ [Buat `Dockerfile`](#ml-create-the-dockerfile-2)
+ [Mempersiapkan program Anda untuk memuat artefak model secara dinamis](#ml-preparing-your-program-to-dynamically-load-model-artifacts)

#### Buat skrip server web
<a name="ml-create-the-web-server-script-1"></a>

 Contoh ini menggunakan server Python yang disebut [Flask](https://pypi.org/project/Flask/), tetapi Anda dapat menggunakan server web apa pun yang berfungsi untuk kerangka kerja Anda. 

**catatan**  
[Labu](https://pypi.org/project/Flask/) digunakan di sini untuk kesederhanaan. Ini tidak dianggap sebagai server web siap produksi.

 Buat skrip server web Flask yang melayani dua titik akhir HTTP pada port TCP 8080 yang digunakan AI. SageMaker Berikut ini adalah dua titik akhir yang diharapkan: 
+  `/ping`— SageMaker AI membuat permintaan HTTP GET ke titik akhir ini untuk memeriksa apakah wadah Anda sudah siap. Ketika penampung Anda siap, ia merespons permintaan HTTP GET di titik akhir ini dengan kode respons HTTP 200. 
+  `/invocations`— SageMaker AI membuat permintaan HTTP POST ke titik akhir ini untuk inferensi. Data input untuk inferensi dikirim dalam badan permintaan. Jenis konten yang ditentukan pengguna diteruskan di header HTTP. Tubuh respons adalah output inferensi. 

 **`./web_app_serve.py`** 

```
# Import modules
import json
import re
from flask import Flask
from flask import request
app = Flask(__name__)

# Create a path for health checks
@app.route("/ping")
def endpoint_ping():
  return ""
 
# Create a path for inference
@app.route("/invocations", methods=["POST"])
def endpoint_invocations():
  
  # Read the input
  input_str = request.get_data().decode("utf8")
  
  # Add your inference code here.
  #
  #
  #
  #
  #
  # Add your inference code here.
  
  # Return a response with a prediction
  response = {"prediction":"a","text":input_str}
  return json.dumps(response)
```

 Pada contoh sebelumnya, tidak ada logika inferensi yang sebenarnya. Untuk gambar inferensi Anda yang sebenarnya, tambahkan logika inferensi ke dalam aplikasi web sehingga memproses input dan mengembalikan prediksi. 

 Gambar inferensi Anda harus berisi semua dependensi yang diperlukan karena tidak akan memiliki akses internet. 

#### Buat skrip untuk container run
<a name="ml-create-the-script-for-the-container-run-2"></a>

 Buat skrip bernama `serve` SageMaker AI berjalan saat menjalankan image container Docker. Dalam skrip ini, mulai server web HTTP. 

 **`./serve`** 

```
#!/bin/bash

# Run flask server on port 8080 for SageMaker AI
flask run --host 0.0.0.0 --port 8080
```

#### Buat `Dockerfile`
<a name="ml-create-the-dockerfile-2"></a>

 Buat `Dockerfile` dalam konteks build Anda. Contoh ini menggunakan Ubuntu 18.04, tetapi Anda dapat memulai dari gambar dasar apa pun yang berfungsi untuk kerangka kerja Anda. 

 **`./Dockerfile`** 

```
FROM ubuntu:18.04

# Specify encoding
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8

# Install python-pip
RUN apt-get update \
&& apt-get install -y python3.6 python3-pip \
&& ln -s /usr/bin/python3.6 /usr/bin/python \
&& ln -s /usr/bin/pip3 /usr/bin/pip;

# Install flask server
RUN pip install -U Flask;

# Add a web server script to the image
# Set an environment to tell flask the script to run
COPY /web_app_serve.py /web_app_serve.py
ENV FLASK_APP=/web_app_serve.py

# Add a script that Amazon SageMaker AI will run
# Set run permissions
# Prepend program directory to $PATH
COPY /serve /opt/program/serve
RUN chmod 755 /opt/program/serve
ENV PATH=/opt/program:${PATH}
```

 `Dockerfile`Menambahkan dua skrip yang dibuat sebelumnya ke gambar. Direktori `serve` skrip ditambahkan ke PATH sehingga dapat berjalan ketika wadah berjalan. 

#### Mempersiapkan program Anda untuk memuat artefak model secara dinamis
<a name="ml-preparing-your-program-to-dynamically-load-model-artifacts"></a>

 Untuk produk algoritme, pembeli menggunakan kumpulan data mereka sendiri dengan gambar pelatihan Anda untuk menghasilkan artefak model yang unik. Saat proses pelatihan selesai, wadah pelatihan Anda mengeluarkan artefak model ke direktori kontainer. ` /opt/ml/model/` SageMaker AI memampatkan konten dalam direktori itu menjadi file.tar.gz dan menyimpannya di pembeli di Amazon S3. Akun AWS 

 Saat model diterapkan, SageMaker AI menjalankan gambar inferensi Anda, mengekstrak artefak model dari file.tar.gz yang disimpan di akun pembeli di Amazon S3, dan memuatnya ke wadah inferensi di direktori. `/opt/ml/model/` Saat runtime, kode kontainer inferensi Anda menggunakan data model. 

**catatan**  
 Untuk melindungi kekayaan intelektual apa pun yang mungkin terkandung dalam file artefak model, Anda dapat memilih untuk mengenkripsi file sebelum mengeluarkannya. Untuk informasi selengkapnya, lihat [Keamanan dan kekayaan intelektual dengan Amazon SageMaker AI](ml-security-and-intellectual-property.md). 

### Langkah 2: Membangun dan menguji gambar secara lokal
<a name="ml-step-2-building-and-testing-the-image-locally-2"></a>

 Dalam konteks build, file berikut sekarang ada: 
+ `./Dockerfile`
+ `./web_app_serve.py`
+ `./serve`

 Selanjutnya Anda dapat membangun, menjalankan, dan menguji image container ini. 

#### Bangun citra
<a name="ml-build-the-image-2"></a>

 Jalankan perintah Docker untuk membangun dan menandai gambar. Contoh ini menggunakan tag`my-inference-image`. 

```
sudo docker build --tag my-inference-image ./
```

 Setelah menjalankan perintah Docker ini untuk membangun gambar, Anda akan melihat output saat Docker membangun gambar berdasarkan setiap baris di baris Anda. `Dockerfile` Setelah selesai, Anda akan melihat sesuatu yang mirip dengan yang berikut ini. 

```
Successfully built abcdef123456
Successfully tagged my-inference-image:latest
```

#### Jalankan secara lokal
<a name="ml-run-locally-2"></a>

 Setelah build selesai, Anda dapat menguji gambar secara lokal. 

```
sudo docker run \
  --rm \
  --publish 8080:8080/tcp \
  --volume '<path_to_model>:/opt/ml/model:ro' \
  --detach \
  --name my-inference-container \
  my-inference-image \
  serve
```

 Berikut ini adalah detail perintah: 
+  `--rm`- Secara otomatis menghapus wadah setelah berhenti. 
+  `--publish 8080:8080/tcp`— Ekspos port 8080 untuk mensimulasikan port SageMaker AI mengirimkan permintaan HTTP ke. 
+  `--volume '<path_to_model>:/opt/ml/model:ro'`— Bind mount path ke tempat artefak model uji disimpan di mesin host sebagai read-only untuk membuatnya tersedia untuk kode inferensi Anda dalam wadah. 
+  `--detach`— Jalankan wadah di latar belakang. 
+  `--name my-inference-container`— Beri nama wadah yang sedang berjalan ini. 
+  `my-inference-image`— Jalankan gambar yang dibangun. 
+  `serve`— Jalankan skrip yang sama yang dijalankan SageMaker AI saat menjalankan wadah. 

 Setelah menjalankan perintah ini, Docker membuat wadah dari gambar inferensi dan menjalankannya di latar belakang. Wadah menjalankan `serve` skrip, yang memulai server web Anda untuk tujuan pengujian. 

#### Uji titik akhir HTTP ping
<a name="ml-test-the-ping-http-endpoint-1"></a>

 Saat SageMaker AI menjalankan penampung Anda, ia secara berkala melakukan ping ke titik akhir. Ketika titik akhir mengembalikan respons HTTP dengan kode status 200, itu memberi sinyal ke SageMaker AI bahwa wadah siap untuk inferensi. 

 Jalankan perintah berikut untuk menguji titik akhir dan sertakan header respons. 

```
curl --include http://127.0.0.1:8080/ping
```

 Contoh output ditunjukkan pada contoh berikut. 

```
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 0
Server: MyServer/0.16.0 Python/3.6.8
Date: Mon, 21 Oct 2019 06:58:54 GMT
```

#### Uji titik akhir HTTP inferensi
<a name="ml-test-the-inference-http-endpoint-1"></a>

 Ketika wadah menunjukkan siap dengan mengembalikan kode status 200, SageMaker AI meneruskan data inferensi ke titik akhir `/invocations` HTTP melalui permintaan. `POST` 

 Jalankan perintah berikut untuk menguji titik akhir inferensi. 

```
curl \
  --request POST \
  --data "hello world" \
  http://127.0.0.1:8080/invocations
```

 Contoh output ditunjukkan pada contoh berikut.. 

```
{"prediction": "a", "text": "hello world"}
```

 Dengan dua titik akhir HTTP ini berfungsi, gambar inferensi sekarang kompatibel dengan SageMaker AI. 

**catatan**  
 Model produk algoritme Anda dapat digunakan dalam dua cara: waktu nyata dan batch. Untuk kedua penerapan, SageMaker AI menggunakan titik akhir HTTP yang sama saat menjalankan container Docker. 

 Untuk menghentikan kontainer, jalankan perintah berikut. 

```
sudo docker container stop my-inference-container
```

 Setelah gambar pelatihan dan inferensi Anda untuk produk algoritme Anda siap dan diuji, lanjutkan ke[Mengunggah gambar Anda ke Amazon Elastic Container Registry](ml-uploading-your-images.md). 