Halaman ini menunjukkan cara menyiapkan infrastruktur penskalaan otomatis Anda menggunakan Horizontal Pod Autoscaler (HPA) GKE untuk men-deploy model bahasa besar (LLM) Gemma dengan framework penayangan Text Generation Interface (TGI) dari Hugging Face.
Untuk mempelajari lebih lanjut cara memilih metrik untuk penskalaan otomatis, lihat Praktik terbaik untuk penskalaan otomatis workload LLM dengan GPU di GKE.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
- Pahami alur kerja di Menyajikan model terbuka Gemma menggunakan GPU di GKE dengan Hugging Face TGI.
Penskalaan otomatis menggunakan metrik server
Anda dapat menggunakan metrik performa khusus beban kerja yang dikeluarkan oleh server inferensi TGI untuk mengarahkan penskalaan otomatis Pod Anda. Untuk mempelajari metrik ini lebih lanjut, lihat Metrik server.
Untuk menyiapkan penskalaan otomatis metrik kustom dengan metrik server, ikuti langkah-langkah berikut:
Ekspor metrik dari server TGI ke Cloud Monitoring. Anda menggunakan Google Cloud Managed Service for Prometheus, yang menyederhanakan deployment dan konfigurasi pengumpul Prometheus Anda. Google Cloud Managed Service for Prometheus diaktifkan secara default di cluster GKE Anda; Anda juga dapat mengaktifkannya secara manual.
Contoh manifes berikut menunjukkan cara menyiapkan definisi resource PodMonitoring untuk mengarahkan Google Cloud Managed Service for Prometheus agar melakukan scraping metrik dari Pod Anda pada interval berulang 15 detik:
apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: gemma-pod-monitoring spec: selector: matchLabels: app: gemma-server endpoints: - port: 8000 interval: 15s
Instal Adaptor Stackdriver Metrik Kustom. Adaptor ini membuat metrik kustom yang Anda ekspor ke Monitoring terlihat oleh pengontrol HPA. Untuk mengetahui detail selengkapnya, lihat Penskalaan otomatis pod horizontal di dokumentasi Google Cloud Managed Service for Prometheus.
Contoh perintah berikut menunjukkan cara menginstal adaptor:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/k8s-stackdriver/master/custom-metrics-stackdriver-adapter/deploy/production/adapter_new_resource_model.yaml
Siapkan resource HPA berbasis metrik kustom. Deploy resource HPA yang didasarkan pada metrik kustom pilihan Anda. Untuk mengetahui detail selengkapnya, lihat Penskalaan otomatis pod horizontal di dokumentasi Google Cloud Managed Service for Prometheus.
Pilih salah satu tab ini untuk melihat contoh cara mengonfigurasi resource HorizontalPodAutoscaler dalam manifes Anda:
Ukuran antrean
Contoh ini menggunakan metrik server TGI
tgi_queue_size
, yang mewakili jumlah permintaan dalam antrean.Untuk menentukan nilai minimum ukuran antrean yang tepat untuk HPA, lihat Praktik terbaik untuk menskalakan otomatis beban kerja inferensi LLM dengan GPU.
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: gemma-server spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: tgi-gemma-deployment minReplicas: 1 maxReplicas: 5 metrics: - type: Pods pods: metric: name: prometheus.googleapis.com|tgi_queue_size|gauge target: type: AverageValue averageValue: $HPA_AVERAGEVALUE_TARGET
Ukuran batch
Contoh ini menggunakan metrik server TGI
tgi_batch_size
, yang menunjukkan jumlah permintaan dalam batch saat ini.Untuk menentukan nilai minimum ukuran batch yang tepat untuk HPA, lihat Praktik terbaik untuk menskalakan otomatis workload inferensi LLM dengan GPU.
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: gemma-server spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: tgi-gemma-deployment minReplicas: 1 maxReplicas: 5 metrics: - type: Pods pods: metric: name: prometheus.googleapis.com|tgi_batch_current_size|gauge target: type: AverageValue averageValue: $HPA_AVERAGEVALUE_TARGET
Penskalaan otomatis menggunakan metrik GPU
Anda dapat menggunakan metrik penggunaan dan performa yang dikeluarkan oleh GPU untuk mengarahkan penskalaan otomatis untuk Pod Anda. Untuk mempelajari lebih lanjut metrik ini, lihat Metrik GPU.
Untuk menyiapkan penskalaan otomatis metrik kustom dengan metrik GPU, ikuti langkah-langkah berikut:
Ekspor metrik GPU ke Cloud Monitoring. Jika cluster GKE Anda telah mengaktifkan metrik sistem, cluster tersebut akan otomatis mengirimkan metrik pemanfaatan GPU ke Cloud Monitoring melalui metrik sistem
container/accelerator/duty_cycle
, setiap 60 detik.- Untuk mempelajari cara mengaktifkan metrik sistem GKE, lihat Mengonfigurasi pengumpulan metrik.
- Untuk menyiapkan pengumpulan terkelola, lihat Mulai menggunakan pengumpulan terkelola dalam dokumentasi Google Cloud Managed Service for Prometheus.
- Untuk teknik tambahan dalam memantau performa workload GPU di GKE, lihat Menjalankan GPU di node pool GKE Standard.
Contoh manifes berikut menunjukkan cara menyiapkan definisi resource PodMonitoring untuk menyerap metrik dari workload NVIDIA DCGM:
apiVersion: monitoring.googleapis.com/v1 kind: PodMonitoring metadata: name: nvidia-dcgm-exporter-for-hpa namespace: gke-managed-system labels: app.kubernetes.io/name: nvidia-dcgm-exporter app.kubernetes.io/part-of: google-cloud-managed-prometheus spec: selector: matchLabels: app.kubernetes.io/name: gke-managed-dcgm-exporter endpoints: - port: metrics interval: 15s metricRelabeling: - action: keep sourceLabels: [__name__] - action: replace sourceLabels: [__name__] targetLabel: __name__ regex: DCGM_FI_DEV_GPU_UTIL replacement: dcgm_fi_dev_gpu_util
Dalam kode, pastikan untuk mengubah nama metrik DCGM yang akan digunakan di HPA menjadi huruf kecil. Hal ini karena ada masalah umum di mana HPA tidak berfungsi dengan nama metrik eksternal huruf besar. Untuk cluster yang tidak menggunakan pengekspor DCGM terkelola, pastikan
metadata.namespace
danspec.selector.matchLabels
HPA cocok dengan konfigurasi pengekspor DCGM.Penyesuaian yang tepat ini sangat penting agar HPA berhasil menemukan dan membuat kueri metrik kustom.Instal Adaptor Stackdriver Metrik Kustom. Adaptor ini membuat metrik kustom yang Anda ekspor ke Monitoring terlihat oleh pengontrol HPA. Untuk mengetahui detail selengkapnya, lihat Penskalaan otomatis pod horizontal di dokumentasi Google Cloud Managed Service for Prometheus.
Contoh perintah berikut menunjukkan cara menjalankan penginstalan ini:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/k8s-stackdriver/master/custom-metrics-stackdriver-adapter/deploy/production/adapter_new_resource_model.yaml
Siapkan resource HPA berbasis metrik kustom. Deploy resource HPA berdasarkan metrik kustom pilihan Anda. Untuk mengetahui detail selengkapnya, lihat Penskalaan otomatis pod horizontal di dokumentasi Google Cloud Managed Service for Prometheus.
- Identifikasi target nilai rata-rata untuk HPA guna memicu penskalaan otomatis. Anda dapat melakukannya secara eksperimental; misalnya, buat beban yang meningkat pada server Anda dan amati di mana penggunaan GPU Anda mencapai puncaknya. Perhatikan toleransi HPA, yang secara default adalah rentang tanpa tindakan 0,1 di sekitar nilai target untuk meredam osilasi.
- Sebaiknya gunakan alat locust-load-inference untuk pengujian. Anda juga dapat membuat dasbor kustom Cloud Monitoring untuk memvisualisasikan perilaku metrik.
Pilih salah satu tab ini untuk melihat contoh cara mengonfigurasi resource HorizontalPodAutoscaler dalam manifes Anda:
Siklus tugas (sistem GKE)
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: gemma-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: tgi-gemma-deployment minReplicas: 1 maxReplicas: 5 metrics: - type: External external: metric: name: kubernetes.io|container|accelerator|duty_cycle selector: matchLabels: resource.labels.container_name: inference-server resource.labels.namespace_name: default target: type: AverageValue averageValue: $HPA_AVERAGEVALUE_TARGET
Siklus tugas (DCGM)
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: gemma-hpa spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: tgi-gemma-deployment minReplicas: 1 maxReplicas: 5 metrics: - type: External external: metric: name: prometheus.googleapis.com|dcgm_fi_dev_gpu_util|unknown selector: matchLabels: metric.labels.exported_container: inference-server metric.labels.exported_namespace: default target: type: AverageValue averageValue: $HPA_AVERAGEVALUE_TARGET
Langkah berikutnya
- Pelajari cara mengoptimalkan penskalaan otomatis Pod berdasarkan metrik dari Cloud Monitoring.
- Pelajari Penskalaan Otomatis Pod Horizontal lebih lanjut dari dokumentasi Kubernetes open source.