Questa pagina mostra come eseguire operazioni di implementazione incrementale, che eseguono gradualmente il deployment di nuove versioni dell'infrastruttura di inferenza per GKE Inference Gateway. Questo gateway ti consente di eseguire aggiornamenti sicuri e controllati alla tua infrastruttura di inferenza. Puoi aggiornare nodi, modelli di base e adattatori LoRA con interruzioni minime del servizio. Questa pagina fornisce anche indicazioni sulla suddivisione del traffico e sui rollback per garantire implementazioni affidabili.
Questa pagina è rivolta agli amministratori di identità e account GKE e agli sviluppatori che vogliono eseguire operazioni di implementazione per GKE Inference Gateway.
Sono supportati i seguenti casi d'uso:
- Implementazione dell'aggiornamento dei nodi (di computing, acceleratore)
- Implementazione dell'aggiornamento del modello di base
- Implementazione dell'aggiornamento dell'adattatore LoRA
Aggiorna l'implementazione di un nodo
I rollout degli aggiornamenti dei nodi eseguono la migrazione sicura dei carichi di lavoro di inferenza a nuove configurazioni hardware dei nodi o degli acceleratori. Questa procedura viene eseguita in modo controllato senza interrompere il servizio del modello. Utilizza i rollout degli aggiornamenti dei nodi per ridurre al minimo l'interruzione del servizio durante gli upgrade hardware, gli aggiornamenti dei driver o la risoluzione dei problemi di sicurezza.
Crea un nuovo
InferencePool
: esegui il deployment di unInferencePool
configurato con le specifiche aggiornate del nodo o dell'hardware.Dividi il traffico utilizzando un
HTTPRoute
: configura unHTTPRoute
per distribuire il traffico tra le risorseInferencePool
esistenti e quelle nuove. Utilizza il campoweight
inbackendRefs
per gestire la percentuale di traffico indirizzata ai nuovi nodi.Mantieni un
InferenceModel
coerente: conserva la configurazioneInferenceModel
esistente per garantire un comportamento uniforme del modello in entrambe le configurazioni dei nodi.Mantieni le risorse originali: mantieni attivi i
InferencePool
e i nodi originali durante l'implementazione per consentire i rollback, se necessario.
Ad esempio, puoi creare un nuovo InferencePool
denominato llm-new
. Configura
questo pool con la stessa configurazione del modello del tuo llm
InferencePool
esistente. Esegui il deployment del pool su un nuovo insieme di nodi all'interno del cluster. Utilizza
un oggetto HTTPRoute
per dividere il traffico tra l'llm
originale e il nuovo
llm-new
InferencePool
. Questa tecnica ti consente di aggiornare in modo incrementale i nodi del modello.
Il seguente diagramma illustra come GKE Inference Gateway esegue l'implementazione di un aggiornamento dei nodi.

Per eseguire l'implementazione di un aggiornamento dei nodi, segui questi passaggi:
Salva il seguente manifest di esempio come
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
Applica il manifest di esempio al cluster:
kubectl apply -f routes-to-llm.yaml
L'llm
InferencePool
originale riceve la maggior parte del traffico, mentre l'llm-new
InferencePool
riceve il resto del traffico. Aumenta gradualmente il peso del traffico
per llm-new
InferencePool
per completare l'implementazione dell'aggiornamento del nodo.
Implementare un modello di base
Gli aggiornamenti del modello di base vengono implementati in fasi in un nuovo LLM di base, mantenendo la compatibilità con gli adattatori LoRA esistenti. Puoi utilizzare i rollout degli aggiornamenti del modello di base per eseguire l'upgrade a architetture di modelli migliorate o per risolvere problemi specifici del modello.
Per implementare un aggiornamento del modello di base:
- Deploy new infrastructure (Esegui il deployment di una nuova infrastruttura): crea nuovi nodi e un nuovo
InferencePool
configurato con il nuovo modello di base che hai scelto. - Configura la distribuzione del traffico: utilizza un
HTTPRoute
per dividere il traffico tra l'InferencePool
esistente (che utilizza il vecchio modello di base) e il nuovoInferencePool
(che utilizza il nuovo modello di base). Il campobackendRefs weight
controlla la percentuale di traffico allocata a ogni pool. - Mantenere l'integrità di
InferenceModel
: mantieni invariata la configurazione diInferenceModel
. In questo modo, il sistema applica gli stessi adattatori LoRA in modo coerente in entrambe le versioni del modello di base. - Preserva la funzionalità di rollback: mantieni i nodi originali e
InferencePool
durante l'implementazione per facilitare un rollback, se necessario.
Crea un nuovo InferencePool
denominato llm-pool-version-2
. Questo pool esegue il deployment
di una nuova versione del modello di base su un nuovo insieme di nodi. Configurando un HTTPRoute
, come mostrato nell'esempio fornito, puoi suddividere in modo incrementale il traffico tra l'llm-pool
originale e llm-pool-version-2
. In questo modo puoi controllare gli aggiornamenti del modello di base nel tuo
cluster.
Per eseguire l'implementazione di un aggiornamento del modello di base, segui questi passaggi:
Salva il seguente manifest di esempio come
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
Applica il manifest di esempio al cluster:
kubectl apply -f routes-to-llm.yaml
L'llm-pool
InferencePool
originale riceve la maggior parte del traffico, mentre l'llm-pool-version-2
InferencePool
riceve il resto. Aumenta gradualmente il peso del traffico per llm-pool-version-2
InferencePool
per completare l'implementazione dell'aggiornamento del modello di base.
Implementare gli aggiornamenti dell'adattatore LoRA
I rollout degli aggiornamenti degli adattatori LoRA ti consentono di eseguire il deployment di nuove versioni di modelli ottimizzati in fasi, senza alterare il modello di base o l'infrastruttura sottostanti. Utilizza i rollout degli aggiornamenti degli adattatori LoRA per testare miglioramenti, correzioni di bug o nuove funzionalità negli adattatori LoRA.
Per aggiornare un adattatore LoRA:
Rendi disponibili gli adattatori: assicurati che le nuove versioni dell'adattatore LoRA siano disponibili sui server dei modelli. Per ulteriori informazioni, vedi Implementazione dell'adattatore.
Modifica la configurazione di
InferenceModel
: nella configurazione diInferenceModel
esistente, definisci più versioni dell'adattatore LoRA. Assegna unmodelName
univoco a ogni versione (ad esempio,llm-v1
,llm-v2
).Distribuire il traffico: utilizza il campo
weight
nella specificaInferenceModel
per controllare la distribuzione del traffico tra le diverse versioni dell'adattatore LoRA.Mantieni un
poolRef
coerente: assicurati che tutte le versioni dell'adattatore LoRA facciano riferimento allo stessoInferencePool
. In questo modo si evita il redeploy dei nodi o diInferencePool
. Conserva le versioni precedenti dell'adattatore LoRA nella configurazioneInferenceModel
per consentire i rollback.
L'esempio seguente mostra due versioni dell'adattatore LoRA, llm-v1
e llm-v2
.
Entrambe le versioni utilizzano lo stesso modello di base. Definisci llm-v1
e llm-v2
all'interno
dello stesso InferenceModel
. Assegni pesi per spostare gradualmente il traffico
da llm-v1
a llm-v2
. Questo controllo consente un'implementazione controllata senza
richiedere modifiche ai nodi o alla configurazione di InferencePool
.
Per implementare gli aggiornamenti dell'adattatore LoRA, esegui questo comando:
Salva il seguente manifest di esempio come
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
Applica il manifest di esempio al cluster:
kubectl apply -f inferencemodel-sample.yaml
La versione llm-v1
riceve la maggior parte del traffico, mentre la versione llm-v2
riceve il resto. Aumenta gradualmente il peso del traffico per la versione llm-v2
per completare l'implementazione dell'aggiornamento dell'adattatore LoRA.