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 rollback untuk membantu 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

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

  1. Buat InferencePool baru: 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 InferenceModel yang konsisten: pertahankan konfigurasi InferenceModel 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 InferencePool llm-new 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, lakukan 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
      rules:
        backendRefs:
        - name: llm
          kind: InferencePool
          weight: 90
        - name: llm-new
          kind: InferencePool
          weight: 10
    
  2. Terapkan manifes sampel ke cluster Anda:

    kubectl apply -f routes-to-llm.yaml
    

llm InferencePool asli menerima sebagian besar traffic, sedangkan llm-new InferencePool menerima sisa traffic. 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, lakukan 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
      rules:
        backendRefs:
        - name: llm-pool
          kind: InferencePool
          weight: 90
        - name: llm-pool-version-2
          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.

Meluncurkan update adaptor LoRA

Peluncuran update adaptor LoRA memungkinkan Anda men-deploy versi baru model yang di-fine-tune secara bertahap, tanpa mengubah model dasar atau infrastruktur yang mendasarinya. Gunakan peluncuran update adaptor LoRA untuk menguji peningkatan, perbaikan bug, atau fitur baru di adaptor LoRA Anda.

Untuk memperbarui adaptor LoRA, ikuti langkah-langkah berikut:

  1. Menyediakan adaptor: Pastikan versi adaptor LoRA baru tersedia di server model. Untuk mengetahui informasi selengkapnya, lihat Peluncuran adaptor.

  2. Ubah konfigurasi InferenceModel: dalam konfigurasi InferenceModel yang ada, tentukan beberapa versi adaptor LoRA Anda. Tetapkan modelName unik ke setiap versi (misalnya, llm-v1, llm-v2).

  3. Mendistribusikan traffic: gunakan kolom weight dalam spesifikasi InferenceModel untuk mengontrol distribusi traffic di antara berbagai versi adaptor LoRA.

  4. Pertahankan poolRef yang konsisten: pastikan semua versi adaptor LoRA mereferensikan InferencePool yang sama. Tindakan ini mencegah deployment ulang node atau InferencePool. Pertahankan versi adaptor LoRA sebelumnya dalam konfigurasi InferenceModel untuk mengaktifkan rollback.

Contoh berikut menunjukkan dua versi adaptor LoRA, llm-v1 dan llm-v2. Kedua versi menggunakan model dasar yang sama. Anda menentukan llm-v1 dan llm-v2 dalam InferenceModel yang sama. Anda menetapkan bobot untuk mengalihkan traffic secara bertahap dari llm-v1 ke llm-v2. Kontrol ini memungkinkan peluncuran terkontrol tanpa memerlukan perubahan pada konfigurasi node atau InferencePool Anda.

Untuk meluncurkan update adaptor LoRA, jalankan perintah berikut:

  1. Simpan manifes contoh berikut sebagai inferencemodel-sample.yaml:

    apiVersion: inference.networking.x-k8s.io/v1alpha2
    kind: InferenceModel
    metadata:
      name: inferencemodel-sample
    spec:
    versions:
    -   modelName: llm-v1
      criticality: Critical
      weight: 90
      poolRef:
        name: llm-pool
    -   modelName: llm-v2
      criticality: Critical
      weight: 10
      poolRef:
        name: llm-pool
    
  2. Terapkan manifes sampel ke cluster Anda:

    kubectl apply -f inferencemodel-sample.yaml
    

Versi llm-v1 menerima sebagian besar traffic, sedangkan versi llm-v2 menerima sisanya. Tingkatkan bobot traffic secara bertahap untuk versi llm-v2 guna menyelesaikan peluncuran update adaptor LoRA.

Langkah berikutnya