Tutorial ini menunjukkan cara men-deploy dan menyajikan
Llama 3.1 405B (nvidia/Llama-3.1-405B-Instruct-FP8),
model yang disesuaikan dengan petunjuk dan memiliki 405 miliar parameter yang dikuantisasi ke FP8, di
Google Kubernetes Engine (GKE) di Google Cloud. Deployment ini menggunakan
Cluster Toolkit, dua
instance virtual machine (VM) A4 (a4-highgpu-8g)
dengan total 16 GPU NVIDIA B200,
NVIDIA Dynamo, dan
framework inferensi SGLang dengan
disagregasi prefill-decode (PD) host tunggal.
Dalam konfigurasi deployment yang dijelaskan dalam tutorial ini, Anda akan menggunakan Cluster Toolkit untuk menyediakan cluster GKE dalam mode Standard. Cluster ini berisi dua node a4-highgpu-8g yang terhubung melalui jaringan GPUDirect Remote Direct Memory Access (RDMA). Kemudian, Anda akan menginstal
platform KAI Scheduler dan NVIDIA Dynamo dengan penjadwalan gang Grove.
Terakhir, Anda men-deploy resource kustom DynamoGraphDeployment yang memisahkan
prefill dan decode di dua worker delapan GPU host tunggal dengan paralelisme
tensor dan cache KV FP8.
Tujuan
- Instal Cluster Toolkit dan sediakan cluster GKE A4 dua node dalam mode Standard.
- Instal platform KAI Scheduler dan NVIDIA Dynamo dengan penjadwalan gang Grove di cluster Anda.
- Men-deploy server inferensi SGLang yang dipisahkan PD dengan satu worker prefill A4 host tunggal dan satu worker dekode A4 host tunggal.
- 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.YOUR_BUCKET_NAME: nama unik global untuk bucket Cloud Storage yang menyimpan status Terraform untuk Cluster Toolkit.YOUR_HF_TOKEN: token akses Hugging Face Anda.
Membuat cluster GKE
Download Cluster Toolkit dan sediakan cluster GKE dalam mode Standard dengan dua 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 Anda, buat bucket Cloud Storage dengan pembuatan versi objek diaktifkan:
Buat file konfigurasi deployment
cluster-toolkit/examples/gke-a4/gke-a4-deployment.yamluntuk dua 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:
Men-deploy server SGLang yang dipisahkan dengan satu host
Manifes workload (llama3.1-405b-singlehost-a4.yaml) menentukan ResourceClaimTemplate Kubernetes (all-mrdma), yang mengalokasikan perangkat RDMA multi-NIC node (mrdma.google.com) melalui DRA, dan DynamoGraphDeployment NVIDIA Dynamo (llama3-405b-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 host tunggal pada satu nodea4-highgpu-8gdengan delapan GPU NVIDIA B200. Saat memulai, Pod mengambil lingkungan NCCL/gIB, mendownload checkpointnvidia/Llama-3.1-405B-Instruct-FP8dari Hugging Face Hub ke SSD NVMe Lokal node, dan meluncurkanpython3 -m dynamo.sglangdi--disaggregation-mode prefilldengan flag berikut:--tensor-parallel-size 8--kv-cache-dtype fp8_e4m3--context-length 16384--mem-fraction-static 0.85
- Decode worker (
Decode): menjalankan worker host tunggal pada nodea4-highgpu-8gkedua dengan delapan GPU NVIDIA B200. Saat startup, Pod meng-cache bobot model di SSD NVMe Lokal node dan meluncurkanpython3 -m dynamo.sglangdi--disaggregation-mode decodedengan flag berikut:--tensor-parallel-size 8--kv-cache-dtype fp8_e4m3--context-length 16384--mem-fraction-static 0.85
Deploy dan pantau server inferensi yang dipisahkan:
Download manifes workload
llama3.1-405b-singlehost-a4.yaml:Atau, buat file bernama
llama3.1-405b-singlehost-a4.yamldengan konten berikut:Terapkan manifes workload ke cluster Anda:
Untuk memantau download bobot dan inisialisasi server, buat daftar Pod di cluster Anda, dan streaming log Pod prefill dan decode:
Ganti
YOUR_POD_NAMEdengan nama Pod prefill atau Pod dekode dari outputkubectl get pods.Pada operasi pertama, perlu waktu sekitar 10 hingga 20 menit untuk mendownload bobot model 405B FP8 dan menginisialisasi server SGLang. Sebelum Anda mengirim permintaan apa pun, tunggu hingga Pod frontend, prefill, dan decode menampilkan
1/1di kolomREADYdarikubectl get pods:NAME READY STATUS RESTARTS AGE llama3-405b-a4-disagg-0-decode-tgl7q 1/1 Running 0 15m llama3-405b-a4-disagg-0-frontend-wrxq5 1/1 Running 0 15m llama3-405b-a4-disagg-0-prefill-67h5s 1/1 Running 0 15m
Mengirim permintaan inferensi
Kirim permintaan penyelesaian chat ke layanan Llama 3.1 405B yang di-deploy:
Teruskan port lokal
8000ke layananllama3-405b-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 Llama 3.1 405B yang di-deploy dari Pod frontend Dynamo menggunakan sglang.bench_serving. Konfigurasikan benchmark untuk 1.024 token input, 1.024 token output (1k/1k), 2.048 perintah, dan konkurensi maksimum 512:
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:Untuk menghapus bucket Cloud Storage yang menyimpan status Terraform, gunakan perintah
gcloud storage rm: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.