La gestione dell'inferenza è fondamentale per il deployment dei modelli di AI generativa nelle applicazioni del mondo reale. GKE fornisce una piattaforma robusta e scalabile per la gestione dei carichi di lavoro containerizzati, il che lo rende una scelta interessante per la gestione dei modelli in fase di sviluppo o produzione. Con GKE, puoi utilizzare le funzionalità di orchestrazione, scalabilità e alta affidabilità di Kubernetes per eseguire il deployment e gestire in modo efficiente i servizi di inferenza.
Riconoscendo le esigenze specifiche dell'inferenza AI/ML, Google Cloud ha introdotto le funzionalità di AI generativa di GKE—una suite di funzionalità progettate specificamente per migliorare e ottimizzare la gestione dell'inferenza su GKE. Per saperne di più sulle funzionalità specifiche, consulta Funzionalità di AI generativa di GKE.
Inizia a utilizzare l'inferenza dei modelli di AI/ML su GKE
Puoi iniziare a esplorare l'inferenza dei modelli di AI/ML su GKE in pochi minuti. Puoi utilizzare il livello senza costi di GKE, che ti consente di iniziare a utilizzare Kubernetes senza incorrere in costi per la gestione del cluster.
- Prova i passaggi di Esegui il deployment dei modelli per eseguire il deployment di un modello containerizzato e di un server di modelli.
- Leggi la panoramica delle best practice per l'inferenza su GKE, che contiene indicazioni e risorse per la pianificazione e l'esecuzione dei carichi di lavoro di inferenza su GKE.
Terminologia
Questa pagina utilizza la seguente terminologia relativa all'inferenza su GKE:
- Inferenza: il processo di esecuzione di un modello di AI generativa, come un modello linguistico di grandi dimensioni o un modello di diffusione, all'interno di un cluster GKE per generare testo, embedding o altri output dai dati di input. L'inferenza dei modelli su GKE sfrutta gli acceleratori per gestire in modo efficiente calcoli complessi per l'elaborazione in tempo reale o batch.
- Modello: un modello di AI generativa che ha appreso pattern dai dati e viene utilizzato per l'inferenza. I modelli variano in termini di dimensioni e architettura, dai modelli più piccoli specifici per il dominio alle enormi reti neurali con miliardi di parametri ottimizzate per diverse attività linguistiche.
- Server di modelli: un servizio containerizzato responsabile della ricezione delle richieste di inferenza e della restituzione delle inferenze. Questo servizio potrebbe essere un'app Python o una soluzione più robusta come vLLM, JetStream, TensorFlow Serving o Triton Inference Server. Il server di modelli gestisce il caricamento dei modelli in memoria ed esegue i calcoli sugli acceleratori per restituire le inferenze in modo efficiente.
- Acceleratore: hardware specializzato, come le unità di elaborazione grafica (GPU) di NVIDIA e le unità di elaborazione tensoriale (TPU) di Google, che possono essere collegate ai nodi GKE per velocizzare i calcoli, in particolare per le attività di addestramento e inferenza.
- Quantizzazione: una tecnica utilizzata per ridurre le dimensioni dei modelli di AI/ML e migliorare la velocità di inferenza convertendo i pesi e le attivazioni dei modelli da tipi di dati a maggiore precisione a tipi di dati a precisione inferiore.
Vantaggi di GKE per l'inferenza
La gestione dell'inferenza su GKE offre diversi vantaggi:
- Rapporto prezzo/prestazioni efficiente:ottieni valore e velocità per le tue esigenze di gestione dell'inferenza. GKE ti consente di scegliere tra una serie di acceleratori potenti (GPU e TPU), in modo da pagare solo per le prestazioni di cui hai bisogno.
- Deployment più rapido: accelera il time-to-market con best practice, qualifiche e best practice personalizzate fornite da funzionalità di AI generativa di GKE.
- Prestazioni scalabili: fare lo scale out delle prestazioni con il monitoraggio predefinito utilizzando GKE Inference Gateway, la scalabilità automatica orizzontale dei pod (HPA) e le metriche personalizzate. Puoi eseguire una serie di modelli preaddestrati o personalizzati, da 8 miliardi di parametri fino a 671 miliardi di parametri.
- Portabilità completa: usufruisci della portabilità completa con gli standard aperti. Google contribuisce alle API Kubernetes chiave, tra cui Gateway e LeaderWorkerSet, e tutte le API sono portatili con le distribuzioni Kubernetes.
- Supporto dell'ecosistema: basati sul robusto ecosistema di GKE che supporta strumenti come Kueue per la gestione e la messa in coda avanzate delle risorse e Ray per il computing distribuito, per facilitare l'addestramento e l'inferenza dei modelli scalabili ed efficienti.
Come funziona l'inferenza su GKE
Questa sezione descrive, a livello generale, i passaggi per utilizzare GKE per la gestione dell'inferenza:
Containerizza il modello: containerizzare un'applicazione significa creare un'immagine container, ovvero un pacchetto eseguibile che include tutto il necessario per eseguire l'applicazione: codice, runtime, strumenti di sistema, librerie di sistema e impostazioni. Un'applicazione semplice può essere containerizzata come singola unità, mentre un'applicazione più complessa può essere suddivisa in più componenti containerizzati. Esegui il deployment di un modello containerizzando il server di modelli (ad esempio vLLM) e caricando i pesi del modello da Cloud Storage o da un repository come Hugging Face. Quando utilizzi GKE Inference Quickstart, l'immagine containerizzata viene gestita automaticamente nel manifest.
Crea un cluster GKE: crea un cluster GKE per ospitare il deployment. Scegli Autopilot per un'esperienza gestita o Standard per la personalizzazione. Configura le dimensioni del cluster, i tipi di nodi e gli acceleratori. Per una configurazione ottimizzata, utilizza Inference Quickstart.
Esegui il deployment del modello come deployment Kubernetes: crea un deployment Kubernetes per gestire il servizio di inferenza. Un deployment è un oggetto API Kubernetes che consente di eseguire più repliche di pod distribuiti tra i nodi di un cluster. Specifica l'immagine Docker, le repliche e le impostazioni. Kubernetes estrae l'immagine ed esegue i container sui nodi del cluster GKE. Configura i pod con il tuo server di modelli e il modello, inclusi gli adattatori LoRA, se necessario.
Espone il servizio di inferenza: rendi accessibile il servizio di inferenza creando un servizio Kubernetes per fornire un endpoint di rete per il deployment. Utilizza Inference Gateway per il bilanciamento del carico e il routing intelligenti appositamente progettati per i carichi di lavoro di inferenza di AI generativa oppure consulta il confronto tra le strategie di bilanciamento del carico per scegliere l'opzione migliore per le tue esigenze.
Gestisci le richieste di inferenza: invia i dati dai client dell'applicazione all'endpoint del servizio, nel formato previsto (JSON, gRPC). Se utilizzi un bilanciatore del carico, questo distribuisce le richieste alle repliche del modello. Il server di modelli elabora la richiesta, esegue il modello e restituisce l'inferenza.
Scala e monitora il deployment dell'inferenza: scala l'inferenza con HPA per regolare automaticamente le repliche in base alla CPU o alla latenza. Horizontal Pod Autoscaler (HPA) è un controller Kubernetes che aumenta o diminuisce automaticamente il numero di pod in un carico di lavoro (ad esempio un deployment) in base alle metriche osservate, come l'utilizzo della CPU o le metriche personalizzate. Utilizza Inference Quickstart per ricevere consigli di scalabilità generati automaticamente. Per monitorare le prestazioni, utilizza Cloud Monitoring e Cloud Logging con l'osservabilità predefinita, inclusi i dashboard per i server di modelli più diffusi come vLLM.
Per esempi dettagliati che utilizzano modelli, server di modelli e acceleratori specifici, consulta Esempi di inferenza.
Funzionalità di AI generativa di GKE
Puoi utilizzare queste funzionalità insieme o singolarmente per risolvere le sfide principali nella gestione dei modelli di AI generativa e migliorare l'utilizzo delle risorse nel tuo ambiente GKE, senza costi aggiuntivi.
| Nome | Descrizione | Vantaggi |
|---|---|---|
| GKE Inference Quickstart |
Analizza le prestazioni e l'efficienza in termini di costi dei carichi di lavoro di inferenza. Specifica le tue esigenze aziendali e ricevi best practice personalizzate per la combinazione di acceleratori, configurazioni di scalabilità e archiviazione e server di modelli più adatti alle tue esigenze. Puoi accedere a questo servizio con il gcloud CLI e Google Cloud console. Per saperne di più, consulta Analizzare le prestazioni e i costi dell'erogazione del modello con la guida rapida all'inferenza di GKE. |
|
| GKE Inference Gateway | Ottieni il routing in base alle metriche, come l'utilizzo della cache KV, per una latenza migliore. Per saperne di più, consulta Informazioni su GKE Inference Gateway. |
|
| Acceleratori di caricamento dei pesi dei modelli | Accedi rapidamente ai dati in Cloud Storage utilizzando Cloud Storage FUSE con la memorizzazione nella cache e i download paralleli. Per saperne di più sull'utilizzo di Cloud Storage FUSE per i carichi di lavoro di AI/ML, consulta l'architettura di riferimento. Google Cloud Managed Lustre è un file system parallelo ad alte prestazioni e completamente gestito ottimizzato per l'AI che può essere collegato a 10.000 o più pod. Per saperne di più sull'utilizzo di Managed Lustre per i carichi di lavoro di AI/ML, consulta l'architettura di riferimento. Google Cloud Hyperdisk ML è un disco collegato alla rete che può essere collegato a un massimo di 2500 pod. |
|
Metriche sul rendimento dell'inferenza
Per ottimizzare i carichi di lavoro di inferenza, è importante capire come misurarne il rendimento. La tabella seguente descrive le metriche chiave per il benchmarking del rendimento dell'inferenza su GKE.
| Indicatori di benchmark | Metrica (unità) | Descrizione |
|---|---|---|
| Latenza | Tempo al primo token (TTFT) (ms) | Il tempo necessario per generare il primo token per una richiesta. |
| Tempo normalizzato per token di output (NTPOT) (ms) | Latenza della richiesta normalizzata in base al numero di token di output, misurata come request_latency / total_output_tokens. |
|
| Tempo per token di output (TPOT) (ms) | Il tempo necessario per generare un token di output, misurato come (request_latency - time_to_first_token) / (total_output_tokens - 1). |
|
| Latenza tra i token (ITL) (ms) | Misura la latenza tra due generazioni di token di output. A differenza di TPOT, che misura la latenza dell'intera richiesta, ITL misura il tempo necessario per generare ogni singolo token di output. Queste singole misurazioni vengono poi aggregate per produrre valori medi, mediani e percentili come p90. | |
| Latenza della richiesta (ms) | Tempo end-to-end per completare una richiesta. | |
| Velocità effettiva | Richieste al secondo | Il numero totale di richieste che gestisci al secondo. Tieni presente che questa metrica potrebbe non essere un modo affidabile per misurare la velocità effettiva degli LLM perché può variare notevolmente per diverse lunghezze di contesto. |
| Token di output al secondo | Una metrica comune misurata come total_output_tokens_generated_by_server / elapsed_time_in_seconds. |
|
| Token di input al secondo | Misurata come total_input_tokens_generated_by_server / elapsed_time_in_seconds. |
|
| Token al secondo | Misurata come total_tokens_generated_by_server / elapsed_time_in_seconds. Questa metrica conta sia i token di input che quelli di output, aiutandoti a confrontare i carichi di lavoro con tempi di precompilazione elevati rispetto a tempi di decodifica elevati. |
Pianificazione dell'inferenza
Un deployment di inferenza riuscito richiede una pianificazione accurata in diverse aree chiave, tra cui efficienza in termini di costi, prestazioni e disponibilità delle risorse. Per consigli dettagliati su come creare una piattaforma di inferenza scalabile, performante ed economica, consulta Panoramica delle best practice per l'inferenza su GKE.
Prova gli esempi di inferenza
Trova esempi di deployment GKE per modelli di AI generativa, acceleratori e server di modelli. Se hai appena iniziato, ti consigliamo di esplorare il tutorial Gestisci i modelli aperti Gemma utilizzando le GPU su GKE con vLLM.
In alternativa, cerca un tutorial per parola chiave:
| Acceleratore | Server di modelli | Tutorial |
|---|---|---|
| GPU | vLLM | Eroga LLM come DeepSeek-R1 671B o Llama 3.1 405B su GKE |
| GPU | vLLM | Erogare modelli aperti Gemma utilizzando le GPU su GKE con vLLM |
| GPU | vLLM | Erogare un LLM con GKE Inference Gateway |
| GPU | vLLM | Erogare LLM aperti su GKE con un'architettura preconfigurata |
| GPU | Ray Serve | Erogare un LLM su GPU L4 con Ray |
| GPU | TGI | Erogare un LLM con più GPU in GKE |
| GPU | TorchServe | Erogare T5 su GKE con TorchServe |
| TPU | vLLM | Erogare un LLM utilizzando TPU Trillium su GKE con vLLM |
| TPU | vLLM | Erogare un LLM utilizzando le TPU su GKE con KubeRay |
| TPU | MaxDiffusion | Erogare Stable Diffusion XL (SDXL) utilizzando le TPU su GKE con MaxDiffusion |
| TPU | vLLM | Erogare LLM utilizzando le TPU multi-host su GKE con JetStream e Pathways |
| TPU | vLLM | Eroga LLM aperti su TPU con un'architettura preconfigurata |
Passaggi successivi
- Visita il portale di orchestrazione AI/ML su GKE per esplorare le nostre guide ufficiali, i tutorial e i casi d'uso per l'esecuzione dei carichi di lavoro di AI/ML su GKE.
- Esplora gli esempi sperimentali per sfruttare GKE per accelerare le tue iniziative di AI/ML in GKE AI Labs.