Informazioni su GKE Inference Gateway


Questa pagina spiega i concetti e le funzionalità chiave di Google Kubernetes Engine (GKE) Inference Gateway, un'estensione di GKE Gateway per la pubblicazione ottimizzata di applicazioni di AI generativa.

Questa pagina presuppone che tu conosca quanto segue:

Questa pagina è rivolta ai seguenti utenti tipo:

  • Ingegneri del machine learning (ML), amministratori e operatori della piattaforma e specialisti di dati e AI interessati a utilizzare le funzionalità di orchestrazione dei container Kubernetes per la gestione dei carichi di lavoro di AI/ML.
  • Architetti cloud e specialisti di networking che interagiscono con il networking Kubernetes.

Panoramica

GKE Inference Gateway è un'estensione di GKE Gateway che fornisce routing e bilanciamento del carico ottimizzati per la gestione dei carichi di lavoro di intelligenza artificiale (AI) generativa. Semplifica il deployment, la gestione e l'osservabilità dei carichi di lavoro di inferenza AI.

Per scegliere la strategia di bilanciamento del carico ottimale per i tuoi workload AI/ML, consulta Scegliere una strategia di bilanciamento del carico per l'inferenza AI su GKE.

Funzionalità e vantaggi

GKE Inference Gateway fornisce le seguenti funzionalità chiave per servire in modo efficiente i modelli di AI generativa per le applicazioni di AI generativa su GKE:

  • Metriche supportate:
    • KV cache hits: il numero di ricerche riuscite nella cache chiave-valore (KV).
    • Utilizzo di GPU o TPU: la percentuale di tempo in cui la GPU o la TPU è in elaborazione attiva.
    • Lunghezza coda richieste: il numero di richieste in attesa di essere elaborate.
  • Bilanciamento del carico ottimizzato per l'inferenza: distribuisce le richieste per ottimizzare le prestazioni di pubblicazione del modello di AI. Utilizza metriche dei server dei modelli, come KV cache hits e queue length of pending requests, per utilizzare gli acceleratori (come GPU e TPU) in modo più efficiente per i carichi di lavoro di AI generativa. Ciò consente il routing con riconoscimento della cache dei prefissi, una funzionalità chiave che invia le richieste con contesto condiviso, identificate analizzando il corpo della richiesta, alla stessa replica del modello massimizzando gli hit della cache. Questo approccio riduce drasticamente i calcoli ridondanti e migliora il tempo al primo token, rendendolo altamente efficace per l'AI conversazionale, la generazione RAG (Retrieval-Augmented Generation) e altri carichi di lavoro di AI generativa basati su modelli.
  • Distribuzione del modello sottoposto a fine-tuning LoRA dinamico: supporta la distribuzione di modelli sottoposti a fine-tuning LoRA dinamico su un acceleratore comune. In questo modo si riduce il numero di GPU e TPU necessarie per pubblicare i modelli eseguendo il multiplexing di più modelli LoRA sottoposti a fine tuning su un modello base e un acceleratore comuni.
  • Scalabilità automatica ottimizzata per l'inferenza: GKE Horizontal Pod Autoscaler (HPA) utilizza le metriche del server del modello per la scalabilità automatica, il che contribuisce a garantire un utilizzo efficiente delle risorse di calcolo e prestazioni di inferenza ottimizzate.
  • Routing basato sul modello: esegue il routing delle richieste di inferenza in base ai nomi dei modelli definiti nelle specificheOpenAI API all'interno del cluster GKE. Puoi definire criteri di routing del gateway, come la suddivisione del traffico e il mirroring delle richieste, per gestire diverse versioni del modello e semplificare i rollout dei modelli. Ad esempio, puoi indirizzare le richieste per un nome di modello specifico a diversi oggetti InferencePool, ognuno dei quali serve una versione diversa del modello. Per ulteriori informazioni su come configurare questa opzione, consulta Configurare il routing basato sul corpo.
  • Sicurezza dell'AI e filtro dei contenuti integrati: GKE Inference Gateway si integra con Google Cloud Model Armor per applicare controlli di sicurezza dell'AI e filtri dei contenuti a prompt e risposte nel gateway. Model Armor fornisce log di richieste, risposte ed elaborazione per l'analisi e l'ottimizzazione retrospettive. Le interfacce aperte di GKE Inference Gateway consentono a fornitori e sviluppatori di terze parti di integrare servizi personalizzati nel processo di richiesta di inferenza.
  • Pubblicazione specifica per modello Priority: consente di specificare la pubblicazione Priority dei modelli di AI. Dai la priorità alle richieste sensibili alla latenza rispetto ai job di inferenza batch tolleranti alla latenza. Ad esempio, puoi dare la priorità alle richieste delle applicazioni sensibili alla latenza ed eliminare le attività meno sensibili al tempo quando le risorse sono limitate.
  • Osservabilità dell'inferenza: fornisce metriche di osservabilità per le richieste di inferenza, come tasso di richieste, latenza, errori e saturazione. Monitora le prestazioni e il comportamento dei tuoi servizi di inferenza tramite Cloud Monitoring e Cloud Logging, sfruttando dashboard predefinite specializzate per insight dettagliati. Per maggiori informazioni, consulta Visualizzare la dashboard di GKE Inference Gateway.
  • Advanced API Management con Apigee: si integra con Apigee per migliorare il gateway di inferenza con funzionalità come sicurezza API, limitazione di frequenza e quote. Per istruzioni dettagliate, vedi Configurare Apigee per l'autenticazione e la gestione delle API.
  • Estensibilità: basato su un'estensione di inferenza dell'API Kubernetes Gateway open source ed estensibile che supporta un algoritmo di selezione degli endpoint gestito dall'utente.

Comprendere i concetti chiave

GKE Inference Gateway migliora l'GKE Gateway esistente che utilizza oggetti GatewayClass. GKE Inference Gateway introduce le seguenti nuove definizioni di risorse personalizzate (CRD) dell'API Gateway, in linea con l'estensione dell'API Gateway Kubernetes OSS per l'inferenza:

  • Oggetto InferencePool: rappresenta un gruppo di pod (container) che condividono la stessa configurazione di calcolo, lo stesso tipo di acceleratore, lo stesso modello linguistico di base e lo stesso server di modelli. che raggruppa e gestisce logicamente le risorse di servizio del modello di AI. Un singolo oggetto InferencePool può estendersi su più pod in diversi nodi GKE e offre scalabilità e alta disponibilità.
  • Oggetto InferenceObjective: specifica il nome del modello di pubblicazione da InferencePool in base alla specifica OpenAI API. L'oggetto InferenceObjective specifica anche le proprietà di pubblicazione del modello, come Priority del modello di AI. GKE Inference Gateway dà la preferenza ai carichi di lavoro con un valore di priorità più elevato. Ciò consente di multiplexare i workload di AI sensibili alla latenza e tolleranti alla latenza su un cluster GKE. Puoi anche configurare l'oggetto InferenceObjective per pubblicare modelli ottimizzati LoRA.

Il seguente diagramma illustra GKE Inference Gateway e la sua integrazione con la sicurezza dell'AI, l'osservabilità e la pubblicazione di modelli all'interno di un cluster GKE.

Relazione tra gli oggetti `InferencePool` e `InferenceObjective` di GKE Inference Gateway
Figura: modello di risorsa GKE Inference Gateway

Il seguente diagramma illustra il modello di risorse incentrato su due nuove persona focalizzate sull'inferenza e sulle risorse che gestiscono.

Il modello di risorse per le persona incentrate sull'inferenza e le relative risorse
Figura: modello di risorsa GKE Inference Gateway con persona incentrata sull'inferenza

Come funziona GKE Inference Gateway

GKE Inference Gateway utilizza le estensioni dell'API Gateway e la logica di routing specifica del modello per gestire le richieste dei client a un modello di AI. I passaggi seguenti descrivono il flusso della richiesta.

Come funziona il flusso delle richieste

GKE Inference Gateway instrada le richieste client dalla richiesta iniziale a un'istanza del modello. Questa sezione descrive come GKE Inference Gateway gestisce le richieste. Questo flusso di richieste è comune a tutti i client.

  1. Il client invia una richiesta, formattata come descritto nella specifica dell'API OpenAI, al modello in esecuzione in GKE.
  2. GKE Inference Gateway elabora la richiesta utilizzando le seguenti estensioni di inferenza:
    1. Estensione di routing basata sul corpo: estrae l'identificatore del modello dal corpo della richiesta del client e lo invia a GKE Inference Gateway. GKE Inference Gateway utilizza quindi questo identificatore per instradare la richiesta in base alle regole definite nell'oggetto HTTPRoute dell'API Gateway. Il routing del corpo della richiesta è simile al routing basato sul percorso URL. La differenza è che il routing del corpo della richiesta utilizza i dati del corpo della richiesta.
    2. Estensione di sicurezza: utilizza Model Armor o soluzioni di terze parti supportate per applicare norme di sicurezza specifiche del modello, che includono filtraggio dei contenuti, rilevamento delle minacce, sanificazione e logging. L'estensione di sicurezza applica queste policy ai percorsi di elaborazione delle richieste e delle risposte.
    3. Estensione di selezione degli endpoint: monitora le metriche chiave dei server dei modelli all'interno di InferencePool. Monitora l'utilizzo della cache chiave-valore (KV-cache), la lunghezza della coda delle richieste in attesa, gli indici della cache dei prefissi e gli adattatori LoRA attivi su ogni server di modelli. Successivamente, indirizza la richiesta alla replica del modello ottimale in base a queste metriche per ridurre al minimo la latenza e massimizzare la velocità effettiva per l'inferenza dell'AI.
  3. GKE Inference Gateway indirizza la richiesta alla replica del modello restituita dall'estensione di selezione dell'endpoint.

Il seguente diagramma illustra il flusso di richieste da un client a un'istanza del modello tramite GKE Inference Gateway.

Il flusso di richieste da un client a un'istanza del modello tramite GKE Inference Gateway
Figura: flusso di richieste del gateway GKE Inference

Come funziona la distribuzione del traffico

GKE Inference Gateway distribuisce dinamicamente le richieste di inferenza ai server dei modelli all'interno dell'oggetto InferencePool. Ciò consente di ottimizzare l'utilizzo delle risorse e mantenere le prestazioni in condizioni di carico variabili. GKE Inference Gateway utilizza i seguenti due meccanismi per gestire la distribuzione del traffico:

  • Selezione dell'endpoint: seleziona dinamicamente il server di modelli più adatto per gestire una richiesta di inferenza. Monitora il carico e la disponibilità del server, quindi prende decisioni di routing ottimali calcolando un score per ogni server combinando una serie di euristiche di ottimizzazione:

    • Routing basato sulla cache dei prefissi: GKE Inference Gateway monitora gli indici della cache dei prefissi disponibili su ogni server di modelli e assegna un punteggio più alto a un server con una corrispondenza della cache dei prefissi più lunga.
    • Routing basato sul carico: GKE Inference Gateway monitora il carico del server (utilizzo della cache KV e profondità della coda in attesa) e assegna un punteggio più alto a un server con carico inferiore.
    • Routing basato su LoRA: quando il servizio LoRA dinamico è abilitato, GKE Inference Gateway monitora gli adattatori LoRA attivi per server e assegna un punteggio più alto a un server con l'adattatore LoRA richiesto attivo o spazio aggiuntivo per caricare dinamicamente l'adattatore LoRA richiesto. Viene selezionato un server con il punteggio totale più alto di tutti quelli precedenti.
  • Accodamento e eliminazione: gestisce il flusso di richieste e impedisce il sovraccarico di traffico. GKE Inference Gateway archivia le richieste in entrata in una coda e assegna la priorità alle richieste in base alla priorità definita.

GKE Inference Gateway utilizza un sistema numerico Priority, noto anche come Criticality, per gestire il flusso delle richieste ed evitare il sovraccarico. Questo Priority è un campo numerico intero facoltativo definito dall'utente per ogni InferenceObjective. Un valore più alto indica una richiesta più importante. Quando il sistema è sotto pressione, le richieste con un Priority inferiore a 0 vengono considerate a priorità inferiore e vengono eliminate per prime, restituendo un errore 429 per proteggere i workload più critici. Per impostazione predefinita, il valore di Priority è 0. Le richieste vengono eliminate a causa della priorità solo se il relativo Priority è impostato esplicitamente su un valore inferiore a 0. Questo sistema ti consente di dare la priorità al traffico di inferenza online sensibile alla latenza rispetto ai job batch meno sensibili al tempo.

GKE Inference Gateway supporta l'inferenza di streaming per applicazioni come chatbot e traduzione live, che richiedono aggiornamenti continui o quasi in tempo reale. L'inferenza in streaming fornisce risposte in blocchi o segmenti incrementali, anziché un singolo output completo. Se si verifica un errore durante una risposta in streaming, lo stream termina e il client riceve un messaggio di errore. GKE Inference Gateway non riprova le risposte in streaming.

Esplorare esempi di applicazioni

Questa sezione fornisce esempi di utilizzo di GKE Inference Gateway per affrontare vari scenari di applicazioni di AI generativa.

Esempio 1: pubblicare più modelli di AI generativa su un cluster GKE

Un'azienda vuole eseguire il deployment di più modelli linguistici di grandi dimensioni (LLM) per gestire diversi workload. Ad esempio, potrebbero voler eseguire il deployment di un modello Gemma3 per un'interfaccia chatbot e di un modello Deepseek per un'applicazione di consigli. L'azienda deve garantire un rendimento di pubblicazione ottimale per questi LLM.

Utilizzando GKE Inference Gateway, puoi eseguire il deployment di questi LLM sul tuo cluster GKE con la configurazione dell'acceleratore che preferisci in un InferencePool. Puoi quindi indirizzare le richieste in base al nome del modello (ad esempio <x0A>chatbot e recommender) e alla proprietà Priority.

Il seguente diagramma illustra come GKE Inference Gateway indirizza le richieste a modelli diversi in base al nome del modello e a Priority.

Instradamento delle richieste a modelli diversi in base al nome del modello e alla priorità
Figura: pubblicazione di più modelli di AI generativa su un cluster GKE utilizzando GKE Inference Gateway

Questo diagramma illustra come una richiesta a un servizio GenAI su example.com/completions viene gestita da GKE Inference Gateway. La richiesta raggiunge prima un Gateway nello spazio dei nomi Infra. Questo Gateway inoltra la richiesta a un HTTPRoute nello spazio dei nomi GenAI Inference, che è configurato per gestire le richieste per i modelli di chatbot e analisi del sentiment. Per il modello chatbot, HTTPRoute suddivide il traffico: il 90% viene indirizzato a un InferencePool che esegue la versione attuale del modello (selezionata da {pool: gemma}) e il 10% va a un pool con una versione più recente ({pool: gemma-new}), in genere per i test canary. Entrambi i pool sono collegati a un InferenceObjective che assegna una Priority di 10 alle richieste per il modello di chatbot, garantendo che queste richieste vengano trattate come priorità alta.

Esempio 2: pubblicare adattatori LoRA su un acceleratore condiviso

Un'azienda vuole utilizzare LLM per l'analisi dei documenti e si concentra su segmenti di pubblico in più lingue, come inglese e spagnolo. Hanno modelli ottimizzati per ogni lingua, ma devono utilizzare in modo efficiente la capacità di GPU e TPU. Puoi utilizzare GKE Inference Gateway per eseguire il deployment di adattatori LoRA dinamici ottimizzati per ogni lingua (ad esempio english-bot e spanish-bot) su un modello di base comune (ad esempio llm-base) e un acceleratore. In questo modo puoi ridurre il numero di acceleratori richiesti raggruppando più modelli su un acceleratore comune.

Il seguente diagramma illustra come GKE Inference Gateway gestisce più adattatori LoRA su un acceleratore condiviso.

Erogazione di più adattatori LoRA su un acceleratore condiviso
Figura: erogazione di adattatori LoRA su un acceleratore condiviso

Passaggi successivi