KServe, sebelumnya bernama KFServing, adalah server model dan mesin inferensi untuk lingkungan cloud-native yang mendukung fitur seperti penskalaan otomatis (auto scaling), penskalaan hingga nol (scaling to zero), dan penerapan canary. Topik ini menjelaskan cara menggunakan Alibaba Cloud Service Mesh (ASM) dan Arena untuk men-deploy layanan inferensi model KServe dalam mode Serverless.
Prasyarat
Buat instans ASM versi 1.17.2.7 atau yang lebih baru. Untuk informasi selengkapnya, lihat Membuat instans ASM atau Memutakhirkan instans ASM.
Instal komponen KServe. Untuk informasi selengkapnya, lihat Mengintegrasikan KServe dengan ASM untuk mengimplementasikan layanan inferensi model AI cloud-native.
Instal klien Arena versi 0.9.11 atau yang lebih baru. Untuk informasi selengkapnya, lihat Mengonfigurasi klien Arena.
Langkah 1: Menyiapkan data model
Anda dapat menggunakan Penyimpanan File NAS atau Object Storage Service (OSS) untuk menyiapkan data model. Untuk informasi selengkapnya, lihat Menggunakan volume NAS yang disediakan secara statis dan Menggunakan volume ossfs 1.0 yang disediakan secara statis. Topik ini menggunakan NAS sebagai contoh.
1. Mendapatkan titik pemasangan sistem file NAS
Masuk ke Konsol Penyimpanan File NAS. Di panel navigasi sebelah kiri, pilih File Systems > File System List. Di bagian atas halaman, pilih wilayah tempat instans NAS berada.
Pada halaman File System List, klik ID sistem file target untuk membuka halaman detail. Klik Mount Targets. Arahkan kursor ke
untuk melihat titik pemasangan sistem file NAS. Catat titik pemasangan dan perintah pemasangannya untuk digunakan nanti.
2. Mengonfigurasi PV dan PVC untuk kluster target
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, temukan kluster yang Anda inginkan lalu klik namanya. Di panel navigasi kiri, pilih .
Di pojok kanan atas halaman Persistent Volumes, klik Create.
Pada kotak dialog Create Persistent Volume, konfigurasikan parameter dan klik Create untuk membuat volume persisten (PV) bernama training-data.
Tabel berikut menjelaskan parameter utama. Anda dapat mengonfigurasi parameter lain sesuai kebutuhan. Untuk informasi selengkapnya, lihat Menggunakan volume NAS yang disediakan secara statis.
Parameter
Deskripsi
PV Type
NAS
Name
training-data
Mount Target Domain Name
Pilih titik pemasangan yang Anda peroleh di Langkah 1.
Di panel navigasi kiri, pilih . Pada halaman Persistent Volume Claims, klik Create di pojok kanan atas.
Pada kotak dialog Create Persistent Volume Claim, konfigurasikan parameter dan klik Buat untuk membuat klaim volume persisten (PVC) bernama training-data.
Tabel berikut menjelaskan parameter utama. Anda dapat mengonfigurasi parameter lain sesuai kebutuhan. Untuk informasi selengkapnya, lihat Menggunakan volume NAS yang disediakan secara statis.
Parameter
Deskripsi
Storage Type
NAS
Name
training-data
Allocation Mode
Pilih Existing Volume.
Existing Volume
Klik Select Existing Volume untuk memilih PV yang telah dibuat.
3. Mengunduh data ke sistem file NAS
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster yang ingin Anda ubah. Di panel navigasi kiri, pilih .
Pada halaman Nodes, klik nama node target untuk membuka halaman detail instans. Klik More > Workbench Remote Connection, lalu klik Log On untuk membuka halaman koneksi jarak jauh.
Jalankan perintah pemasangan dari Langkah 1 untuk memasang sistem file NAS.
Unduh model BLOOM dan data pelatihan.
Unduh model
bloom-560mdari Hugging Face dan simpan di PVC. Jalurnya adalahpvc://training-data/bloom-560m.
Langkah 2: Men-deploy layanan inferensi
Jalankan perintah berikut untuk memeriksa sumber daya GPU yang tersedia di kluster.
arena top nodeOutput yang diharapkan:
NAME IPADDRESS ROLE STATUS GPU(Total) GPU(Allocated) cn-beijing.192.1xx.x.xx 192.1xx.x.xx <none> Ready 0 0 cn-beijing.192.1xx.x.xx 192.1xx.x.xx <none> Ready 0 0 cn-beijing.192.1xx.x.xx 192.1xx.x.xx <none> Ready 0 0 cn-beijing.192.1xx.x.xx 192.1xx.x.xx <none> Ready 1 0 cn-beijing.192.1xx.x.xx 192.1xx.x.xx <none> Ready 1 0 --------------------------------------------------------------------------------------------------- Allocated/Total GPUs In Cluster: 0/2 (0.0%)Output tersebut menunjukkan bahwa dua node dengan GPU tersedia untuk menjalankan layanan inferensi.
Jalankan perintah berikut untuk memulai layanan inferensi bernama bloom-560m. Perintah ini memasang
pvc training-datake direktori/mnt/modelsdi dalam kontainer, yaitu jalur tempat model diunduh di Langkah 1.arena serve kserve \ --name=bloom-560m \ --image=ghcr.io/huggingface/text-generation-inference:1.0.2 \ --gpus=1 \ --cpu=6 \ --memory=20Gi \ --port=8080 \ --env=STORAGE_URI=pvc://training-data \ "text-generation-launcher --disable-custom-kernels --model-id /mnt/models/bloom-560m --num-shard 1 -p 8080"Output yang diharapkan:
inferenceservice.serving.kserve.io/bloom-560m created INFO[0013] The Job bloom-560m has been submitted successfully INFO[0013] You can run `arena serve get bloom-560m --type kserve -n default` to check the job statusTabel berikut menjelaskan parameter dalam perintah tersebut.
Parameter
Wajib
Deskripsi
--name
Ya
Nama pekerjaan. Nama harus unik secara global.
--image
Ya
Citra layanan inferensi.
--gpus
Tidak
Jumlah GPU untuk layanan inferensi. Nilai default: 0.
--cpu
Tidak
Jumlah CPU untuk layanan inferensi.
--memory
Tidak
Jumlah memori untuk layanan inferensi.
--port
Tidak
Port yang diekspos oleh layanan inferensi.
--env
Tidak
Variabel lingkungan untuk layanan inferensi. Dalam contoh ini, PVC yang digunakan untuk menyimpan model diatur ke training-data.
Langkah 3: Memverifikasi layanan inferensi
Jalankan perintah berikut untuk melihat status penerapan layanan inferensi KServe.
arena serve get bloom-560mOutput yang diharapkan:
Name: bloom-560m Namespace: default Type: KServe Version: 00001 Desired: 1 Available: 1 Age: 9m Address: http://bloom-560m.default.example.com Port: :80 GPU: 1 LatestRevision: bloom-560m-predictor-00001 LatestPrecent: 100 Instances: NAME STATUS AGE READY RESTARTS GPU NODE ---- ------ --- ----- -------- --- ---- bloom-560m-predictor-00001-deployment-ff4c49bf6-twrlp Running 9m 2/2 0 1 cn-hongkong.192.1xx.x.xxxOutput tersebut menunjukkan bahwa layanan inferensi KServe telah diterapkan. Titik akhir untuk model adalah
http://bloom-560m.default.example.com.Dapatkan titik akhir gerbang ASM. Untuk informasi selengkapnya, lihat Mendapatkan titik akhir gerbang ASM.
Jalankan perintah berikut untuk mengakses layanan inferensi menggunakan titik akhir gerbang ASM yang Anda peroleh.
# Ganti ${ASM_GATEWAY} dengan titik akhir gerbang ASM. curl -H "Host: bloom-560m.default.example.com" http://${ASM_GATEWAY}:80/generate \ -X POST \ -d '{"inputs":"What is Deep Learning?","parameters":{"max_new_tokens":17}}' \ -H 'Content-Type: application/json'Output yang diharapkan:
{"generated_text":" Deep Learning is a new type of machine learning that is used to solve complex problems."}
Langkah 4: Memperbarui layanan inferensi
Buat versi model baru. Salin model di PVC ke jalur baru:
bloom-560m-v2.Jalankan perintah berikut untuk melakukan pembaruan canary pada layanan inferensi KServe. Atur jalur model baru ke
bloom-560m-v2. Ini akan mengalokasikan 10% lalu lintas ke versi baru dan 90% ke versi lama.arena serve update kserve \ --name bloom-560m \ --canary-traffic-percent=10 \ "text-generation-launcher --disable-custom-kernels --model-id /mnt/models/bloom-560m-v2 --num-shard 1 -p 8080"Jalankan perintah berikut untuk melihat status layanan inferensi.
arena serve get bloom-560mOutput yang diharapkan:
Name: bloom-560m Namespace: default Type: KServe Version: 00002 Desired: 2 Available: 2 Age: 36m Address: http://bloom-560m.default.example.com Port: :80 GPU: 2 LatestRevision: bloom-560m-predictor-00002 LatestPrecent: 10 PrevRevision: bloom-560m-predictor-00001 PrevPrecent: 90 Instances: NAME STATUS AGE READY RESTARTS GPU NODE ---- ------ --- ----- -------- --- ---- bloom-560m-predictor-00001-deployment-ff4c49bf6-twrlp Running 36m 2/2 0 1 cn-hongkong.192.1xx.x.xxx bloom-560m-predictor-00002-deployment-5b7bb66cfb-nqprp Running 6m 2/2 0 1 cn-hongkong.192.1xx.x.xxxSetelah versi baru lulus pengujian, jalankan perintah berikut untuk mengatur
canary-traffic-percentmenjadi 100. Ini akan meneruskan seluruh lalu lintas ke versi baru.arena serve update kserve \ --name bloom-560m \ --canary-traffic-percent=100
(Opsional) Langkah 5: Menghapus layanan inferensi
Untuk menghapus layanan inferensi, jalankan perintah berikut.
arena serve delete bloom-560m