All Products
Search
Document Center

Container Service for Kubernetes:Terapkan layanan inferensi Qwen dengan Triton dan vLLM di ACK

Last Updated:Aug 21, 2026

Terapkan Qwen1.5-4B-Chat sebagai layanan inferensi di ACK menggunakan Triton dan vLLM pada GPU T4 atau A10.

Latar Belakang

Qwen1.5-4B-Chat

Qwen1.5-4B-Chat adalah LLM berbasis Transformer dengan 4 miliar parameter dari Alibaba Cloud yang dilatih menggunakan teks web, buku khusus domain, dan kode. Lihat repositori GitHub Qwen.

Triton Inference Server

Triton Inference Server adalah framework inferensi open-source dari NVIDIA yang mendukung beberapa backend, termasuk TensorRT, TensorFlow, PyTorch, ONNX, dan vLLM.

Fitur utama:

  • Dukungan berbagai framework ML dan pembelajaran mendalam

  • Eksekusi model secara konkuren

  • Pemrosesan batch kontinu (continuous batching)

  • Metrik bawaan: pemanfaatan GPU, latensi, dan throughput

Lihat repositori GitHub Triton Inference Server.

vLLM

vLLM adalah framework inferensi berkinerja tinggi yang mendukung sebagian besar LLM populer, termasuk Qwen. Framework ini menggunakan PagedAttention, continuous batching, dan kuantisasi untuk meningkatkan throughput inferensi. Lihat repositori GitHub vLLM.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster ACK Pro dengan node berakselerasi GPU (Kubernetes 1.22+, ≥16 GB memori GPU per node).

  • Versi driver GPU 525 telah diinstal pada node GPU. Tambahkan label ack.aliyun.com/nvidia-driver-version:525.105.17 untuk mengunci versi driver.

  • Klien Arena versi terbaru telah diinstal.

Langkah 1: Siapkan data model

Unduh Qwen1.5-4B-Chat, unggah ke Object Storage Service (OSS), lalu buat volume persisten (PV) dan klaim volume persisten (PVC) di kluster Anda.

Untuk model lain yang didukung vLLM, lihat Model yang Didukung. Untuk menggunakan NAS alih-alih OSS, lihat Memasang volume NAS yang disediakan secara statis.

Unduh model

  1. Instal Git:

       # Gunakan yum install git atau apt install git
       yum install git
  2. Instal Git LFS:

       # Gunakan yum install git-lfs atau apt install git-lfs
       yum install git-lfs
  3. Klon Qwen1.5-4B-Chat dari ModelScope:

       GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/qwen/Qwen1.5-4B-Chat.git
  4. Masuk ke direktori dan tarik file besar:

       cd Qwen1.5-4B-Chat
       git lfs pull

Unggah model ke OSS

  1. Login ke Konsol OSS dan catat nama bucket Anda. Buat bucket jika diperlukan.

  2. Instal dan konfigurasikan ossutil.

  3. Buat direktori di OSS dan unggah model:

       ossutil mkdir oss://<Your-Bucket-Name>/Qwen1.5-4B-Chat
       ossutil cp -r ./Qwen1.5-4B-Chat oss://<Your-Bucket-Name>/Qwen1.5-4B-Chat

Buat PV dan PVC

Buat PV dan PVC untuk memasang data model OSS di kluster.

Parameter PV

Parameter

Nilai

PV Type

OSS

Volume Name

llm-model

Access Certificate

ID AccessKey dan Rahasia AccessKey untuk akses bucket OSS.

Bucket ID

Nama bucket OSS Anda.

OSS Path

Path model, misalnya /models/Qwen1.5-4B-Chat.

Parameter PVC

Parameter

Nilai

PVC Type

OSS

Name

llm-model

Allocation Mode

Existing Volumes

Existing Volumes

Pilih PV yang telah Anda buat

Langkah 2: Konfigurasikan Triton dengan vLLM

Buat dua file konfigurasi: config.pbtxt untuk backend Triton dan model.json untuk parameter mesin vLLM.

Buat konfigurasi backend

Buat direktori kerja dan file config.pbtxt:

mkdir triton-vllm

cat << EOF > triton-vllm/config.pbtxt
backend: "vllm"

# Penggunaan perangkat ditunda ke mesin vLLM
instance_group [
  {
    count: 1
    kind: KIND_MODEL
  }
]

version_policy: { all { }}
EOF

Buat konfigurasi model

model.json menentukan parameter mesin vLLM. Pilih konfigurasi sesuai jenis GPU Anda.

Penting

vLLM mengalokasikan Memori GPU secara agresif saat dimulai. Parameter gpu_memory_utilization mengontrol alokasi ini—nilai 0.95 mencadangkan 95% Memori GPU. Turunkan nilai tersebut jika beban kerja lain berbagi GPU untuk menghindari error kehabisan memori.

GPU A10 (produksi)

GPU A10 memberikan throughput lebih tinggi dan mendukung presisi bfloat16. Gunakan A10 untuk beban kerja produksi.

cat << EOF > triton-vllm/model.json
{
    "model":"/model/Qwen1.5-4B-Chat",
    "disable_log_requests": "true",
    "gpu_memory_utilization": 0.95,
    "trust_remote_code": "true",
    "max_model_len": 16384
}
EOF

GPU T4 (pengujian)

GPU T4 tersedia luas dan hemat biaya tetapi tidak mendukung bf16. Atur dtype ke half (FP16) dan kurangi max_model_len agar sesuai dengan batas memori 16 GB.

cat << EOF > triton-vllm/model.json
{
    "model":"/model/Qwen1.5-4B-Chat",
    "disable_log_requests": "true",
    "gpu_memory_utilization": 0.95,
    "trust_remote_code": "true",
    "dtype": "half",
    "max_model_len": 8192
}
EOF

Parameter utama

Parameter

Deskripsi

max_model_len

Panjang maksimum urutan token. Nilai yang lebih tinggi meningkatkan kualitas percakapan tetapi menggunakan lebih banyak memori GPU.

dtype

Presisi model. Atur ke half (FP16) untuk GPU tanpa dukungan bf16, seperti T4.

gpu_memory_utilization

Porsi memori GPU untuk model. Default: 0.9.

Lihat Argumen Mesin vLLM untuk semua parameter dan Menerapkan model vLLM di Triton untuk contoh penggunaan.

Langkah 3: Terapkan layanan inferensi

Gunakan Arena untuk menerapkan layanan inferensi Qwen1.5-4B-Chat dengan Triton dan vLLM.

  1. Ekspor path file konfigurasi sebagai variabel lingkungan:

       export triton_config_file="triton-vllm/config.pbtxt"
       export model_config_file="triton-vllm/model.json"
  2. Terapkan layanan inferensi:

    Parameter

    Parameter

    Deskripsi

    --name

    Nama layanan inferensi.

    --version

    Versi layanan inferensi.

    --image

    Citra server Triton.

    --gpus

    Jumlah GPU per replika.

    --cpu

    Jumlah core CPU per replika.

    --memory

    Memori per replika.

    --data

    Pemasangan PVC dalam format <pvc-name>:<mount-path>. Jalankan arena data list untuk melihat daftar PVC yang tersedia.

    --config-file

    Pemasangan file lokal dalam format <local-path>:<container-path>.

    --model-repository

    Direktori repositori model Triton. Setiap subdirektori merepresentasikan satu model beserta file konfigurasinya.

    --http-port

    Port HTTP Triton.

    --grpc-port

    Port gRPC Triton.

    --allow-metrics

    Ekspos metrik inferensi (pemanfaatan GPU, latensi, throughput).

       arena serve triton \
           --name=triton-vllm \
           --version=v1 \
           --image=ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/tritonserver:24.04-vllm-python-py3-ubuntu22.04 \
           --gpus=1 \
           --cpu=6 \
           --memory=30Gi \
           --data="llm-model:/model/Qwen1.5-4B-Chat" \
           --model-repository /triton-config \
           --config-file="$model_config_file:/triton-config/qwen-4b/1/model.json" \
           --config-file="$triton_config_file:/triton-config/qwen-4b/config.pbtxt" \
           --http-port=8000 \
           --grpc-port=9000 \
           --allow-metrics=true

    Output yang diharapkan:

       configmap/triton-vllm-v1-4bd5884e6b5b6a3 created
       configmap/triton-vllm-v1-7815124a8204002 created
       service/triton-vllm-v1-tritoninferenceserver created
       deployment.apps/triton-vllm-v1-tritoninferenceserver created
       INFO[0007] The Job triton-vllm has been submitted successfully
       INFO[0007] You can run `arena serve get triton-vllm --type triton-serving -n default` to check the job status
  3. Verifikasi bahwa layanan sedang berjalan. Tunggu hingga Available menunjukkan 1.

       arena serve get triton-vllm

    Output yang diharapkan:

       Name:       triton-vllm
       Namespace:  default
       Type:       Triton
       Version:    v1
       Desired:    1
       Available:  1
       Age:        3m
       Address:    172.16.XX.XX
       Port:       RESTFUL:8000,GRPC:9000
       GPU:        1
    
       Instances:
         NAME                                                  STATUS   AGE  READY  RESTARTS  GPU  NODE
         ----                                                  ------   ---  -----  --------  ---  ----
         triton-vllm-v1-tritoninferenceserver-b69cb7759-gkwz6  Running  3m   1/1    0         1    cn-beijing.172.16.XX.XX

Langkah 4: Verifikasi layanan inferensi

Penerusan port (hanya untuk pengembangan)

Penting

kubectl port-forward hanya untuk pengembangan dan debugging — tidak andal, aman, atau dapat diskalakan untuk produksi. Untuk jaringan produksi, lihat Ikhtisar Ingress.

  1. Siapkan penerusan port:

       kubectl port-forward svc/triton-vllm-v1-tritoninferenceserver 8000:8000

    Output yang diharapkan:

       Forwarding from 127.0.0.1:8000 -> 8000
       Forwarding from [::1]:8000 -> 8000
  2. Kirim permintaan uji ke titik akhir generate. Ganti qwen-4b dengan nama model Anda jika berbeda.

       curl -X POST localhost:8000/v2/models/qwen-4b/generate \
         -d '{"text_input": "What is AI? AI is", "parameters": {"stream": false, "temperature": 0}}'

    Output yang diharapkan:

       {"model_name":"qwen-4b","model_version":"1","text_output":"What is AI? AI is a branch of computer science that studies how to make computers intelligent. Purpose of AI"}

(Opsional) Bersihkan

Hapus layanan inferensi dan sumber daya penyimpanan jika tidak lagi diperlukan:

# Hapus layanan inferensi
arena serve del triton-vllm

# Hapus PVC dan PV
kubectl delete pvc llm-model
kubectl delete pv llm-model