Tutorial ini menunjukkan cara men-deploy dan menyajikan model mixture of experts
Qwen3-30B-A3B (Qwen/Qwen3-30B-A3B-FP8)
di Google Kubernetes Engine (GKE) menggunakan akselerator
TPU v6e (Trillium) host tunggal dan
framework penyajian TPU vLLM
dengan TorchTPU (torchtpu). Anda akan menjalankan workload pada satu
node ct6e-standard-4t, yang berisi empat chip TPU v6e dalam topologi 2x2,
dengan paralelisme data dan paralelisme expert diaktifkan.
Untuk menjalankan alur kerja penyajian TorchTPU vLLM host tunggal yang serupa di akselerator TPU7x (Ironwood) dengan model Qwen3.5-397B yang lebih besar, lihat Menyajikan Qwen3.5-397B di GKE dengan TorchTPU vLLM di akselerator TPU7x.
Tujuan
- Siapkan cluster GKE dan node pool TPU v6e host tunggal.
- Men-deploy server TorchTPU vLLM host tunggal di GKE.
- Kirim permintaan inferensi ke server TorchTPU vLLM.
- Menjalankan workload benchmark inferensi.
- Jalankan pembersihan.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponenGoogle Cloudyang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.
Sebelum memulai
Siapkan lingkungan Anda untuk tutorial:
Aktifkan Kubernetes Engine API di project Google Cloud Anda:
Aktifkan Artifact Registry API di project Google Cloud Anda:
Instal dan lakukan inisialisasi Google Cloud CLI, dan instal
kubectl. Jika Anda menggunakan Cloud Shell, kedua alat tersebut sudah diinstal sebelumnya.Pastikan project Anda memiliki kuota SSD dan kuota alamat IP eksternal yang memadai di region tempat kapasitas TPU Anda berada:
Di konsol Google Cloud , buka halaman Quotas & System Limits.
Filter menurut Persistent Disk SSD (GB) dan pastikan Anda memiliki kuota yang tersedia minimal 500 GB untuk volume cache model.
Filter menurut In-use regional external IPv4 addresses dan pastikan Anda memiliki kuota alamat IP yang cukup di region target.
Mendapatkan token akses Hugging Face
Anda memerlukan token akses Hugging Face untuk menggunakan tutorial ini. Anda dapat mendaftar untuk mendapatkan akun gratis di Hugging Face. Setelah Anda memiliki akun, buat token akses:
- Di halaman Welcome to Hugging Face, klik avatar akun Anda, lalu pilih Token akses.
- Di halaman Token akses, klik Create new token.
- Pilih jenis token Read dan masukkan nama untuk token Anda.
- Token akses Anda akan ditampilkan. Simpan token di tempat yang aman.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan tutorial ini, minta administrator untuk memberi Anda peran IAM berikut di project Anda:
- Kubernetes Engine Admin (
roles/container.admin) - Compute Admin (
roles/compute.admin) - Service Account User (
roles/iam.serviceAccountUser)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menyiapkan variabel lingkungan Anda
Siapkan autentikasi Anda:
Siapkan variabel lingkungan Anda:
Ganti kode berikut:
YOUR_PROJECT_ID: ID project Google Cloud Anda.YOUR_REGION: region tempat Anda ingin men-deploy cluster, sepertius-central1.YOUR_ZONE: zona tempat Anda ingin men-deploy node pool TPU v6e, sepertius-central1-c.YOUR_CLUSTER_NAME: nama cluster GKE Anda, sepertitpu-v6e-tutorial-cluster.YOUR_RESERVATION_NAME: jika Anda menggunakan pemesanan, nama pemesanan TPU v6e Anda.YOUR_HF_TOKEN: token akses Hugging Face Anda.YOUR_NETWORK_NAME: nama jaringanGoogle Cloud Anda. Jika Anda membuat jaringan kustom, tentukan jaringan tersebut. Jika tidak, tentukandefault.YOUR_SUBNETWORK_NAME: nama subnetworkGoogle Cloud Anda. Jika Anda membuat subnetwork kustom, tentukan subnetwork tersebut. Jika tidak, tentukandefault.YOUR_VLLM_TPU_IMAGE: image TorchTPU vLLM yang akan digunakan. Untuk image publik, lihat repositori vLLM TorchTPU.
Membuat cluster GKE
Untuk membuat cluster GKE dalam mode Standard dan memasang node pool TPU v6e host tunggal, selesaikan langkah-langkah berikut:
Buat cluster GKE regional:
Jenis mesin default untuk cluster GKE (
e2-medium) tidak memiliki kapasitas CPU yang memadai untuk pengontrol workload, sehingga perintah ini menentukane2-standard-4.Outputnya mirip dengan hal berikut ini:
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS tpu-v6e-tutorial-cluster us-central1 1.35.7-gke.1027000 34.63.222.246 e2-standard-4 1.35.7-gke.1027000 3 RUNNINGBuat node pool TPU v6e host tunggal dengan satu node
ct6e-standard-4t(empat chip TPU v6e dalam topologi2x2) menggunakan pemesanan Anda:Alih-alih menggunakan pemesanan tertentu, Anda juga dapat membuat node pool menggunakan kapasitas Spot atau VM Flex-start dengan meneruskan flag berikut:
- Spot VM: ganti flag
--reservation-affinitydan--reservationdengan--spotuntuk menggunakan kapasitas Spot. Instance yang menggunakan kapasitas Spot mungkin memerlukan waktu untuk dibuat setelah node pool dibuat, dan mungkin di-preempt selama workload berjalan. Jika Pod Anda memerlukan waktu untuk dibuat, atau workload berhenti di tengah proses, hal ini mungkin menjadi penyebabnya. - Flex-start VM: untuk menyediakan node pool menggunakan opsi konsumsi Flex-start, teruskan flag
--flex-start. Untuk mengetahui informasi selengkapnya, lihat Menjalankan workload batch kecil dengan TPU dan Flex-start VM.
Outputnya mirip dengan hal berikut ini:
NAME MACHINE_TYPE DISK_SIZE_GB NODE_VERSION np-0 ct6e-standard-4t 100 1.35.7-gke.1027000- Spot VM: ganti flag
Konfigurasi kredensial
kubectluntuk berkomunikasi dengan cluster Anda:
Mengonfigurasi kredensial
Buat Secret Kubernetes bernama hf-secret untuk menyimpan token akses Hugging Face Anda:
Men-deploy server TorchTPU vLLM
Manifes workload (qwen3_5_server.yaml) menentukan resource berikut:
StorageClass (
hyperdisk-balanced-qwen3) dan PersistentVolumeClaim (hd-claim-qwen3) 500 GiB yang didukung oleh penyimpanan Google Cloud Hyperdisk Balanced untuk menyimpan bobot model yang didownload, cache kompilasi XLA, dan cache kompilasi PyTorch.Deployment (
vllm-qwen3) yang dijadwalkan pada satu node TPU v6e dengan topologi2x2(google.com/tpu: '4'). Container menjalankanvllm serveuntukQwen/Qwen3-30B-A3B-FP8dengan flag berikut:--data-parallel-size=4--tensor-parallel-size=1--enable-expert-parallel--kv-cache-dtype=fp8--max-model-len=9236--max-num-seqs=64.
Layanan
ClusterIP(vllm-qwen3-service) yang mengekspos port8000.
Untuk men-deploy dan memantau workload, selesaikan langkah-langkah berikut:
Ambil manifes server:
Atau, Anda dapat memilih untuk membuat file bernama
qwen3_5_server.yamldengan konten berikut:Terapkan manifes server vLLM TorchTPU ke cluster Anda:
Pantau log deployment server hingga startup aplikasi selesai:
Startup layanan awal mungkin memerlukan waktu sekitar 15 hingga 30 menit saat Pod mendownload bobot model dan mengompilasi model.
Jika Anda menggunakan kapasitas preemptive seperti Spot atau Flex-start, mungkin perlu waktu lebih lama setelah pembuatan node pool untuk membuat node slice TPU, dan node tersebut dapat di-preempt selama eksekusi workload. Jika Pod Anda memerlukan waktu lebih lama dari yang diperkirakan untuk memulai, atau workload Anda berhenti di tengah jalan, hal ini bisa menjadi penyebabnya. Untuk mengetahui informasi selengkapnya, baca Preemption Spot VM. Untuk memeriksa apakah node slice TPU Anda telah dibuat, lihat Memeriksa status dan kondisi node.
Tunggu hingga log melaporkan
Application startup completesebelum Anda mengirim traffic:(APIServer pid=1) INFO: Started server process [1] (APIServer pid=1) INFO: Waiting for application startup. (APIServer pid=1) INFO: Application startup complete.Buka sesi terminal kedua.
Di sesi terminal kedua, teruskan port lokal
8000kevllm-qwen3-service:Biarkan penerusan port berjalan di sesi terminal ini.
Mengirim permintaan inferensi
Kembali ke sesi terminal pertama Anda dan kirim permintaan penyelesaian chat ke endpoint /v1/chat/completions:
Menjalankan workload benchmark
Untuk melakukan tolok ukur model Qwen3-30B-A3B yang di-deploy menggunakan workload input 8.192 token dan output 1.024 token (8k/1k) dengan InferenceX benchmark suite, selesaikan langkah-langkah berikut:
Ambil manifes benchmark:
Atau, buat file bernama
qwen3_5-benchmark-8k1k.yamldengan konten berikut:Terapkan manifes Pod benchmark:
Pantau log tolok ukur:
Benchmark memerlukan waktu sekitar 25 hingga 30 menit untuk diselesaikan.
Setelah benchmark selesai, cari output yang berisi metrik seperti berikut:
Output token throughputTotal token throughputTTFTTPOT
Pembersihan
Agar tidak menimbulkan biaya berkelanjutan tambahan pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus workload Kubernetes, TPU node pool, dan cluster GKE:
Hapus Deployment, Service, PersistentVolumeClaim, dan Secret Hugging Face server vLLM TorchTPU:
Hapus node pool TPU v6e dan cluster GKE:
Langkah berikutnya
- Pelajari lebih lanjut vLLM di Cloud TPU.
- Pelajari lebih lanjut TPU v6e (Trillium).
- Pelajari Cloud TPU lebih lanjut.