Melakukan operasi peluncuran untuk GKE Inference Gateway


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

Halaman ini ditujukan bagi admin Akun dan Identitas GKE serta Developer yang ingin melakukan operasi peluncuran untuk GKE Inference Gateway.

Kasus penggunaan berikut didukung:

Memperbarui peluncuran node

Update node memigrasikan beban kerja inferensi dengan aman ke konfigurasi hardware node atau akselerator 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 InferencePool baru: men-deploy InferencePool yang dikonfigurasi dengan spesifikasi node atau hardware yang telah diupdate.

  2. Membagi traffic menggunakan HTTPRoute: mengonfigurasi 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. Pertahankan InferenceObjective yang 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 memungkinkan rollback jika diperlukan.

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

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: inference.networking.k8s.io
          kind: InferenceGateway
      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
    

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

Meluncurkan model dasar

Update model dasar diluncurkan 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 lebih baik atau untuk mengatasi masalah khusus model.

Untuk meluncurkan update model dasar:

  1. Deploy infrastruktur baru: buat node baru dan InferencePool baru yang dikonfigurasi dengan model dasar baru yang Anda pilih.
  2. Konfigurasi distribusi traffic: gunakan HTTPRoute untuk membagi traffic antara InferencePool yang ada (yang menggunakan model dasar lama) dan InferencePool baru (yang menggunakan model dasar baru). Kolom backendRefs weight mengontrol persentase traffic yang dialokasikan ke setiap kumpulan.
  3. Pertahankan integritas InferenceModel: jaga konfigurasi InferenceModel Anda tetap tidak berubah. Hal ini memastikan bahwa sistem menerapkan adaptor LoRA yang sama secara konsisten di kedua versi model dasar.
  4. Mempertahankan kemampuan rollback: mempertahankan node dan InferencePool asli selama peluncuran untuk memfasilitasi rollback jika diperlukan.

Anda membuat InferencePool baru bernama llm-pool-version-2. Kumpulan 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. Opsi 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: inference.networking.k8s.io
          kind: InferenceGateway
      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
    

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

Langkah berikutnya