Terapkan model untuk inferensi waktu nyata - Amazon SageMaker

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

Terapkan model untuk inferensi waktu nyata

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 memungkinkan Studio dan Studio Classic membuat sumber daya tetapi tidak mengizinkan penandaan, kesalahan "AccessDenied" dapat terjadi saat mencoba membuat sumber daya. Untuk informasi selengkapnya, lihat Berikan Izin untuk Sumber Daya Penandaan SageMaker.

AWS Kebijakan Terkelola untuk Amazon SageMakeryang 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 SageMaker hosting. Anda dapat menerapkan model secara interaktif dengan SageMaker Studio. Atau, Anda dapat menerapkan model secara terprogram menggunakan AWS SDK, seperti SDK Python atau SDK for SageMaker Python (Boto3). Anda juga dapat menerapkan dengan menggunakan. AWS CLI

Sebelum Anda mulai

Sebelum Anda menerapkan SageMaker model, 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 SageMaker

  • Jalur registri URI ECR Docker Amazon untuk gambar kustom 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 Tepi. 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 Ketika beberapa model berbagi titik akhir, mereka bersama-sama memanfaatkan sumber daya yang di-host di sana, seperti instance komputasi, 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 SageMaker hosting yang dapat Anda gunakan untuk menyebarkan model ke titik akhir. Dalam pengaturan komponen inferensi, Anda menentukan model, titik akhir, dan bagaimana model memanfaatkan sumber daya yang dihosting titik akhir. Untuk menentukan model, Anda dapat menentukan objek SageMaker Model, 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 itu.

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

Komponen inferensi memberikan manfaat sebagai berikut:

Fleksibilitas

Komponen inferensi memisahkan detail hosting model dari titik akhir itu sendiri. Ini memberikan lebih banyak fleksibilitas dan kontrol atas bagaimana model di-host 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 mengatur jumlah minimum salinan untuk memastikan bahwa model memuat dalam jumlah yang Anda butuhkan untuk melayani permintaan. Anda dapat menskalakan salinan komponen inferensi apa pun ke nol, yang memberi ruang bagi salinan lain untuk ditingkatkan.

SageMaker mengemas model Anda sebagai komponen inferensi saat Anda menerapkannya dengan menggunakan:

  • SageMaker Studio Klasik.

  • SDK SageMaker Python untuk menyebarkan objek Model (tempat Anda menyetel tipe titik akhir ke). EndpointType.INFERENCE_COMPONENT_BASED

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

Menyebarkan model dengan Studio SageMaker

Selesaikan langkah-langkah berikut untuk membuat dan menerapkan model Anda secara interaktif melalui SageMaker Studio. Untuk informasi selengkapnya tentang Studio, lihat dokumentasi Studio. Untuk penelusuran lebih lanjut tentang berbagai skenario penerapan, lihat Package blog dan terapkan model dan LLM klasik dengan mudah dengan Amazon - Bagian 2. SageMaker

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 dapat mengemas artefak Anda untuk Anda. Anda hanya perlu membawa artefak model mentah dan dependensi apa pun dalam sebuah requirements.txt file, dan SageMaker dapat memberikan kode inferensi default untuk Anda (atau Anda dapat mengganti kode default dengan kode inferensi kustom Anda sendiri). SageMakermendukung 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 memiliki wadah pra-bangun), Anda juga harus memberikan izin untuk membuat dan menerapkan model melalui Studio. SageMaker

Anda harus memiliki kebijakan AmazonSageMakerFullAkses yang dilampirkan pada peran IAM Anda sehingga Anda dapat mengakses SageMaker dan layanan terkait lainnya. Untuk melihat harga jenis instans di Studio, Anda juga harus melampirkan kebijakan AWS PriceListServiceFullAccess (atau jika Anda tidak ingin melampirkan seluruh kebijakan, lebih khusus lagi, pricing:GetProducts tindakan).

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

Kami menyarankan Anda menggunakan konvensi penamaan embersagemaker-{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:

Buat model yang dapat diterapkan

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

Buat model deployable di SageMaker Studio dengan melakukan hal berikut:

  1. Buka aplikasi SageMaker Studio.

  2. Di panel navigasi kiri, pilih Model.

  3. Pilih tab Model Deployable.

  4. Pada halaman Model Deployable, pilih Buat.

  5. Pada halaman Buat model deployable, untuk bidang Nama model, masukkan nama untuk model.

Ada beberapa bagian lagi untuk Anda isi di halaman Create deployable model.

Bagian definisi Container terlihat seperti tangkapan layar berikut:

Screenshot dari bagian definisi Container untuk membuat model di Studio.
Untuk bagian Container definition, lakukan hal berikut:
  1. Untuk jenis Kontainer, pilih Kontainer pra-bangun jika Anda ingin menggunakan kontainer SageMaker terkelola, atau pilih Bawa kontainer Anda sendiri jika Anda memiliki wadah sendiri.

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

  3. Jika Anda memilih Bawa penampung Anda sendiri, masukkan jalur ECR Amazon untuk jalur ECR ke image kontainer.

Kemudian, isi bagian Artefak, yang terlihat seperti tangkapan layar berikut:

Screenshot dari bagian Artefak untuk membuat model di Studio.
Untuk bagian Artefak, lakukan hal berikut:
  1. Jika Anda menggunakan salah satu kerangka kerja yang SageMaker mendukung artefak model kemasan (PyTorch atau XGBoost), maka untuk Artefak, Anda dapat memilih opsi Unggah artefak. Dengan opsi ini, Anda cukup menentukan artefak model mentah Anda, kode inferensi kustom apa pun yang Anda miliki, dan file requirements.txt Anda, dan SageMaker 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, lalu pilih Input S3 URI ke artefak pra-paket.

    2. Jika Anda memilih untuk mengunggah artefak Anda, maka untuk bucket S3, masukkan jalur Amazon S3 ke ember tempat Anda SageMaker ingin 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 SageMaker menyediakan 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 SageMaker mendukung artefak model pengemasan, Studio menunjukkan opsi artefak Pra-paket, dan Anda harus menyediakan semua artefak yang sudah dikemas sebagai arsip. tar.gz Lakukan hal-hal berikut:

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

    2. Jika Anda memilih URI Input S3 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:

Screenshot dari bagian Keamanan untuk membuat model di Studio.
Untuk bagian Keamanan, 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) Aktifkan sakelar Isolasi jaringan jika Anda ingin membatasi akses internet kontainer Anda.

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

Screenshot dari bagian Opsi lanjutan untuk membuat model di Studio.
(Opsional) Untuk bagian Opsi lanjutan, lakukan hal berikut:
  1. Aktifkan toggle Rekomendasi instans yang disesuaikan jika Anda ingin menjalankan pekerjaan Amazon SageMaker Inference Recommender pada model Anda setelah pembuatannya. Inference Recommender adalah fitur yang memberi Anda jenis instans yang direkomendasikan untuk mengoptimalkan kinerja dan biaya inferensi. Anda dapat melihat rekomendasi instans ini saat bersiap untuk menerapkan model Anda.

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

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

  4. Setelah menyelesaikan konfigurasi model dan kontainer Anda, pilih Create deployable model.

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

Terapkan model Anda

Terakhir, Anda menerapkan model yang Anda konfigurasikan pada langkah sebelumnya ke titik akhir HTTPS. Anda dapat menerapkan satu model 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 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 tersebut tidak kompatibel, Studio akan 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 di 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 SageMaker model.

  4. Pilih Deploy.

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

  6. Untuk tipe Instance, pilih jenis instance yang ingin Anda gunakan untuk titik akhir. Jika sebelumnya Anda menjalankan tugas Inference Recommender untuk model tersebut, jenis instans yang Anda rekomendasikan akan muncul di daftar di bawah judul Recommended. Jika tidak, Anda akan melihat beberapa contoh Prospektif yang mungkin cocok untuk model Anda.

    Kompatibilitas tipe instans untuk JumpStart

    Jika Anda menerapkan JumpStart model, Studio hanya menampilkan tipe instance yang didukung model.

  7. Untuk jumlah instans awal, masukkan jumlah awal instance yang ingin Anda berikan untuk titik akhir Anda.

  8. Untuk jumlah instans Maksimum, tentukan jumlah maksimum instans yang dapat disediakan oleh titik akhir saat ditingkatkan 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 bidang jenis instance dan jumlah instance.

    Untuk JumpStart LLM paling populer, AWS memiliki jenis instans pra-benchmark untuk mengoptimalkan biaya atau kinerja. Data ini dapat membantu Anda memutuskan jenis instans mana yang akan digunakan untuk menerapkan LLM Anda. Pilih Konfigurasi alternatif untuk membuka kotak dialog yang berisi data pra-benchmark. Panel terlihat seperti tangkapan layar berikut:

    Tangkapan layar dari kotak Konfigurasi alternatif

    Di kotak Konfigurasi alternatif, lakukan hal berikut:

    1. Pilih jenis instance. Anda dapat memilih Biaya per jam atau Kinerja terbaik untuk melihat jenis instans yang mengoptimalkan biaya atau kinerja untuk model yang ditentukan. Anda juga dapat memilih Instance lain yang didukung untuk melihat daftar jenis instans lain yang kompatibel dengan JumpStart model. Perhatikan bahwa memilih jenis instance di sini menimpa pemilihan instance sebelumnya yang ditentukan dalam Langkah 6.

    2. (Opsional) Aktifkan sakelar Sesuaikan konfigurasi yang dipilih untuk menentukan total token Maks (jumlah maksimum token yang ingin Anda izinkan, yang merupakan jumlah token masukan Anda dan output yang dihasilkan model), Panjang token masukan maksimum (jumlah maksimum token yang ingin Anda izinkan untuk masukan setiap permintaan), dan Permintaan bersamaan Max (jumlah maksimum permintaan yang dapat diproses model sekaligus).

    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 Min, masukkan jumlah minimum salinan model yang ingin Anda host 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 Max (MB), masukkan jumlah maksimum memori (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 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 deployable.

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

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

    4. Aktifkan sakelar Aktifkan isolasi jaringan untuk membatasi akses internet kontainer Anda.

    5. Untuk konfigurasi Timeout, masukkan nilai untuk kolom batas waktu pengunduhan data Model (detik) dan batas waktu pemeriksaan kesehatan startup Container (detik). Nilai-nilai ini menentukan jumlah waktu maksimum yang SageMaker memungkinkan untuk mengunduh model ke wadah dan memulai wadah, masing-masing.

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

    catatan

    SageMaker mengonfigurasi peran IAM, VPC, dan pengaturan 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.

Screenshot dari halaman model Deploy di Studio.

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

Terapkan model dengan SDK Python

Menggunakan SageMaker Python SDK, Anda dapat membangun model Anda dengan dua cara. Yang pertama adalah membuat objek model dari ModelBuilder kelas Model atau. 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 artefak model atau kode inferensi yang Anda berikan. 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 dengan ModelBuilder.

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

Penyiapan

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

SageMaker Python SDK
contoh pernyataan impor

Contoh berikut mengimpor modul dari SageMaker Python SDK, SDK for Python (Boto3), dan Python Standard Library. Modul-modul ini menyediakan metode berguna yang membantu Anda menerapkan model, dan mereka digunakan oleh contoh lainnya yang mengikuti.

import boto3 from datetime import datetime from sagemaker.compute_resource_requirements.resource_requirements import ResourceRequirements from sagemaker.predictor import Predictor from sagemaker.enums import EndpointType from sagemaker.model import Model from sagemaker.session import Session
boto3 inference components
contoh pernyataan impor

Contoh berikut mengimpor modul dari SDK for Python (Boto3) dan Python Standard Library. 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 models (without inference components)
contoh pernyataan impor

Contoh berikut mengimpor modul dari SDK for Python (Boto3) dan Python Standard Library. 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 menempatkan artefak model untuk model yang telah dilatih sebelumnya di bucket Amazon S3.

# Create a variable w/ the model S3 URL # The name of your S3 bucket: s3_bucket = "DOC-EXAMPLE-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 Anda dapat menerapkan model dengan SageMaker Python SDK atau SDK for Python (Boto3). Bagian berikut merangkum langkah-langkah yang Anda selesaikan untuk beberapa kemungkinan pendekatan. Langkah-langkah ini ditunjukkan oleh contoh-contoh berikut.

SageMaker Python SDK

Menggunakan SageMaker Python SDK, Anda dapat membangun model Anda dengan salah satu cara berikut:

  • Buat objek model dari Model kelas — Anda harus 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.

  • Buat objek model dari ModelBuilder kelas — 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 objek Anda. Model

    Untuk informasi selengkapnya tentang ModelBuilder, lihat Buat model di Amazon SageMaker dengan ModelBuilder. Anda juga dapat melihat Package blog dan menyebarkan model MLM klasik dan LLM dengan mudah dengan SageMaker - Bagian 1 untuk informasi lebih lanjut.

Contoh berikut menjelaskan kedua metode untuk membuat model Anda dan menyebarkan objek model Anda. Untuk menerapkan model dengan cara ini, Anda menyelesaikan langkah-langkah berikut:

  1. Tentukan sumber daya endpoint untuk dialokasikan ke model dengan ResourceRequirements objek.

  2. Buat objek model dari ModelBuilder kelas Model atau. ResourceRequirementsObjek ditentukan dalam pengaturan model.

  3. Menyebarkan model ke titik akhir dengan menggunakan deploy metode objek. Model

boto3 inference components

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

  1. (Opsional) Buat objek SageMaker model dengan menggunakan create_modelmetode.

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

  3. Buat titik akhir Anda dengan menggunakan create_endpointmetode, 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 berikut ini:

    • Menentukan objek SageMaker model

    • 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 models (without inference components)

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

  1. Buat SageMaker model dengan menggunakan create_modelmetode.

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

  3. Buat titik akhir Anda dengan menggunakan create_endpointmetode ini. Dalam permintaan Anda, berikan konfigurasi titik akhir yang Anda buat.

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

Konfigurasi

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

SageMaker Python SDK

Contoh berikut menetapkan sumber daya endpoint untuk model dengan objek. ResourceRequirements Sumber daya ini termasuk inti CPU, akselerator, dan memori. Kemudian, contoh membuat objek model dari Model kelas. Atau Anda dapat membuat objek model dengan membuat instance ModelBuilderkelas dan menjalankan build —metode ini juga ditampilkan dalam contoh. ModelBuildermenyediakan antarmuka terpadu untuk kemasan model, dan dalam hal ini, menyiapkan model untuk penerapan model besar. Contoh ini digunakan ModelBuilder untuk membangun model Hugging Face. (Anda juga dapat melewati JumpStart model). Setelah Anda membangun model, Anda dapat menentukan persyaratan sumber daya dalam objek model. Pada langkah berikutnya, Anda menggunakan objek ini untuk menyebarkan model ke titik akhir.

resources = ResourceRequirements( requests = { "num_cpus": 2, # Number of CPU cores required: "num_accelerators": 1, # Number of accelerators required "memory": 8192, # Minimum memory required in Mb (required) "copies": 1, }, limits = {}, ) now = datetime.now() dt_string = now.strftime("%d-%m-%Y-%H-%M-%S") model_name = "my-sm-model"+dt_string # build your model with Model class model = Model( name = "model-name", image_uri = "image-uri", model_data = model_url, role = "arn:aws:iam::111122223333:role/service-role/role-name", resources = resources, predictor_cls = Predictor, ) # Alternate mechanism using ModelBuilder # uncomment the following section to use ModelBuilder /* model_builder = ModelBuilder( model="<HuggingFace-ID>", # like "meta-llama/Llama-2-7b-hf" schema_builder=SchemaBuilder(sample_input,sample_output), env_vars={ "HUGGING_FACE_HUB_TOKEN": "<HuggingFace_token>}" } ) # build your Model object model = model_builder.build() # create a unique name from string 'mb-inference-component' model.model_name = unique_name_from_base("mb-inference-component") # assign resources to your model model.resources = resources */
boto3 inference components

Contoh berikut mengkonfigurasi titik akhir dengan metode. create_endpoint_config 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 , 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 models (without inference components)
contoh definisi model

Contoh berikut mendefinisikan SageMaker model dengan create_model metode dalam. 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 SageMaker dapat diasumsikan Amazon untuk mengakses artefak model dan gambar Docker untuk penerapan pada instance komputasi HTML 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 diterapkan untuk prediksi.

contoh konfigurasi titik akhir

Contoh berikut mengkonfigurasi titik akhir dengan metode. create_endpoint_config Amazon SageMaker menggunakan konfigurasi ini untuk menyebarkan model. Dalam konfigurasi, Anda mengidentifikasi satu atau beberapa model, yang dibuat dengan create_model metode, untuk menyebarkan sumber daya yang Anda SageMaker ingin Amazon sediakan.

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 menyebarkan model ke titik akhir.

SageMaker Python SDK

Contoh berikut menyebarkan model ke titik akhir HTTPS real-time dengan deploy metode objek model. Jika Anda menentukan nilai resources argumen untuk pembuatan dan penerapan model, sumber daya yang Anda tentukan untuk penerapan akan diutamakan.

predictor = model.deploy( initial_instance_count = 1, instance_type = "ml.p4d.24xlarge", endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED, resources = resources, )

Untuk instance_type bidang, contoh menentukan nama jenis instans Amazon EC2 untuk model. Untuk initial_instance_count bidang, ini menentukan jumlah awal instance untuk menjalankan endpoint pada.

Contoh kode berikut menunjukkan kasus lain di mana Anda menerapkan model ke titik akhir dan kemudian menerapkan model lain ke titik akhir yang sama. Dalam hal ini Anda harus memberikan nama titik akhir yang sama ke deploy metode kedua model.

# Deploy the model to inference-component-based endpoint falcon_predictor = falcon_model.deploy( initial_instance_count = 1, instance_type = "ml.p4d.24xlarge", endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED, endpoint_name = "<endpoint_name>" resources = resources, ) # Deploy another model to the same inference-component-based endpoint llama2_predictor = llama2_model.deploy( # resources already set inside llama2_model endpoint_type = EndpointType.INFERENCE_COMPONENT_BASED, endpoint_name = "<endpoint_name>" # same endpoint name as for falcon model )
boto3 inference components

Setelah Anda memiliki konfigurasi endpoint, gunakan metode create_endpoint untuk membuat endpoint Anda. Nama endpoint harus unik Wilayah AWS dalam AWS akun Anda.

Contoh berikut membuat endpoint menggunakan konfigurasi endpoint yang ditentukan dalam permintaan. Amazon SageMaker 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 model ke sana 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 models (without inference components)
contoh deployment

Berikan konfigurasi titik akhir ke SageMaker. 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 endpoint harus unik Wilayah AWS dalam AWS akun Anda.

Contoh berikut membuat endpoint menggunakan konfigurasi endpoint yang ditentukan dalam permintaan. Amazon SageMaker 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 menerapkannya 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-modelperintah.

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

  3. Buat titik akhir Anda dengan menggunakan create-endpointperintah. 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 berikut ini:

    • Menentukan objek SageMaker model

    • 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 SageMaker model dengan menggunakan create-modelperintah.

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

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

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

Konfigurasi

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

With inference components
contoh create-endpoint-config perintah

Contoh berikut membuat konfigurasi endpoint dengan perintah create-endpoint-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 buat-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 create-endpoint-config perintah

Contoh berikut membuat konfigurasi endpoint dengan perintah create-endpoint-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 menyebarkan model ke titik akhir.

With inference components
contoh perintah buat-titik akhir

Contoh berikut membuat endpoint 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 create-inference-component perintah

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

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 specification.json mendefinisikan wadah dan menghitung sumber daya 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 buat-titik akhir

Contoh berikut membuat endpoint 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" }