

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

# Terapkan model untuk inferensi real-time
<a name="realtime-endpoints-deploy-models"></a>

**penting**  
Kebijakan IAM khusus yang memungkinkan Amazon SageMaker Studio atau Amazon SageMaker Studio Classic membuat SageMaker sumber daya Amazon juga harus memberikan izin untuk menambahkan tag ke sumber daya tersebut. Izin untuk menambahkan tag ke sumber daya diperlukan karena Studio dan Studio Classic secara otomatis menandai sumber daya apa pun yang mereka buat. Jika kebijakan IAM mengizinkan Studio dan Studio Classic untuk membuat sumber daya tetapi tidak mengizinkan penandaan, kesalahan "AccessDenied" dapat terjadi saat mencoba membuat sumber daya. Untuk informasi selengkapnya, lihat [Berikan izin untuk menandai sumber daya AI SageMaker](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS kebijakan terkelola untuk Amazon SageMaker AI](security-iam-awsmanpol.md)yang memberikan izin untuk membuat SageMaker sumber daya sudah menyertakan izin untuk menambahkan tag saat membuat sumber daya tersebut.

Ada beberapa opsi untuk menerapkan model menggunakan layanan hosting SageMaker AI. Anda dapat menyebarkan model secara interaktif dengan SageMaker Studio. Atau, Anda dapat menerapkan model secara terprogram menggunakan AWS SDK, seperti SageMaker Python SDK atau SDK untuk Python (Boto3). Anda juga dapat menerapkan dengan menggunakan AWS CLI.

## Sebelum Anda mulai
<a name="deploy-prereqs"></a>

Sebelum Anda menerapkan model SageMaker AI, cari dan catat hal-hal berikut:
+  Wilayah AWS Tempat bucket Amazon S3 Anda berada
+ Jalur URI Amazon S3 tempat artefak model disimpan
+ Peran IAM untuk AI SageMaker 
+ Jalur registri Docker Amazon ECR URI untuk gambar khusus yang berisi kode inferensi, atau kerangka kerja dan versi gambar Docker bawaan yang didukung dan oleh AWS

 Untuk daftar yang Layanan AWS tersedia di masing-masing Wilayah AWS, lihat Peta [ Wilayah dan Jaringan Edge](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Lihat [ Membuat peran IAM ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) untuk informasi tentang cara membuat peran IAM.

**penting**  
Bucket Amazon S3 tempat artefak model disimpan harus Wilayah AWS sama dengan model yang Anda buat.

## Pemanfaatan sumber daya bersama dengan beberapa model
<a name="deployed-shared-utilization"></a>

Anda dapat menerapkan satu atau beberapa model ke titik akhir dengan Amazon SageMaker AI. Ketika beberapa model berbagi titik akhir, mereka bersama-sama memanfaatkan sumber daya yang dihosting di sana, seperti instance komputasi ML, CPU, dan akselerator. Cara paling fleksibel untuk menerapkan beberapa model ke titik akhir adalah dengan mendefinisikan setiap model sebagai komponen * * inferensi.

### Komponen inferensi
<a name="inference-components"></a>

Komponen inferensi adalah objek hosting SageMaker AI yang dapat Anda gunakan untuk menerapkan model ke titik akhir. Dalam pengaturan komponen inferensi, Anda menentukan model, titik akhir, dan bagaimana model menggunakan sumber daya yang dihosting oleh titik akhir. Untuk menentukan model, Anda dapat menentukan objek Model SageMaker AI, atau Anda dapat langsung menentukan artefak model dan gambar.

Dalam pengaturan, Anda dapat mengoptimalkan pemanfaatan sumber daya dengan menyesuaikan bagaimana inti CPU, akselerator, dan memori yang diperlukan dialokasikan ke model. Anda dapat menerapkan beberapa komponen inferensi ke titik akhir, di mana setiap komponen inferensi berisi satu model dan kebutuhan pemanfaatan sumber daya untuk model tersebut. 

Setelah menerapkan komponen inferensi, Anda dapat langsung memanggil model terkait saat menggunakan InvokeEndpoint tindakan di SageMaker API.

Komponen inferensi memberikan manfaat berikut:

**Fleksibilitas**  
Komponen inferensi memisahkan detail hosting model dari titik akhir itu sendiri. Ini memberikan lebih banyak fleksibilitas dan kontrol atas bagaimana model dihosting dan disajikan dengan titik akhir. Anda dapat meng-host beberapa model pada infrastruktur yang sama, dan Anda dapat menambahkan atau menghapus model dari titik akhir sesuai kebutuhan. Anda dapat memperbarui setiap model secara independen.

**Skalabilitas**  
Anda dapat menentukan berapa banyak salinan dari setiap model untuk dihosting, dan Anda dapat menetapkan jumlah salinan minimum untuk memastikan bahwa model dimuat dalam jumlah yang Anda butuhkan untuk melayani permintaan. Anda dapat menskalakan salinan komponen inferensi apa pun hingga nol, yang memberi ruang bagi salinan lain untuk meningkatkan skala. 

SageMaker AI mengemas model Anda sebagai komponen inferensi saat Anda menerapkannya dengan menggunakan:
+ SageMaker Studio Klasik.
+  SageMaker Python SDK untuk menerapkan objek Model (di mana Anda mengatur tipe titik akhir ke`EndpointType.INFERENCE_COMPONENT_BASED`).
+  AWS SDK untuk Python (Boto3) Untuk menentukan `InferenceComponent` objek yang Anda terapkan ke titik akhir.

## Menyebarkan model dengan SageMaker Studio
<a name="deploy-models-studio"></a>

Selesaikan langkah-langkah berikut untuk membuat dan menerapkan model Anda secara interaktif melalui SageMaker Studio. Untuk informasi selengkapnya tentang Studio, lihat [ dokumentasi ](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) Studio. Untuk panduan lebih lanjut tentang berbagai skenario penerapan, lihat blog [ Paket dan terapkan model ML klasik dan LLM dengan mudah dengan Amazon SageMaker AI — Bagian 2. ](https://aws.amazon.com/blogs/machine-learning/package-and-deploy-classical-ml-and-llms-easily-with-amazon-sagemaker-part-2-interactive-user-experiences-in-sagemaker-studio/)

### Siapkan artefak dan izin Anda
<a name="studio-prereqs"></a>

Lengkapi bagian ini sebelum membuat model di SageMaker Studio.

Anda memiliki dua opsi untuk membawa artefak Anda dan membuat model di Studio:

1. Anda dapat membawa `tar.gz` arsip pra-paket, yang harus menyertakan artefak model Anda, kode inferensi kustom apa pun, dan dependensi apa pun yang tercantum dalam file. `requirements.txt`

1. SageMaker AI dapat mengemas artefak Anda untuk Anda. Anda hanya perlu membawa artefak model mentah dan dependensi apa pun dalam `requirements.txt` file, dan SageMaker AI dapat memberikan kode inferensi default untuk Anda (atau Anda dapat mengganti kode default dengan kode inferensi khusus Anda sendiri). SageMaker AI mendukung opsi ini untuk kerangka kerja berikut: PyTorch, XGBoost.

Selain membawa model Anda, peran AWS Identity and Access Management (IAM) Anda, dan wadah Docker (atau kerangka kerja dan versi yang diinginkan yang SageMaker AI memiliki wadah pra-bangun), Anda juga harus memberikan izin untuk membuat dan menerapkan model melalui SageMaker AI Studio.

Anda harus memiliki [ AmazonSageMakerFullAccess ](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html) kebijakan yang melekat pada peran IAM Anda sehingga Anda dapat mengakses SageMaker AI dan layanan terkait lainnya. Untuk melihat harga jenis instans di Studio, Anda juga harus melampirkan [AWS PriceListServiceFullAccess ](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSPriceListServiceFullAccess.html) kebijakan (atau jika Anda tidak ingin melampirkan keseluruhan kebijakan, lebih khusus lagi, `pricing:GetProducts` tindakan).

Jika Anda memilih untuk mengunggah artefak model saat membuat model (atau mengunggah file muatan sampel untuk rekomendasi inferensi), maka Anda harus membuat bucket Amazon S3. Nama bucket harus diawali dengan kata`SageMaker AI`. Kapitalisasi alternatif SageMaker AI juga dapat diterima: `Sagemaker` atau. `sagemaker`

Sebaiknya gunakan konvensi penamaan bucket`sagemaker-{{{Region}}}-{{{accountID}}}`. Bucket ini digunakan untuk menyimpan artefak yang Anda unggah.

Setelah membuat bucket, lampirkan kebijakan CORS (cross-origin resource sharing) berikut ke bucket:

```
[
    {
        "AllowedHeaders": ["*"],
        "ExposeHeaders": ["Etag"],
        "AllowedMethods": ["PUT", "POST"],
        "AllowedOrigins": ['https://*.sagemaker.aws'],
    }
]
```

Anda dapat melampirkan kebijakan CORS ke bucket Amazon S3 dengan menggunakan salah satu metode berikut:
+ Melalui [ halaman ](https://s3.console.aws.amazon.com/s3/bucket/bucket-name/property/cors/edit) Edit cross-origin resource sharing (CORS) di konsol Amazon S3
+ Menggunakan API Amazon S3 [ PutBucketCors ](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html)
+ Menggunakan perintah put-bucket-cors: AWS CLI 

  ```
  aws s3api put-bucket-cors --bucket="..." --cors-configuration="..."
  ```

### Buat model yang dapat diterapkan
<a name="studio-create-model"></a>

Pada langkah ini, Anda membuat versi model yang dapat diterapkan di SageMaker AI dengan menyediakan artefak Anda bersama dengan spesifikasi tambahan, seperti wadah dan kerangka kerja yang Anda inginkan, kode inferensi khusus, dan pengaturan jaringan.

Buat model yang dapat diterapkan di SageMaker Studio dengan melakukan hal berikut:

1. Buka aplikasi SageMaker Studio.

1. Di panel navigasi kiri, pilih ** Model**.

1. Pilih tab ** Model yang dapat digunakan. **

1. Pada ** halaman ** Model yang dapat digunakan, pilih ** Buat. **

1. Pada ** halaman ** Buat model yang dapat disebarkan, untuk ** bidang Nama ** model, masukkan nama untuk model.

Ada beberapa bagian lagi untuk Anda isi di halaman Buat model ** yang dapat diterapkan. **

**Bagian definisi ** kontainer terlihat seperti tangkapan layar berikut:

![Tangkapan layar bagian definisi kontainer untuk membuat model di Studio.](https://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/inference/studio-container-definition.png)


**Untuk **Definisi kontainer** bagian, lakukan hal berikut:**

1. Untuk ** Jenis Kontainer**, pilih ** Pre-built wadah ** jika Anda ingin menggunakan wadah yang dikelola SageMaker AI, atau pilih ** Bawa wadah Anda sendiri ** jika Anda memiliki wadah sendiri.

1. Jika Anda memilih ** Pre-built wadah**, pilih framework ** Container**, versi ** Framework**, dan tipe ** Hardware ** yang ingin Anda gunakan.

1. Jika Anda memilih ** Bawa wadah Anda sendiri**, masukkan jalur Amazon ECR untuk ** jalur ECR ke gambar wadah**.

Kemudian, isi ** bagian Arti ** fak, yang terlihat seperti tangkapan layar berikut:

![Screenshot dari bagian Artifacts untuk membuat model di Studio.](https://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/inference/studio-artifacts-section.png)


**Untuk **Artifacts** bagian, lakukan hal berikut:**

1. Jika Anda menggunakan salah satu kerangka kerja yang didukung SageMaker AI untuk mengemas artefak model (PyTorch atau XGBoost), maka untuk Arti ** facts**, Anda dapat memilih opsi Ungg ** ah artefak**. Dengan opsi ini, Anda cukup menentukan artefak model mentah Anda, kode inferensi khusus yang Anda miliki, dan file requirements.txt Anda, dan SageMaker AI menangani pengemasan arsip untuk Anda. Lakukan hal-hal berikut:

   1. Untuk ** Artefak**, pilih ** Unggah artefak ** untuk terus menyediakan file Anda. Jika tidak, jika Anda sudah memiliki `tar.gz` arsip yang berisi file model, kode inferensi, dan `requirements.txt` file, pilih In ** put S3 URI ke artefak pra-paket. **

   1. Jika Anda memilih untuk mengunggah artefak**, maka untuk bucket ** S3, masukkan jalur Amazon S3 ke bucket tempat Anda ingin SageMaker AI menyimpan artefak setelah mengemasnya untuk Anda. Kemudian, selesaikan langkah-langkah berikut.

   1. Untuk ** Unggah artefak model**, unggah file model Anda.

   1. Untuk Kode ** inferensi**, pilih ** Gunakan kode inferensi default ** jika Anda ingin menggunakan kode default yang disediakan SageMaker AI untuk menyajikan inferensi. Jika tidak, pilih ** Unggah kode inferensi yang disesuaikan ** untuk menggunakan kode inferensi Anda sendiri.

   1. Untuk ** Upload requirements.txt**, unggah file teks yang mencantumkan dependensi apa pun yang ingin Anda instal saat runtime.

1. Jika Anda tidak menggunakan kerangka kerja yang didukung SageMaker AI untuk mengemas artefak model, Studio menunjukkan ** opsi ** Pre-packaged artefak, dan Anda harus menyediakan semua artefak yang sudah dikemas sebagai `tar.gz` arsip. Lakukan hal-hal berikut:

   1. Untuk ** Pre-packaged artefak**, pilih ** Input S3 URI untuk artefak model pra- ** paket jika `tar.gz` arsip Anda sudah diunggah ke Amazon S3. Pilih ** Unggah artefak model pra- ** paket jika Anda ingin langsung mengunggah arsip Anda ke SageMaker AI.

   1. Jika Anda memilih ** Input S3 URI untuk artefak model pra- ** paket, masukkan jalur Amazon S3 ke arsip Anda untuk URI ** ** S3. Jika tidak, pilih dan unggah arsip dari mesin lokal Anda.

Bagian selanjutnya adalah ** Keamanan**, yang terlihat seperti tangkapan layar berikut:

![Tangkapan layar bagian Keamanan untuk membuat model di Studio.](https://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/inference/studio-security-section.png)


**Untuk **Keamanan** bagian, lakukan hal berikut:**

1. Untuk peran ** IAM**, masukkan ARN untuk peran IAM.

1. (Opsional) Untuk ** Virtual Private Cloud (VPC)**, Anda dapat memilih Amazon VPC untuk menyimpan konfigurasi model dan artefak Anda.

1. (Opsional) Aktif ** kan sak ** elar isolasi jaringan jika Anda ingin membatasi akses internet wadah Anda.

Terakhir, Anda dapat secara opsional mengisi ** bagian Opsi ** lanjutan, yang terlihat seperti tangkapan layar berikut:

![Tangkapan layar bagian Opsi lanjutan untuk membuat model di Studio.](https://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/inference/studio-advanced-options.png)


**(Opsional) Untuk **Opsi lanjutan** bagian, lakukan hal berikut:**

1. Aktifkan sak ** elar Rekomendasi ** instans yang disesuaikan jika Anda ingin menjalankan tugas Rekom SageMaker endasi Inferensi Amazon pada model Anda setelah pembuatannya. Inference Recommender adalah fitur yang memberi Anda jenis instans yang direkomendasikan untuk mengoptimalkan kinerja inferensi dan biaya. Anda dapat melihat rekomendasi instans ini saat mempersiapkan penerapan model Anda.

1. Untuk ** Tambahkan variabel lingkungan**, masukkan variabel lingkungan untuk wadah Anda sebagai pasangan kunci-nilai.

1. Untuk ** Tag**, masukkan tag apa pun sebagai pasangan kunci-nilai.

1. Setelah menyelesaikan konfigurasi model dan wadah Anda, pilih ** Buat model yang dapat diterapkan. **

Anda sekarang harus memiliki model di SageMaker Studio yang siap untuk penerapan.

### Menyebarkan model Anda
<a name="studio-deploy"></a>

Terakhir, Anda menerapkan model yang Anda konfigurasikan pada langkah sebelumnya ke titik akhir HTTPS. Anda dapat menerapkan model tunggal atau beberapa model ke titik akhir.

**Kompatibilitas model dan titik akhir**  
Sebelum Anda dapat menerapkan model ke titik akhir, model dan titik akhir harus kompatibel dengan memiliki nilai yang sama untuk pengaturan berikut:  
Peran IAM
Amazon VPC, termasuk subnet dan grup keamanannya
Isolasi jaringan (diaktifkan atau dinonaktifkan)
Studio mencegah Anda menerapkan model ke titik akhir yang tidak kompatibel dengan cara berikut:  
Jika Anda mencoba menerapkan model ke titik akhir baru, SageMaker AI mengonfigurasi titik akhir dengan pengaturan awal yang kompatibel. Jika Anda merusak kompatibilitas dengan mengubah pengaturan ini, Studio akan menampilkan peringatan dan mencegah penerapan Anda.
Jika Anda mencoba menerapkan ke titik akhir yang ada, dan titik akhir itu tidak kompatibel, Studio menampilkan peringatan dan mencegah penerapan Anda. 
Jika Anda mencoba menambahkan beberapa model ke penerapan, Studio mencegah Anda menerapkan model yang tidak kompatibel satu sama lain.
Saat Studio menampilkan peringatan tentang ketidakcocokan model dan titik akhir, Anda dapat memilih ** Lihat detail ** dalam peringatan untuk melihat pengaturan mana yang tidak kompatibel.

Salah satu cara untuk menerapkan model adalah dengan melakukan hal berikut di Studio:

1. Buka aplikasi SageMaker Studio.

1. Di panel navigasi kiri, pilih ** Model**.

1. Pada ** halaman ** Model, pilih satu atau beberapa model dari daftar model SageMaker AI.

1. Pilih **Deploy**.

1. Untuk nama ** Endpoint**, buka menu dropdown. Anda dapat memilih titik akhir yang ada atau Anda dapat membuat titik akhir baru tempat Anda menerapkan model.

1. Untuk ** Jenis Inst ** ance, pilih jenis instance yang ingin Anda gunakan untuk titik akhir. Jika sebelumnya Anda menjalankan pekerjaan Rekomendasi Inferensi untuk model, jenis instans yang Anda rekomendasikan akan muncul dalam daftar di bawah judul ** Direkomendasikan. ** Jika tidak, Anda akan melihat beberapa contoh ** Prospektif ** yang mungkin cocok untuk model Anda.
**Kompatibilitas jenis instans untuk JumpStart**  
Jika Anda menerapkan JumpStart model, Studio hanya menampilkan jenis instance yang didukung model.

1. Untuk ** Jumlah instans awal**, masukkan jumlah instans awal yang ingin Anda sediakan untuk titik akhir.

1. Untuk ** Jumlah instans maksimum**, tentukan jumlah maksimum instans yang dapat disediakan oleh titik akhir saat dinaikkan untuk mengakomodasi peningkatan lalu lintas.

1. Jika model yang Anda terapkan adalah salah satu JumpStart LLM yang paling sering digunakan dari hub model, maka ** opsi Konfigurasi ** alternatif muncul setelah kolom jenis instans dan jumlah instance.

   Untuk JumpStart LLM paling populer, AWS memiliki jenis instans pra-tolok ukur untuk dioptimalkan baik biaya maupun kinerja. Data ini dapat membantu Anda memutuskan jenis instans mana yang akan digunakan untuk menerapkan LLM Anda. Pilih Konfigur ** asi alternatif ** untuk membuka kotak dialog yang berisi data pra-tolok ukur. Panel terlihat seperti tangkapan layar berikut:  
![Tangkapan layar kotak konfigurasi alternatif.](https://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/inference/studio-jumpstart-alternate-configurations.png)

   Di ** kotak Konfigurasi ** alternatif, lakukan hal berikut:

   1. Pilih jenis instance. Anda dapat memilih ** Biaya per jam ** atau Kin ** erja terbaik ** untuk melihat jenis instans yang mengoptimalkan biaya atau kinerja untuk model yang ditentukan. Anda juga dapat memilih Instans ** lain yang didukung ** untuk melihat daftar jenis instans lain yang kompatibel dengan JumpStart model. Perhatikan bahwa memilih jenis instance di sini akan menggantikan pilihan instance sebelumnya yang ditentukan pada Langkah 6.

   1. (Opsional) Aktifkan sakelar Ku ** stomisasi konfigurasi ** yang dipilih untuk menentukan ** total token maksimum ** (jumlah maksimum token yang ingin Anda izinkan, yang merupakan jumlah token input Anda dan keluaran model yang dihasilkan), Panjang token input ** maksimum ** (jumlah maksimum token yang ingin Anda izinkan untuk masukan setiap permintaan), dan Permintaan bersamaan ** maksimum ** (jumlah maksimum permintaan yang dapat diproses model pada satu waktu).

   1. Pilih ** Pilih ** untuk mengonfirmasi jenis instans dan pengaturan konfigurasi Anda.

1. **Bidang ** Model seharusnya sudah diisi dengan nama model atau model yang Anda gunakan. Anda dapat memilih ** Tambahkan model ** untuk menambahkan lebih banyak model ke penerapan. Untuk setiap model yang Anda tambahkan, isi kolom berikut:

   1. Untuk ** Jumlah inti CPU**, masukkan inti CPU yang ingin Anda dedikasikan untuk penggunaan model.

   1. Untuk ** Jumlah salinan minimum**, masukkan jumlah minimum salinan model yang ingin Anda hosting di titik akhir pada waktu tertentu.

   1. Untuk ** Memori CPU Min (MB)**, masukkan jumlah minimum memori (dalam MB) yang dibutuhkan model.

   1. Untuk ** Memori CPU Maks (MB)**, masukkan jumlah memori maksimum (dalam MB) yang ingin Anda izinkan model untuk digunakan.

1. (Opsional) Untuk opsi ** Lanjutan**, lakukan hal berikut:

   1. Untuk peran ** IAM**, gunakan peran eksekusi SageMaker AI IAM default, atau tentukan peran Anda sendiri yang memiliki izin yang Anda butuhkan. Perhatikan bahwa peran IAM ini harus sama dengan peran yang Anda tentukan saat membuat model yang dapat diterapkan.

   1. Untuk ** Virtual Private Cloud (VPC)**, Anda dapat menentukan VPC tempat Anda ingin meng-host titik akhir Anda.

   1. Untuk kunci KMS ** Enkripsi**, pilih AWS KMS kunci untuk mengenkripsi data pada volume penyimpanan yang dilampirkan ke instance komputasi ML yang menghosting titik akhir.

   1. Aktifkan ** sakelar Aktif ** kan isolasi jaringan untuk membatasi akses internet wadah Anda.

   1. Untuk ** konfigurasi batas waktu**, masukkan nilai untuk bidang batas waktu ** unduhan data model (detik) ** dan batas waktu pemeriksaan kesehatan startup ** kontainer (detik). ** Nilai-nilai ini menentukan jumlah waktu maksimum yang memungkinkan SageMaker AI untuk mengunduh model ke wadah dan memulai wadah, masing-masing.

   1. Untuk ** Tag**, masukkan tag apa pun sebagai pasangan kunci-nilai.
**catatan**  
SageMaker AI mengonfigurasi pengaturan peran IAM, VPC, dan isolasi jaringan dengan nilai awal yang kompatibel dengan model yang Anda gunakan. Jika Anda merusak kompatibilitas dengan mengubah pengaturan ini, Studio akan menampilkan peringatan dan mencegah penerapan Anda.

Setelah mengonfigurasi opsi Anda, halaman akan terlihat seperti tangkapan layar berikut.

![Tangkapan layar halaman model Deploy di Studio.](https://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/inference/studio-deploy-realtime-model-2.png)


Setelah mengonfigurasi penerapan Anda, pilih ** Deploy ** untuk membuat titik akhir dan menerapkan model Anda.

## Menyebarkan model dengan Python SDK
<a name="deploy-models-python"></a>

Menggunakan SageMaker Python SDK, Anda dapat membangun model Anda dengan dua cara. Yang pertama adalah membuat objek model dari `ModelBuilder` kelas `Model` or. Jika Anda menggunakan `Model` kelas untuk membuat `Model` objek, Anda perlu menentukan paket model atau kode inferensi (tergantung pada server model Anda), skrip untuk menangani serialisasi dan deserialisasi data antara klien dan server, dan dependensi apa pun yang akan diunggah ke Amazon S3 untuk konsumsi. Cara kedua untuk membangun model Anda adalah dengan menggunakan `ModelBuilder` yang Anda berikan artefak model atau kode inferensi. `ModelBuilder`secara otomatis menangkap dependensi Anda, menyimpulkan fungsi serialisasi dan deserialisasi yang diperlukan, dan mengemas dependensi Anda untuk membuat objek Anda. `Model` Untuk informasi selengkapnya tentang `ModelBuilder`, lihat [Buat model di Amazon SageMaker AI dengan ModelBuilder](how-it-works-modelbuilder-creation.md).

Bagian berikut menjelaskan kedua metode untuk membuat model dan menerapkan objek model Anda.

### Penyiapan
<a name="python-setup"></a>

Contoh berikut mempersiapkan proses penerapan model. Mereka mengimpor pustaka yang diperlukan dan menentukan URL S3 yang menemukan artefak model.

------
#### [ SageMaker Python SDK ]

**Example pernyataan impor**  
Contoh berikut mengimpor modul dari SageMaker Python SDK v3. Modul-modul ini menyediakan metode berguna yang membantu Anda menerapkan model, dan mereka digunakan oleh contoh lainnya yang mengikuti.  

```
import boto3
from sagemaker.serve import ModelBuilder
from sagemaker.core.resources import Endpoint
from sagemaker.core.helper.session_helper import Session
```

------
#### [ Boto3 (Inference Components) ]

**Example pernyataan impor**  
Contoh berikut mengimpor modul dari SDK untuk Python (Boto3) dan Pustaka Standar Python. Modul-modul ini menyediakan metode berguna yang membantu Anda menerapkan model, dan mereka digunakan oleh contoh lainnya yang mengikuti.  

```
import boto3
import botocore
import sys
import time
```

------
#### [ Boto3 (Model-based) ]

**Example pernyataan impor**  
Contoh berikut mengimpor modul dari SDK untuk Python (Boto3) dan Pustaka Standar Python. Modul-modul ini menyediakan metode berguna yang membantu Anda menerapkan model, dan mereka digunakan oleh contoh lainnya yang mengikuti.  

```
import boto3
import botocore
import datetime
from time import gmtime, strftime
```

------

**Example URL artefak model**  
Kode berikut membangun contoh URL Amazon S3. URL menemukan artefak model untuk model pra-terlatih di bucket Amazon S3.  

```
# Create a variable w/ the model S3 URL

# The name of your S3 bucket:
s3_bucket = "amzn-s3-demo-bucket"
# The directory within your S3 bucket your model is stored in:
bucket_prefix = "{{sagemaker/model/path}}"
# The file name of your model artifact:
model_filename = "{{my-model-artifact.tar.gz}}"
# Relative S3 path:
model_s3_key = f"{bucket_prefix}/"+model_filename
# Combine bucket name, model file name, and relate S3 path to create S3 model URL:
model_url = f"s3://{s3_bucket}/{model_s3_key}"
```
URL Amazon S3 lengkap disimpan dalam variabel`model_url`, yang digunakan dalam contoh berikut. 

### Gambaran umum
<a name="python-overview"></a>

Ada beberapa cara untuk menerapkan model dengan SageMaker Python SDK atau SDK untuk Python (Boto3). Bagian berikut merangkum langkah-langkah yang Anda selesaikan untuk beberapa pendekatan yang mungkin. Langkah-langkah ini ditunjukkan oleh contoh-contoh berikut.

------
#### [ SageMaker Python SDK ]

Menggunakan SageMaker Python SDK v3, Anda membangun dan menerapkan model Anda dengan`ModelBuilder`. Anda menyediakan artefak model atau kode inferensi, dan `ModelBuilder` secara otomatis menangkap dependensi Anda, menyimpulkan fungsi serialisasi dan deserialisasi yang diperlukan, dan mengemas dependensi Anda untuk membuat model Anda. Untuk menerapkan model, Anda menyelesaikan langkah-langkah berikut:

1. Buat `ModelBuilder` objek dengan artefak model, peran, dan jenis instance Anda.

1. Panggilan `deploy()` untuk menerapkan model ke titik akhir.

------
#### [ Boto3 (Inference Components) ]

Contoh berikut menunjukkan cara menetapkan model ke komponen inferensi dan kemudian menerapkan komponen inferensi ke titik akhir. Untuk menerapkan model dengan cara ini, Anda menyelesaikan langkah-langkah berikut:

1. (Opsional) Buat objek model SageMaker AI dengan menggunakan [`create_model`](https://docs.aws.amazon.com/boto3/latest/reference/services/sagemaker/client/create_model.html) metode.

1. Tentukan pengaturan untuk titik akhir Anda dengan membuat objek konfigurasi titik akhir. Untuk membuatnya, Anda menggunakan [`create_endpoint_config`](https://docs.aws.amazon.com/boto3/latest/reference/services/sagemaker/client/create_endpoint_config.html#create-endpoint-config) metode ini.

1. Buat titik akhir Anda dengan menggunakan [`create_endpoint`](https://docs.aws.amazon.com/boto3/latest/reference/services/sagemaker/client/create_endpoint.html) metode, dan dalam permintaan Anda, berikan konfigurasi titik akhir yang Anda buat.

1. Buat komponen inferensi dengan menggunakan `create_inference_component` metode. Dalam pengaturan, Anda menentukan model dengan melakukan salah satu dari hal berikut:
   + Menentukan objek model SageMaker AI
   + Menentukan URI gambar model dan URL S3

   Anda juga mengalokasikan sumber daya titik akhir ke model. Dengan membuat komponen inferensi, Anda menerapkan model ke titik akhir. Anda dapat menerapkan beberapa model ke titik akhir dengan membuat beberapa komponen inferensi — satu untuk setiap model.

------
#### [ Boto3 (Model-based) ]

Contoh berikut menunjukkan cara membuat objek model dan kemudian menerapkan model ke titik akhir. Untuk menerapkan model dengan cara ini, Anda menyelesaikan langkah-langkah berikut:

1. Buat model SageMaker AI dengan menggunakan [`create_model`](https://docs.aws.amazon.com/boto3/latest/reference/services/sagemaker/client/create_model.html) metode ini.

1. Tentukan pengaturan untuk titik akhir Anda dengan membuat objek konfigurasi titik akhir. Untuk membuatnya, Anda menggunakan [`create_endpoint_config`](https://docs.aws.amazon.com/boto3/latest/reference/services/sagemaker/client/create_endpoint_config.html#create-endpoint-config) metode ini. Dalam konfigurasi titik akhir, Anda menetapkan objek model ke varian produksi.

1. Buat titik akhir Anda dengan menggunakan [`create_endpoint`](https://docs.aws.amazon.com/boto3/latest/reference/services/sagemaker/client/create_endpoint.html) metode ini. Dalam permintaan Anda, berikan konfigurasi titik akhir yang Anda buat. 

   Saat Anda membuat titik akhir, SageMaker AI menyediakan sumber daya titik akhir, dan menerapkan model ke titik akhir.

------

### Konfigurasi
<a name="python-configure"></a>

Contoh berikut mengkonfigurasi sumber daya yang Anda perlukan untuk menerapkan model ke titik akhir.

------
#### [ SageMaker Python SDK ]

Contoh berikut mengonfigurasi a `ModelBuilder` dengan artefak model Anda. `ModelBuilder`menyediakan antarmuka terpadu untuk pengemasan dan penyebaran model.

```
from sagemaker.serve import ModelBuilder

model_builder = ModelBuilder(
    image_uri="{{image-uri}}",
    s3_model_data_url=model_url,
    role_arn="arn:aws:iam::{{111122223333}}:role/service-role/{{role-name}}",
    instance_type="{{ml.p4d.24xlarge}}",
)
```

------
#### [ Boto3 (Inference Components) ]

Contoh berikut mengonfigurasi titik akhir dengan `create_endpoint_config` metode. Anda menetapkan konfigurasi ini ke titik akhir saat Anda membuatnya. Dalam konfigurasi, Anda menentukan satu atau lebih varian produksi. Untuk setiap varian, Anda dapat memilih jenis instans yang ingin disediakan Amazon SageMaker AI, dan Anda dapat mengaktifkan penskalaan instans terkelola.

```
endpoint_config_name = "{{endpoint-config-name}}"
endpoint_name = "{{endpoint-name}}"
inference_component_name = "{{inference-component-name}}"
variant_name = "{{variant-name}}"

sagemaker_client.create_endpoint_config(
    EndpointConfigName = endpoint_config_name,
    ExecutionRoleArn = "arn:aws:iam::{{111122223333}}:role/service-role/{{role-name}}",
    ProductionVariants = [
        {
            "VariantName": variant_name,
            "InstanceType": "{{ml.p4d.24xlarge}}",
            "InitialInstanceCount": {{1}},
            "ManagedInstanceScaling": {
                "Status": "{{ENABLED}}",
                "MinInstanceCount": {{1}},
                "MaxInstanceCount": {{2}},
            },
        }
    ],
)
```

------
#### [ Boto3 (Model-based) ]

**Example definisi model**  
Contoh berikut mendefinisikan model SageMaker AI dengan `create_model` metode di AWS SDK untuk Python (Boto3).  

```
model_name = "{{model-name}}"

create_model_response = sagemaker_client.create_model(
    ModelName = model_name,
    ExecutionRoleArn = "arn:aws:iam::{{111122223333}}:role/service-role/{{role-name}}",
    PrimaryContainer = {
        "Image": "{{image-uri}}",
        "ModelDataUrl": model_url,
    }
)
```
Contoh ini menentukan yang berikut:  
+ `ModelName`: Nama untuk model Anda (dalam contoh ini disimpan sebagai variabel string yang disebut`model_name`).
+ `ExecutionRoleArn`: Nama Sumber Daya Amazon (ARN) dari peran IAM yang dapat diasumsikan oleh Amazon SageMaker AI untuk mengakses artefak model dan gambar Docker untuk penerapan pada instans komputasi ML atau untuk pekerjaan transformasi batch.
+ `PrimaryContainer`: Lokasi gambar Docker utama yang berisi kode inferensi, artefak terkait, dan peta lingkungan khusus yang digunakan kode inferensi saat model digunakan untuk prediksi.

**Example konfigurasi titik akhir**  
Contoh berikut mengonfigurasi titik akhir dengan `create_endpoint_config` metode. Amazon SageMaker AI menggunakan konfigurasi ini untuk menerapkan model. Dalam konfigurasi, Anda mengidentifikasi satu atau lebih model, dibuat dengan `create_model` metode tersebut, untuk menyebarkan sumber daya yang ingin Anda sediakan SageMaker oleh Amazon AI.  

```
endpoint_config_response = sagemaker_client.create_endpoint_config(
    EndpointConfigName = "{{endpoint-config-name}}", 
    # List of ProductionVariant objects, one for each model that you want to host at this endpoint:
    ProductionVariants = [
        {
            "VariantName": "{{variant-name}}", # The name of the production variant.
            "ModelName": model_name, 
            "InstanceType": "{{ml.p4d.24xlarge}}",
            "InitialInstanceCount": {{1}} # Number of instances to launch initially.
        }
    ]
)
```
Contoh ini menentukan kunci berikut untuk `ProductionVariants` bidang:  
+ `VariantName`: Nama varian produksi.
+ `ModelName`: Nama model yang ingin Anda host. Ini adalah nama yang Anda tentukan saat membuat model.
+ `InstanceType`: Jenis instance komputasi. Lihat `InstanceType` bidang di [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html) dan Harga [ SageMaker AI ](https://aws.amazon.com/sagemaker/pricing/) untuk daftar jenis instans komputasi yang didukung dan harga untuk setiap jenis instans.

------

### Deploy
<a name="python-deploy"></a>

Contoh berikut menerapkan model ke titik akhir.

------
#### [ SageMaker Python SDK ]

Contoh berikut menerapkan model ke titik akhir HTTPS real-time menggunakan `deploy` metode`ModelBuilder`.

```
endpoint = model_builder.deploy(
    endpoint_name="{{endpoint-name}}",
    instance_type="{{ml.p4d.24xlarge}}",
    initial_instance_count=1,
)

# Invoke the endpoint
response = endpoint.invoke(
    body=test_payload,
    content_type="application/json"
)
print(response)
```

------
#### [ Boto3 (Inference Components) ]

Setelah Anda memiliki konfigurasi titik akhir, gunakan [ metode ](https://docs.aws.amazon.com/boto3/latest/reference/services/sagemaker/client/create_endpoint.html) create\_endpoint untuk membuat titik akhir Anda. Nama titik akhir harus unik Wilayah AWS dalam AWS akun Anda. 

Contoh berikut membuat titik akhir menggunakan konfigurasi titik akhir yang ditentukan dalam permintaan. Amazon SageMaker AI menggunakan titik akhir untuk menyediakan sumber daya.

```
sagemaker_client.create_endpoint(
    EndpointName = endpoint_name,
    EndpointConfigName = endpoint_config_name,
)
```

Setelah Anda membuat titik akhir, Anda dapat menerapkan satu atau modelnya dengan membuat komponen inferensi. Contoh berikut membuat satu dengan `create_inference_component` metode.

```
sagemaker_client.create_inference_component(
    InferenceComponentName = inference_component_name,
    EndpointName = endpoint_name,
    VariantName = variant_name,
    Specification = {
        "Container": {
            "Image": "{{image-uri}}",
            "ArtifactUrl": model_url,
        },
        "ComputeResourceRequirements": {
            "NumberOfCpuCoresRequired": {{1}}, 
            "MinMemoryRequiredInMb": {{1024}}
        }
    },
    RuntimeConfig = {"CopyCount": {{2}}}
)
```

------
#### [ Boto3 (Model-based) ]

**Example deployment**  

Berikan konfigurasi titik akhir ke SageMaker AI. Layanan meluncurkan instance komputasi ML dan menerapkan model atau model seperti yang ditentukan dalam konfigurasi.

Setelah Anda memiliki konfigurasi model dan titik akhir, gunakan [ metode ](https://docs.aws.amazon.com/boto3/latest/reference/services/sagemaker/client/create_endpoint.html) create\_endpoint untuk membuat titik akhir Anda. Nama titik akhir harus unik Wilayah AWS dalam AWS akun Anda. 

Contoh berikut membuat titik akhir menggunakan konfigurasi titik akhir yang ditentukan dalam permintaan. Amazon SageMaker AI menggunakan titik akhir untuk menyediakan sumber daya dan menerapkan model.

```
create_endpoint_response = sagemaker_client.create_endpoint(
    # The endpoint name must be unique within an AWS Region in your AWS account:
    EndpointName = "{{endpoint-name}}"
    # The name of the endpoint configuration associated with this endpoint:
    EndpointConfigName = "{{endpoint-config-name}}")
```

------

## Menyebarkan model dengan AWS CLI
<a name="deploy-models-cli"></a>

Anda dapat menerapkan model ke titik akhir dengan menggunakan AWS CLI.

### Gambaran umum
<a name="deploy-models-cli-overview"></a>

Saat Anda menerapkan model dengan AWS CLI, Anda dapat menyebarkannya dengan atau tanpa menggunakan komponen inferensi. Bagian berikut merangkum perintah yang Anda jalankan untuk kedua pendekatan. Perintah-perintah ini ditunjukkan oleh contoh-contoh berikut.

------
#### [ With inference components ]

Untuk menerapkan model dengan komponen inferensi, lakukan hal berikut:

1. (Opsional) Buat model dengan [`create-model`](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-model.html) perintah.

1. Tentukan pengaturan untuk titik akhir Anda dengan membuat konfigurasi titik akhir. Untuk membuatnya, Anda menjalankan [`create-endpoint-config`](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html) perintah.

1. Buat titik akhir Anda dengan menggunakan [`create-endpoint`](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html) perintah. Di badan perintah, tentukan konfigurasi titik akhir yang Anda buat.

1. Buat komponen inferensi dengan menggunakan `create-inference-component` perintah. Dalam pengaturan, Anda menentukan model dengan melakukan salah satu dari hal berikut:
   + Menentukan objek model SageMaker AI
   + Menentukan URI gambar model dan URL S3

   Anda juga mengalokasikan sumber daya titik akhir ke model. Dengan membuat komponen inferensi, Anda menerapkan model ke titik akhir. Anda dapat menerapkan beberapa model ke titik akhir dengan membuat beberapa komponen inferensi — satu untuk setiap model.

------
#### [ Without inference components ]

Untuk menerapkan model tanpa menggunakan komponen inferensi, lakukan hal berikut:

1. Buat model SageMaker AI dengan menggunakan [`create-model`](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-model.html) perintah.

1. Tentukan pengaturan untuk titik akhir Anda dengan membuat objek konfigurasi titik akhir. Untuk membuatnya, Anda menggunakan [`create-endpoint-config`](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html) perintah. Dalam konfigurasi titik akhir, Anda menetapkan objek model ke varian produksi.

1. Buat titik akhir Anda dengan menggunakan [`create-endpoint`](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html) perintah. Di badan perintah Anda, tentukan konfigurasi titik akhir yang Anda buat.

   Saat Anda membuat titik akhir, SageMaker AI menyediakan sumber daya titik akhir, dan menerapkan model ke titik akhir.

------

### Konfigurasi
<a name="cli-configure-endpoint"></a>

Contoh berikut mengkonfigurasi sumber daya yang Anda perlukan untuk menerapkan model ke titik akhir.

------
#### [ With inference components ]

**Example perintah create-endpoint-config**  
Contoh berikut membuat konfigurasi titik akhir dengan perintah [ create-end ](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html) point-config.  

```
aws sagemaker create-endpoint-config \
--endpoint-config-name {{endpoint-config-name}} \
--execution-role-arn arn:aws:iam::{{111122223333}}:role/service-role/{{role-name}}\
--production-variants file://production-variants.json
```
Dalam contoh ini, file `production-variants.json` mendefinisikan varian produksi dengan JSON berikut:  

```
[
    {
        "VariantName": "{{variant-name}}",
        "ModelName": "{{model-name}}",
        "InstanceType": "{{ml.p4d.24xlarge}}",
        "InitialInstanceCount": {{1}}
    }
]
```
Jika perintah berhasil, AWS CLI merespons dengan ARN untuk sumber daya yang Anda buat.  

```
{
    "EndpointConfigArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint-config/endpoint-config-name"
}
```

------
#### [ Without inference components ]

**Example perintah create-model**  
Contoh berikut membuat model dengan perintah [ create-model](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-model.html).  

```
aws sagemaker create-model \
--model-name {{model-name}} \
--execution-role-arn arn:aws:iam::{{111122223333}}:role/service-role/{{role-name}} \
--primary-container "{ \"Image\": \"{{image-uri}}\", \"ModelDataUrl\": \"{{model-s3-url}}\"}"
```
Jika perintah berhasil, AWS CLI merespons dengan ARN untuk sumber daya yang Anda buat.  

```
{
    "ModelArn": "arn:aws:sagemaker:us-west-2:111122223333:model/model-name"
}
```

**Example perintah create-endpoint-config**  
Contoh berikut membuat konfigurasi titik akhir dengan perintah [ create-end ](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint-config.html) point-config.  

```
aws sagemaker create-endpoint-config \
--endpoint-config-name {{endpoint-config-name}} \
--production-variants file://production-variants.json
```
Dalam contoh ini, file `production-variants.json` mendefinisikan varian produksi dengan JSON berikut:  

```
[
    {
        "VariantName": "{{variant-name}}",
        "ModelName": "{{model-name}}",
        "InstanceType": "{{ml.p4d.24xlarge}}",
        "InitialInstanceCount": {{1}}
    }
]
```
Jika perintah berhasil, AWS CLI merespons dengan ARN untuk sumber daya yang Anda buat.  

```
{
    "EndpointConfigArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint-config/endpoint-config-name"
}
```

------

### Deploy
<a name="cli-deploy"></a>

Contoh berikut menerapkan model ke titik akhir.

------
#### [ With inference components ]

**Example perintah create-endpoint**  
Contoh berikut membuat titik akhir dengan perintah [ create-endpoint](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html).  

```
aws sagemaker create-endpoint \
--endpoint-name {{endpoint-name}} \
--endpoint-config-name {{endpoint-config-name}}
```
Jika perintah berhasil, AWS CLI merespons dengan ARN untuk sumber daya yang Anda buat.  

```
{
    "EndpointArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint/endpoint-name"
}
```

**Example perintah create-inference-component**  
Contoh berikut membuat komponen inferensi dengan perintah create-inference-component.  

```
aws sagemaker create-inference-component \
--inference-component-name {{inference-component-name}} \
--endpoint-name {{endpoint-name}} \
--variant-name {{variant-name}} \
--specification file://specification.json \
--runtime-config "{{{\"CopyCount\": 2}}}"
```
Dalam contoh ini, file men `specification.json` definisikan wadah dan sumber daya komputasi dengan JSON berikut:  

```
{
    "Container": {
        "Image": "{{image-uri}}",
        "ArtifactUrl": "{{model-s3-url}}"
    },
    "ComputeResourceRequirements": {
        "NumberOfCpuCoresRequired": 1,
        "MinMemoryRequiredInMb": 1024
    }
}
```
Jika perintah berhasil, AWS CLI merespons dengan ARN untuk sumber daya yang Anda buat.  

```
{
    "InferenceComponentArn": "arn:aws:sagemaker:us-west-2:111122223333:inference-component/inference-component-name"
}
```

------
#### [ Without inference components ]

**Example perintah create-endpoint**  
Contoh berikut membuat titik akhir dengan perintah [ create-endpoint](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-endpoint.html).  

```
aws sagemaker create-endpoint \
--endpoint-name {{endpoint-name}} \
--endpoint-config-name {{endpoint-config-name}}
```
Jika perintah berhasil, AWS CLI merespons dengan ARN untuk sumber daya yang Anda buat.  

```
{
    "EndpointArn": "arn:aws:sagemaker:us-west-2:111122223333:endpoint/endpoint-name"
}
```

------