View a markdown version of this page

Terapkan model untuk inferensi real-time - Amazon SageMaker AI

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

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.

AWS kebijakan terkelola untuk Amazon SageMaker AIyang 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

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. Lihat Membuat peran IAM 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

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

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 keEndpointType.INFERENCE_COMPONENT_BASED).

  • AWS SDK for Python (Boto3) Untuk menentukan InferenceComponent objek yang Anda terapkan ke titik akhir.

Menyebarkan model dengan SageMaker Studio

Selesaikan langkah-langkah berikut untuk membuat dan menerapkan model Anda secara interaktif melalui SageMaker Studio. Untuk informasi selengkapnya tentang Studio, lihat dokumentasi 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.

Siapkan artefak dan izin Anda

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

  2. 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 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 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 kataSageMaker AI. Kapitalisasi alternatif SageMaker AI juga dapat diterima: Sagemaker atau. sagemaker

Sebaiknya gunakan konvensi penamaan bucketsagemaker-{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 Edit cross-origin resource sharing (CORS) di konsol Amazon S3

  • Menggunakan API Amazon S3 PutBucketCors

  • Menggunakan perintah put-bucket-cors: AWS CLI

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

Buat model yang dapat diterapkan

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.

  2. Di panel navigasi kiri, pilih Model.

  3. Pilih tab Model yang dapat digunakan.

  4. Pada halaman Model yang dapat digunakan, pilih Buat.

  5. 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.
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.

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

  3. 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.
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.

    2. 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.

    3. Untuk Unggah artefak model, unggah file model Anda.

    4. 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.

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

  2. 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.

    2. 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.
Untuk Keamanan bagian, lakukan hal berikut:
  1. Untuk peran IAM, masukkan ARN untuk peran IAM.

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

  3. (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.
(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.

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

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

  4. 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

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.

  2. Di panel navigasi kiri, pilih Model.

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

  4. Pilih Deploy.

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

  6. 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.

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

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

  9. 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.

    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.

    2. (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).

    3. Pilih Pilih untuk mengonfirmasi jenis instans dan pengaturan konfigurasi Anda.

  10. 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.

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

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

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

  11. (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.

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

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

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

    5. 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.

    6. 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.

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

Menyebarkan model dengan Python SDK

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. ModelBuildersecara 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.

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

Penyiapan

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

SageMaker Python SDK
contoh 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)
contoh 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)
contoh 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
contoh 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 variabelmodel_url, yang digunakan dalam contoh berikut.

Gambaran umum

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 denganModelBuilder. 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.

  2. 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 metode.

  2. Tentukan pengaturan untuk titik akhir Anda dengan membuat objek konfigurasi titik akhir. Untuk membuatnya, Anda menggunakan create_endpoint_config metode ini.

  3. Buat titik akhir Anda dengan menggunakan create_endpoint metode, dan dalam permintaan Anda, berikan konfigurasi titik akhir yang Anda buat.

  4. 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 metode ini.

  2. Tentukan pengaturan untuk titik akhir Anda dengan membuat objek konfigurasi titik akhir. Untuk membuatnya, Anda menggunakan create_endpoint_config metode ini. Dalam konfigurasi titik akhir, Anda menetapkan objek model ke varian produksi.

  3. Buat titik akhir Anda dengan menggunakan create_endpoint 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

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. ModelBuildermenyediakan 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)
contoh definisi model

Contoh berikut mendefinisikan model SageMaker AI dengan create_model metode di AWS SDK for 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 disebutmodel_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.

contoh 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:

Deploy

Contoh berikut menerapkan model ke titik akhir.

SageMaker Python SDK

Contoh berikut menerapkan model ke titik akhir HTTPS real-time menggunakan deploy metodeModelBuilder.

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 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)
contoh 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 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

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

Gambaran umum

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 perintah.

  2. Tentukan pengaturan untuk titik akhir Anda dengan membuat konfigurasi titik akhir. Untuk membuatnya, Anda menjalankan create-endpoint-config perintah.

  3. Buat titik akhir Anda dengan menggunakan create-endpoint perintah. Di badan perintah, tentukan konfigurasi titik akhir yang Anda buat.

  4. 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 perintah.

  2. Tentukan pengaturan untuk titik akhir Anda dengan membuat objek konfigurasi titik akhir. Untuk membuatnya, Anda menggunakan create-endpoint-config perintah. Dalam konfigurasi titik akhir, Anda menetapkan objek model ke varian produksi.

  3. Buat titik akhir Anda dengan menggunakan create-endpoint 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

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

With inference components
contoh perintah create-endpoint-config

Contoh berikut membuat konfigurasi titik akhir dengan perintah create-end 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
contoh perintah create-model

Contoh berikut membuat model dengan perintah create-model.

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" }
contoh perintah create-endpoint-config

Contoh berikut membuat konfigurasi titik akhir dengan perintah create-end 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

Contoh berikut menerapkan model ke titik akhir.

With inference components
contoh perintah create-endpoint

Contoh berikut membuat titik akhir dengan perintah create-endpoint.

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" }
contoh 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
contoh perintah create-endpoint

Contoh berikut membuat titik akhir dengan perintah create-endpoint.

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" }