Menjalankan operasi peluncuran untuk GKE Inference Gateway

Halaman ini menunjukkan cara melakukan operasi peluncuran inkremental, yang secara bertahap men-deploy versi baru infrastruktur inferensi Anda, untuk GKE Inference Gateway. Gateway ini memungkinkan Anda melakukan update yang aman dan terkontrol ke infrastruktur inferensi. Anda dapat mengupdate node, model dasar, dan adaptor LoRA dengan gangguan layanan minimal. Halaman ini juga memberikan panduan tentang pembagian traffic dan rollback untuk memastikan deployment yang andal.

Halaman ini ditujukan untuk Admin akun dan ID GKE serta Developer yang ingin melakukan operasi peluncuran untuk GKE Inference Gateway.

Kasus penggunaan berikut didukung:

Meluncurkan update node

Update node memigrasikan workload inferensi dengan aman ke konfigurasi hardware atau akselerator node baru. Proses ini terjadi secara terkontrol tanpa mengganggu layanan model. Gunakan update node untuk meminimalkan gangguan layanan selama upgrade hardware, update driver, atau penyelesaian masalah keamanan.

  1. Buat InferencePoolbaru: deploy InferencePool yang dikonfigurasi dengan spesifikasi hardware atau node yang diupdate.

  2. Membagi traffic menggunakan HTTPRoute: konfigurasi HTTPRoute untuk mendistribusikan traffic antara resource InferencePool yang ada dan yang baru. Gunakan kolom weight di backendRefs untuk mengelola persentase traffic yang diarahkan ke node baru.

  3. Mempertahankan InferenceObjectiveyang konsisten: pertahankan konfigurasi InferenceObjective yang ada untuk memastikan perilaku model yang seragam di kedua konfigurasi node.

  4. Mempertahankan resource asli: pertahankan InferencePool dan node asli tetap aktif selama peluncuran untuk mengaktifkan rollback jika diperlukan.

Misalnya, Anda dapat membuat InferencePool baru bernama llm-new. Konfigurasikan pool ini dengan konfigurasi model yang sama dengan InferencePool llm yang ada. Deploy pool di kumpulan node baru dalam cluster Anda. Gunakan objek HTTPRoute untuk membagi traffic antara llm asli dan llm-new InferencePool yang baru. Teknik ini memungkinkan Anda mengupdate node model secara bertahap.

Diagram berikut mengilustrasikan cara GKE Inference Gateway melakukan peluncuran update node.

Proses peluncuran update node
Gambar: Proses peluncuran update node

Untuk melakukan peluncuran update node, ikuti langkah-langkah berikut:

  1. Simpan manifes contoh berikut sebagai routes-to-llm.yaml:

    apiVersion: gateway.networking.k8s.io/v1
    kind: HTTPRoute
    metadata:
      name: routes-to-llm
    spec:
      parentRefs:
        - name: my-inference-gateway
          group: gateway.networking.k8s.io
          kind: Gateway
      rules:
      - backendRefs:
        - name: llm
          group: inference.networking.k8s.io
          kind: InferencePool
          weight: 90
        - name: llm-new
          group: inference.networking.k8s.io
          kind: InferencePool
          weight: 10
    
  2. Terapkan manifes contoh ke cluster Anda:

    kubectl apply -f routes-to-llm.yaml
    

InferencePool llm asli menerima sebagian besar traffic, sedangkan InferencePool llm-new menerima sisanya. Tingkatkan bobot traffic secara bertahap untuk InferencePool llm-new guna menyelesaikan peluncuran update node.

Meluncurkan model dasar

Peluncuran update model dasar dilakukan secara bertahap ke LLM dasar baru, dengan tetap mempertahankan kompatibilitas dengan adaptor LoRA yang ada. Anda dapat menggunakan peluncuran update model dasar untuk mengupgrade ke arsitektur model yang ditingkatkan atau untuk mengatasi masalah khusus model.

Untuk meluncurkan update model dasar:

  1. Men-deploy infrastruktur baru: buat node baru dan InferencePool yang dikonfigurasi dengan model dasar baru yang Anda pilih.
  2. Mengonfigurasi distribusi traffic: gunakan HTTPRoute untuk membagi traffic antara InferencePool yang ada (yang menggunakan model dasar lama) dan InferencePool baru (menggunakan model dasar baru). Kolom backendRefs weight mengontrol persentase traffic yang dialokasikan ke setiap pool.
  3. Mempertahankan InferenceObjective integritas: pertahankan konfigurasi InferenceObjective Anda tidak berubah. Pendekatan ini membantu memastikan bahwa sistem menerapkan adaptor LoRA yang sama secara konsisten di kedua versi model dasar.
  4. Mempertahankan kemampuan rollback: pertahankan node asli dan InferencePool selama peluncuran untuk memfasilitasi rollback jika diperlukan.

Anda membuat InferencePool baru bernama llm-pool-version-2. Pool ini men-deploy versi baru model dasar pada kumpulan node baru. Dengan mengonfigurasi HTTPRoute, seperti yang ditunjukkan dalam contoh yang diberikan, Anda dapat membagi traffic secara bertahap antara llm-pool asli dan llm-pool-version-2. Hal ini memungkinkan Anda mengontrol update model dasar di cluster.

Untuk melakukan peluncuran update model dasar, ikuti langkah-langkah berikut:

  1. Simpan manifes contoh berikut sebagai routes-to-llm.yaml:

    apiVersion: gateway.networking.k8s.io/v1
    kind: HTTPRoute
    metadata:
      name: routes-to-llm
    spec:
      parentRefs:
        - name: my-inference-gateway
          group: gateway.networking.k8s.io
          kind: Gateway
      rules:
      - backendRefs:
        - name: llm-pool
          group: inference.networking.k8s.io
          kind: InferencePool
          weight: 90
        - name: llm-pool-version-2
          group: inference.networking.k8s.io
          kind: InferencePool
          weight: 10
    
  2. Terapkan manifes contoh ke cluster Anda:

    kubectl apply -f routes-to-llm.yaml
    

InferencePool llm-pool asli menerima sebagian besar traffic, sedangkan InferencePool llm-pool-version-2 menerima sisanya. Tingkatkan bobot traffic secara bertahap untuk InferencePool llm-pool-version-2 guna menyelesaikan peluncuran update model dasar.

Langkah berikutnya