全部产品
Search
文档中心

Container Service for Kubernetes:Men-deploy layanan inferensi model KServe dalam mode Serverless

更新时间:Nov 11, 2025

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

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

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

  2. Pada halaman File System List, klik ID sistem file target untuk membuka halaman detail. Klik Mount Targets. Arahkan kursor ke image untuk melihat titik pemasangan sistem file NAS. Catat titik pemasangan dan perintah pemasangannya untuk digunakan nanti.

2. Mengonfigurasi PV dan PVC untuk kluster target

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, temukan kluster yang Anda inginkan lalu klik namanya. Di panel navigasi kiri, pilih Volumes > Persistent Volumes.

  3. Di pojok kanan atas halaman Persistent Volumes, klik Create.

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

  5. Di panel navigasi kiri, pilih Volumes > Persistent Volume Claims. Pada halaman Persistent Volume Claims, klik Create di pojok kanan atas.

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

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster yang ingin Anda ubah. Di panel navigasi kiri, pilih Nodes > Nodes.

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

  4. Jalankan perintah pemasangan dari Langkah 1 untuk memasang sistem file NAS.

  5. Unduh model BLOOM dan data pelatihan.

    Unduh model bloom-560m dari Hugging Face dan simpan di PVC. Jalurnya adalah pvc://training-data/bloom-560m.

Langkah 2: Men-deploy layanan inferensi

  1. Jalankan perintah berikut untuk memeriksa sumber daya GPU yang tersedia di kluster.

    arena top node

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

  2. Jalankan perintah berikut untuk memulai layanan inferensi bernama bloom-560m. Perintah ini memasang pvc training-data ke direktori /mnt/models di 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 status

    Tabel 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

  1. Jalankan perintah berikut untuk melihat status penerapan layanan inferensi KServe.

    arena serve get bloom-560m

    Output 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.xxx

    Output tersebut menunjukkan bahwa layanan inferensi KServe telah diterapkan. Titik akhir untuk model adalah http://bloom-560m.default.example.com.

  2. Dapatkan titik akhir gerbang ASM. Untuk informasi selengkapnya, lihat Mendapatkan titik akhir gerbang ASM.

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

  1. Buat versi model baru. Salin model di PVC ke jalur baru: bloom-560m-v2.

  2. 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"
  3. Jalankan perintah berikut untuk melihat status layanan inferensi.

    arena serve get bloom-560m

    Output 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.xxx
  4. Setelah versi baru lulus pengujian, jalankan perintah berikut untuk mengatur canary-traffic-percent menjadi 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