Tutorial ini menunjukkan cara men-deploy dan menyajikan
Qwen3.8-2.4T (nvidia/Qwen3.8-2.4T-A95B-NVFP4),
model Mixture-of-Experts dengan 2,4 triliun parameter dan 95 miliar
parameter aktif yang dikuantisasi ke NVFP4, di Google Kubernetes Engine (GKE) pada
Google Cloud. Deployment ini menggunakan Cluster Toolkit, empat instance virtual machine (VM) A4 (a4-highgpu-8g) multi-host dengan total 32 GPU NVIDIA B200, NVIDIA Dynamo, dan framework inferensi SGLang dengan disagregasi prefill-decode (PD).
Dalam konfigurasi deployment yang dijelaskan dalam tutorial ini, Anda akan menggunakan Cluster Toolkit untuk menyediakan cluster GKE dalam mode Standard. Cluster ini berisi empat node a4-highgpu-8g yang terhubung melalui jaringan GPUDirect Remote Direct Memory Access (RDMA). Kemudian, Anda
menginstal platform KAI Scheduler dan NVIDIA Dynamo dengan penjadwalan gang Grove,
dan melakukan staging bobot model di Cloud Storage. Selanjutnya, Anda men-deploy
resource kustom DynamoGraphDeployment yang memasang bucket dengan
Cloud Storage FUSE serta memisahkan prefill dan dekode di dua worker pool multi-host
16 GPU dengan paralelisme tensor, paralelisme pakar, dan cache KV
FP8.
Tujuan
- Instal Cluster Toolkit dan sediakan cluster GKE A4 multi-host dalam mode Standard.
- Instal platform KAI Scheduler dan NVIDIA Dynamo dengan penjadwalan gang Grove di cluster Anda.
- Tempatkan bobot model Qwen3.8-2.4T di bucket Cloud Storage.
- Men-deploy server inferensi SGLang multi-host yang dipisahkan PD di empat node A4, dengan total 32 GPU NVIDIA B200.
- Mengirim permintaan penyelesaian chat ke router frontend Dynamo.
- Menjalankan workload benchmark inferensi.
- Bersihkan resource yang di-deploy.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponenGoogle Cloudyang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga.
Sebelum memulai
Siapkan lingkungan Anda untuk tutorial:
- Instal dan lakukan inisialisasi
Google Cloud CLI, serta instal
kubectldan Helm (versi 3.10 atau yang lebih baru). Jika Anda menggunakan Cloud Shell, alat ini sudah diinstal sebelumnya. - Jika Anda menjalankan tutorial ini dari workstation Linux atau macOS, bukan Cloud Shell, instal dependensi Cluster Toolkit yang diperlukan, seperti Terraform dan Git.
Aktifkan Kubernetes Engine API, Compute Engine API, Cloud Storage API, Identity and Access Management API, Cloud Resource Manager API, dan Service Usage API di project Google Cloud Anda:
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) - Storage Admin (
roles/storage.admin) - Project IAM Admin (
roles/resourcemanager.projectIamAdmin) - Service Account Admin (
roles/iam.serviceAccountAdmin) - Service Account User (
roles/iam.serviceAccountUser) - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
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
Ekspor variabel lingkungan yang Anda gunakan di sepanjang tutorial ini:
Ganti kode berikut:
YOUR_PROJECT_ID: ID project Google Cloud Anda.YOUR_REGION: region tempat kapasitas A4 Anda berada dan tempat Anda ingin men-deploy cluster, sepertius-central1.YOUR_ZONE: zona tempat kapasitas A4 Anda berada, sepertius-central1-b.YOUR_CLUSTER_NAME: nama untuk cluster GKE dan deployment Cluster Toolkit Anda. Gunakan nama yang terdiri dari 20 karakter atau kurang agar ID akun layanan node pool yang dihasilkan (YOUR_CLUSTER_NAME-gke-np-sa) tetap berada dalam batas 30 karakter Identity and Access Management (IAM).YOUR_RESERVATION_NAME: nama pemesanan A4 Anda, atau jalur blok pemesanan yang diperluas dalam formatRESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME.YOUR_BUCKET_NAME: nama unik global untuk bucket Cloud Storage yang menyimpan status Terraform untuk Cluster Toolkit dan bobot model Qwen3.8-2.4T yang di-stage.YOUR_HF_TOKEN: token akses Hugging Face Anda.
Membuat cluster GKE
Download Cluster Toolkit dan sediakan cluster GKE dalam mode Standard dengan empat node a4-highgpu-8g, jaringan GPUDirect RDMA, dan dukungan DRA:
Login ke Google Cloud CLI dan buat Kredensial Default Aplikasi untuk Terraform:
Download dan ekstrak paket Cluster Toolkit bawaan untuk versi yang ditentukan dalam
CLUSTER_TOOLKIT_VERSION(v1.104.0):Jika Anda menjalankan perintah ini di macOS atau di workstation
arm64, tetapkanOS="mac"atauARCH="arm64"agar sesuai dengan platform Anda.Untuk menyimpan status Terraform untuk deployment Cluster Toolkit dan bobot model yang di-stage, buat bucket Cloud Storage di region yang sama dengan pemesanan A4 Anda dengan akses level bucket yang seragam dan pembuatan versi objek diaktifkan:
Buat file konfigurasi deployment
cluster-toolkit/examples/gke-a4/gke-a4-deployment.yamluntuk empat nodea4-highgpu-8g:Secara default, file deployment dikonfigurasi untuk menggunakan pemesanan tertentu. Jika Anda tidak memiliki pemesanan khusus, sebelum men-deploy cluster, Anda dapat memperbarui
cluster-toolkit/examples/gke-a4/gke-a4-deployment.yamluntuk menggunakan opsi konsumsi alternatif, seperti Spot VM atau Flex-start VM. Untuk petunjuk konfigurasi, lihat Opsi pemakaian GKE.Ubah ke direktori
cluster-toolkit, deploy cluster GKE menggunakan perintahgcluster deploy, lalu kembali ke direktori kerja Anda:Pembuatan cluster memerlukan waktu sekitar 20 hingga 30 menit. Jika Anda menjalankan
./gcluster deploytanpa flag--auto-approve, untuk menerapkan perubahan yang diusulkan, masukkanasaat diminta.Konfigurasi kredensial
kubectluntuk berkomunikasi dengan cluster Anda:
Menginstal KAI Scheduler dan NVIDIA Dynamo
Siapkan cluster Anda dengan membuat Secret Hugging Face dan menginstal KAI Scheduler dan platform NVIDIA Dynamo dengan penjadwalan gang Grove:
Buat Secret Kubernetes bernama
hf-secretuntuk menyimpan token akses Hugging Face Anda:Download diagram Helm platform NVIDIA Dynamo (
v1.5.0), instal KAI Scheduler, dan instal platform Dynamo dengan Grove diaktifkan:
Menyiapkan bobot model di Cloud Storage
Tempatkan checkpoint nvidia/Qwen3.8-2.4T-A95B-NVFP4 di bucket Cloud Storage dalam region Anda (gs://${GCS_BUCKET}) agar Pod worker inferensi dapat memasang bobot dengan Cloud Storage FUSE, bukan mendownloadnya dari Hugging Face pada setiap cold start:
Berikan peran Storage Object User (
roles/storage.objectUser) di bucketgs://${GCS_BUCKET}yang Anda buat di bagian Membuat cluster GKE ke akun layanan Google yang terikat ke akun layanan Kubernetesworkload-identity-k8s-sa:Download manifes
qwen3.8-2.4t-nvfp4-stage-weights-job.yamldanqwen3.8-2.4t-nvfp4-multihost-a4-gcsfuse.yaml:Atau, buat file bernama
qwen3.8-2.4t-nvfp4-stage-weights-job.yamldengan konten berikut. Job Terindeks ini menjalankan empat Pod paralel di empat node A4 Anda. Setiap Pod mendownload slice checkpointnvidia/Qwen3.8-2.4T-A95B-NVFP4dengan ukuran seimbang ke SSD NVMe Lokal node dan menguploadnya kegs://${GCS_BUCKET}/hf_models/models--nvidia--qwen3_8-2_4t-a95b-nvfp4menggunakangcloud storage rsync:Ganti nama bucket Cloud Storage Anda menjadi
qwen3.8-2.4t-nvfp4-stage-weights-job.yaml, mulai Tugas staging, tunggu keempat Pod selesai mengupload bobot, lalu hapus Tugas yang telah selesai:Mendownload bobot model ke SSD NVMe Lokal dan menguploadnya ke Cloud Storage memerlukan waktu sekitar 25 menit.
Opsional: Saat Tugas staging berjalan, lakukan streaming log Pod staging dalam sesi terminal kedua untuk memantau progres download:
Ganti
YOUR_POD_NAMEdengan nama salah satu Podqwen3-8-2-4t-stage-weightsdarikubectl get pods.
Men-deploy server SGLang yang dipisahkan multi-host
Manifes workload (qwen3.8-2.4t-nvfp4-multihost-a4-gcsfuse.yaml) menentukan
ResourceClaimTemplate Kubernetes (all-mrdma), yang mengalokasikan perangkat RDMA multi-NIC node (mrdma.google.com) melalui resource DRA, Role, dan RoleBinding
untuk akun layanan workload-identity-k8s-sa, dan NVIDIA
Dynamo DynamoGraphDeployment (qwen3-8-2-4t-a4-disagg) dengan penjadwalan gang Grove
diaktifkan. Deployment terdiri dari hal berikut:
Frontend (
Frontend): menjalankan satu replika router yang menerima permintaan klien, menemukan worker prefill dan dekode yang terdaftar, serta mengoordinasikan pemilihan rute permintaan yang dipisahkan.Worker prefill (
Prefill): menjalankan worker pool dua node di dua nodea4-highgpu-8gdengan total 16 GPU NVIDIA B200. Setiap Pod memasang bobotnvidia/Qwen3.8-2.4T-A95B-NVFP4yang di-stage dari bucket Cloud Storage Anda di/model-weightsmenggunakan driver CSI Cloud Storage FUSE (gcsfuse.csi.storage.gke.io) dengan caching file SSD NVMe Lokal, mengambil sumber lingkungan NCCL/gIB, dan meluncurkanpython3 -m dynamo.sglangdi--disaggregation-mode prefilldengan flag berikut:--served-model-name "nvidia/Qwen3.8-2.4T-A95B-NVFP4"--tensor-parallel-size 16--ep-size 16--nnodes 2--moe-runner-backend flashinfer_trtllm--attention-backend triton--kv-cache-dtype fp8_e4m3--disable-flashinfer-autotune
Worker dekode (
Decode): menjalankan worker pool dua node di dua nodea4-highgpu-8gyang tersisa, dengan total 16 GPU NVIDIA B200. Setiap Pod memasang bobot model yang di-stage dari Cloud Storage di/model-weightsmelalui driver CSI Cloud Storage FUSE dan meluncurkanpython3 -m dynamo.sglangdi--disaggregation-mode decodedengan flag berikut:--served-model-name "nvidia/Qwen3.8-2.4T-A95B-NVFP4"--tensor-parallel-size 16--ep-size 16--nnodes 2--moe-runner-backend flashinfer_trtllm--attention-backend triton--kv-cache-dtype fp8_e4m3
Deploy dan pantau server inferensi yang dipisahkan:
Tinjau manifes workload
qwen3.8-2.4t-nvfp4-multihost-a4-gcsfuse.yamlyang Anda download sebelumnya, atau buat file bernamaqwen3.8-2.4t-nvfp4-multihost-a4-gcsfuse.yamldengan konten berikut:Ganti nama bucket Cloud Storage Anda menjadi
qwen3.8-2.4t-nvfp4-multihost-a4-gcsfuse.yamldan terapkan manifes workload ke cluster Anda:Untuk memantau pemuatan bobot dan inisialisasi server, buat daftar Pod di cluster Anda, dan streaming log Pod leader prefill dan Pod leader decode:
Ganti
YOUR_POD_NAMEdengan nama Pod leader prefill atau Pod leader dekode dari outputkubectl get pods.Pada cold start, diperlukan waktu sekitar 4 hingga 5 menit untuk melakukan streaming bobot model NVFP4 2.400.000.000.000 (~1,44 TB di 200 shard) dari Cloud Storage melalui Cloud Storage FUSE dan melakukan inisialisasi server SGLang multi-host. Sebelum Anda mengirim permintaan apa pun, tunggu hingga Pod frontend menampilkan
1/1dan Pod prefill dan decode menampilkan2/2di kolomREADYdarikubectl get pods:NAME READY STATUS RESTARTS AGE qwen3-8-2-4t-a4-disagg-0-decode-0-decode-ldr-wz92h 2/2 Running 0 5m qwen3-8-2-4t-a4-disagg-0-decode-0-decode-wkr-fb8g6 2/2 Running 0 5m qwen3-8-2-4t-a4-disagg-0-frontend-jrx4s 1/1 Running 0 5m qwen3-8-2-4t-a4-disagg-0-prefill-0-prefill-ldr-7nz25 2/2 Running 0 5m qwen3-8-2-4t-a4-disagg-0-prefill-0-prefill-wkr-7d5cw 2/2 Running 0 5m
Mengirim permintaan inferensi
Kirim permintaan penyelesaian chat ke layanan Qwen3.8-2.4T yang di-deploy:
Teruskan port lokal
8000ke layananqwen3-8-2-4t-a4-disagg-frontend:Biarkan penerusan port berjalan di sesi terminal ini, atau jalankan perintah di latar belakang.
Di sesi terminal kedua, kirim permintaan penyelesaian chat ke endpoint
/v1/chat/completions:
Menjalankan workload benchmark
Lakukan tolok ukur server Qwen3.8-2.4T yang di-deploy dari Pod frontend Dynamo menggunakan
sglang.bench_serving dengan konfigurasi 1.024 token input, 1.024 token
output (1k/1k), 256 prompt, dan konkurensi maksimum 128:
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, cluster GKE, dan bucket Cloud Storage Anda:
Hapus resource DynamoGraphDeployment dan ResourceClaimTemplate:
Uninstal rilis Helm platform NVIDIA Dynamo dan KAI Scheduler:
Hapus Secret Kubernetes Hugging Face:
Dari direktori
cluster-toolkit, hancurkan cluster GKE dan infrastruktur terkaitnya menggunakan perintahgcluster destroy:Hapus bucket Cloud Storage yang menyimpan bobot model yang di-stage dan status Terraform:
gcloud storage rm --recursive "gs://${GCS_BUCKET}"
Langkah berikutnya
- Pelajari NVIDIA Dynamo lebih lanjut.
- Pelajari SGLang lebih lanjut.
- Pelajari lebih lanjut VM A4 dengan GPU NVIDIA B200.
- Pelajari Cluster Toolkit lebih lanjut.
- Pelajari lebih lanjut cara mengelola cluster GKE yang dioptimalkan untuk AI.