Informazioni su GKE Inference Gateway


Questa pagina introduce Google Kubernetes Engine (GKE) Inference Gateway, un miglioramento di GKE Gateway per il servizio ottimizzato di applicazioni di IA generativa. Vengono spiegati i concetti chiave, le funzionalità e il funzionamento di GKE Inference Gateway.

Questa pagina è rivolta ai seguenti profili:

  • Ingegneri di machine learning (ML), amministratori e operatori della piattaforma e specialisti di dati e AI interessati a utilizzare le funzionalità di orchestrazione dei contenitori Kubernetes per l'erogazione di workload di AI/ML.
  • Architetti cloud e specialisti di networking che interagiscono con la rete Kubernetes.

Prima di leggere questa pagina, assicurati di conoscere quanto segue:

Panoramica

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

Funzionalità e vantaggi

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

  • Bilanciamento del carico ottimizzato per l'inferenza: distribuisce le richieste per ottimizzare le prestazioni di pubblicazione del modello di IA. Utilizza le metriche dei server di modelli, come KVCache Utilization e queue length of pending requests, per utilizzare gli acceleratori (come GPU e TPU) in modo più efficiente per i carichi di lavoro di IA generativa.
  • Pubblicazione di modelli LoRA ottimizzati dinamicamente: supporta la pubblicazione di modelli LoRA ottimizzati dinamicamente su un acceleratore comune. In questo modo, si riduce il numero di GPU e TPU necessarie per pubblicare i modelli mediante il multiplexing di più modelli LoRA ottimizzati su un modello di base e un acceleratore comuni.
  • Scalabilità automatica ottimizzata per l'inferenza: l'agente di scalabilità automatica dei pod orizzontali (HPA) di GKE utilizza le metriche del server di modelli per la scalabilità automatica, il che contribuisce a garantire un utilizzo efficiente delle risorse di calcolo e prestazioni di inferenza ottimizzate.
  • Routing basato sui modelli: inoltra le richieste di inferenza in base ai nomi dei modelli definiti nelle OpenAI API specifiche all'interno del cluster GKE. Puoi definire criteri di routing di Gateway, come la suddivisione del traffico e il mirroring delle richieste, per gestire versioni diverse del modello e semplificare le implementazioni. Ad esempio, puoi indirizzare le richieste per un nome modello specifico a diversi oggetti InferencePool, ognuno dei quali serve una versione diversa del modello.
  • Pubblicazione specifica per modello Criticality: consente di specificare la pubblicazione Criticality di modelli di IA. 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 di applicazioni sensibili alla latenza e ignorare le attività meno sensibili al fattore tempo quando le risorse sono limitate.
  • Sicurezza dell'IA integrata: si integra con Google Cloud Model Armor, un servizio che applica controlli di sicurezza dell'IA a prompt e risposte al gateway. Model Armor fornisce log di richieste, risposte e lavorazione per analisi e ottimizzazione retrospettive. Le interfacce aperte di GKE Inference Gateway consentono a fornitori e sviluppatori di terze parti di integrare servizi personalizzati nella procedura di richiesta di inferenza.
  • Osservabilità dell'inferenza: fornisce metriche di osservabilità per le richieste di inferenza, come frequenza di richiesta, latenza, errori e saturazione. Monitora le prestazioni e il comportamento dei tuoi servizi di inferenza.

Comprendere i concetti chiave

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

  • Oggetto InferencePool: rappresenta un gruppo di pod (contenitori) che condividono la stessa configurazione di calcolo, lo stesso tipo di acceleratore, lo stesso modello linguistico di base e lo stesso server di modelli. In questo modo, raggruppi e gestisci in modo logico le risorse di pubblicazione del tuo modello di IA. Un singolo oggetto InferencePool può includere più pod su diversi nodi GKE e offre scalabilità e alta disponibilità.
  • Oggetto InferenceModel: specifica il nome del modello di pubblicazione da InferencePool in base alla specifica OpenAI API. L'oggetto InferenceModel specifica anche le proprietà di pubblicazione del modello, come Criticality del modello di IA. GKE Inference Gateway dà la preferenza ai workload classificati come Critical. In questo modo puoi eseguire il multiplexing dei carichi di lavoro di IA con latenza critica e tollerante alla latenza su un cluster GKE. Puoi anche configurare l'oggetto InferenceModel per pubblicare modelli LoRa ottimizzati.
  • Oggetto TargetModel: specifica il nome del modello di destinazione e l'oggetto InferencePool che lo pubblica. In questo modo puoi definire criteri di routing del gateway, come la suddivisione del traffico e il mirroring delle richieste, e semplificare le implementazioni delle versioni del modello.

Il seguente diagramma illustra GKE Inference Gateway e la sua integrazione con la sicurezza, l'osservabilità e il servizio dei modelli di IA all'interno di un cluster GKE.

La relazione tra gli oggetti "InferencePool" e "InferenceModel" di GKE Inference Gateway
Figura: modello di risorsa di GKE Inference Gateway

Il seguente diagramma illustra il modello di risorse incentrato su due nuovi percorsi incentrati sull'inferenza e sulle risorse che gestiscono.

Il modello di risorse per i profili incentrati sull'inferenza e le relative risorse
Figura: modello di risorsa di GKE Inference Gateway

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 IA. I passaggi seguenti descrivono il flusso di richieste.

Come funziona il flusso di richieste

GKE Inference Gateway instrada le richieste del 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 cliente 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 in base al percorso dell'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 filtri dei contenuti, rilevamento delle minacce, sanificazione e registrazione. L'estensione di sicurezza applica questi criteri sia ai percorsi di elaborazione delle richieste sia a quelli delle risposte. In questo modo, l'estensione di sicurezza può pulire e registrare sia le richieste che le risposte.
    3. Estensione di selezione degli endpoint: monitora le metriche chiave dei server dei modelli all'interno del InferencePool. Monitora l'utilizzo della cache chiave/valore (KV-cache), la lunghezza della coda delle richieste in attesa e gli adattatori LoRa attivi su ogni server modello. Quindi inoltra la richiesta alla replica del modello ottimale in base a queste metriche per ridurre al minimo la latenza e massimizzare il throughput per l'inferenza AI.
  3. GKE Inference Gateway instrada 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 di 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 di GKE Inference Gateway

Come funziona la distribuzione del traffico

GKE Inference Gateway distribuisce dinamicamente le richieste di inferenza ai server di modelli all'interno dell'oggetto InferencePool. In questo modo, è possibile 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.

  • Coda e scarico: gestisce il flusso delle richieste e impedisce il sovraccarico del traffico. GKE Inference Gateway memorizza le richieste in arrivo in una coda, dà la priorità alle richieste in base a criteri definiti e le elimina quando il sistema è sovraccaricato.

GKE Inference Gateway supporta i seguenti livelli di Criticality:

  • Critical: a questi carichi di lavoro viene assegnata la priorità. Il sistema garantisce che queste richieste vengano soddisfatte anche in caso di vincoli di risorse.
  • Standard: questi carichi di lavoro vengono eseguiti quando le risorse sono disponibili. Se le risorse sono limitate, queste richieste vengono ignorate.
  • Sheddable: questi workload vengono eseguiti in modo opportunistico. Se le risorse sono scarse, queste richieste vengono ignorate per proteggere i carichi di lavoro Critical.

Quando il sistema è sotto pressione per le risorse, le richieste Standard e Sheddable vengono abbandonate immediatamente con un codice di errore 429 per salvaguardare i workload Critical.

Inferenza dei flussi di dati

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

Esplora gli esempi di applicazione

Questa sezione fornisce esempi per affrontare vari scenari di applicazione dell'IA generativa utilizzando GKE Inference Gateway.

Esempio 1: pubblica più modelli di IA generativa su un cluster GKE

Un'azienda vuole implementare più modelli linguistici di grandi dimensioni (LLM) per gestire carichi di lavoro diversi. Ad esempio, potrebbe voler implementare un modello Gemma3 per un'interfaccia di chatbot e un modello Deepseek per un'applicazione di consigli. L'azienda deve garantire un rendimento ottimale della pubblicazione per questi LLM.

Con GKE Inference Gateway, puoi eseguire il deployment di questi modelli LLM sul tuo cluster GKE con la configurazione dell'acceleratore scelta in un InferencePool. Puoi quindi instradare le richieste in base al nome del modello (ad es.chatbot e recommender) e alla proprietà Criticality.

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

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

Esempio 2: pubblicare adattatori LoRa su un acceleratore condiviso

Un'azienda vuole pubblicare 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à delle GPU e delle TPU. Puoi utilizzare GKE Inference Gateway per eseguire il deployment di adattatori LoRA ottimizzati dinamicamente per ogni lingua (ad es. english-bot e spanish-bot) su un modello di base comune (ad es. llm-base) e su un acceleratore. In questo modo puoi ridurre il numero di acceleratori necessari raggruppando più modelli su un acceleratore comune.

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

Pubblicazione di più adattatori LoRa su un acceleratore condiviso
Figura: pubblicazione di adattatori LoRA su un acceleratore condiviso

Passaggi successivi