Questo documento è la prima parte di una serie destinata agli ingegneri di machine learning (ML) che non hanno mai utilizzato Google Kubernetes Engine (GKE) e che vogliono iniziare a eseguire workload di inferenza su GKE il più rapidamente possibile.
In questa serie, non cercheremo di insegnarti tutte le opzioni GKE disponibili. Ti forniamo invece le informazioni di base che devi conoscere per eseguire i tuoi carichi di lavoro su GKE. Questa serie include i seguenti documenti:
- Perché utilizzare GKE per l'inferenza AI/ML (questo documento)
- Informazioni sull'inferenza del modello AI/ML su GKE
- Concetti di scalabilità automatica semplificati per i workload AI/ML in GKE
In qualità di ingegnere della piattaforma AI/ML, puoi utilizzare GKE per gestire i deployment dei modelli. GKE è un servizio che ti consente di automatizzare il deployment, lo scaling e il monitoraggio dei tuoi workload di inferenza basati su Kubernetes e dell'infrastruttura di computing su cui vengono eseguiti i tuoi workload. Questo documento illustra alcuni dei principali vantaggi dell'utilizzo di GKE per l'inferenza dei modelli, tra cui:
- Prestazioni coerenti delle applicazioni
- Accesso semplificato a hardware di inferenza specializzato
- Scalabilità automatica dei carichi di lavoro di inferenza
- Monitoraggio e logging automatici delle prestazioni e dell'integrità del workload
- Portabilità e flessibilità dell'utilizzo di standard aperti e tecnologie open source
Prima di iniziare
Prima di leggere questo documento, devi avere familiarità con quanto segue:
- Concetti fondamentali di Kubernetes: scopri di più su container, pod, nodi e cluster e sul loro rapporto reciproco.
- Modalità operative di GKE: scopri i cluster GKE Autopilot e Standard, i loro utilizzi e le loro differenze.
Pacchettizzare i modelli per prestazioni coerenti
L'inferenza del modello coerente e affidabile è fondamentale per la tua applicazione AI e GKE può ridurre la complessità operativa della gestione dell'inferenza su larga scala. Se pacchettizzi il modello addestrato, il server di inferenza e tutte le dipendenze in un container, crei un artefatto standardizzato e portabile che viene eseguito su GKE. La containerizzazione contribuisce a ridurre gli errori causati da dipendenze non corrispondenti o da ambienti incoerenti. GKE esegue automaticamente il deployment e la gestione di questi container. Gestisce attività come il riavvio dei workload che vanno in arresto anomalo o il riprovisioning delle risorse per contribuire a stabilizzare le prestazioni dei tuoi workload di AI/ML.
Utilizzare GPU e TPU per ridurre la latenza di pubblicazione
La latenza è un problema per i carichi di lavoro di inferenza e alcuni modelli complessi si basano su acceleratori hardware come GPU e TPU per accelerare la gestione dell'inferenza. GKE semplifica il processo di utilizzo di GPU o TPU per i tuoi carichi di lavoro di inferenza sensibili alla latenza semplificando il provisioning e la gestione dell'hardware. Scegli le configurazioni hardware specifiche più adatte ai tuoi requisiti di prestazioni e costi e GKE provisiona automaticamente i nodi con l'hardware selezionato per eseguire i tuoi carichi di lavoro. GKE automatizza anche i passaggi di configurazione che in genere richiedono la configurazione manuale in Kubernetes, come l'installazione dei driver NVIDIA. Per un controllo più granulare della configurazione dei nodi, puoi utilizzare ComputeClass personalizzate per creare profili hardware specifici e riutilizzabili che GKE utilizza durante il provisioning dei nodi.
GKE offre anche funzionalità di gestione delle risorse per consentirti di utilizzare in modo più efficiente le risorse TPU e GPU per la pubblicazione di inferenze. Ad esempio, puoi migliorare l'utilizzo della GPU ospitando più modelli su un singolo server GPU utilizzando la condivisione della GPU o ridurre i costi per i job di inferenza a tolleranza di errore eseguendoli su VM spot con acceleratori. Per i workload di piccole e medie dimensioni con requisiti di domanda fluttuanti o di breve durata, puoi utilizzare Flex-start, che fornisce una tecnica flessibile ed economicamente vantaggiosa per utilizzare risorse di calcolo specializzate, come GPU o TPU. Queste funzionalità ti aiutano a massimizzare l'utilizzo delle risorse dell'acceleratore, ottimizzando al contempo la latenza di pubblicazione e i costi.
Gestire automaticamente i pattern di traffico fluttuanti
Il traffico e il carico sui carichi di lavoro di inferenza in tempo reale possono essere imprevedibili e dinamici. Un picco di domanda potrebbe comportare un aumento della latenza e una riduzione delle prestazioni. GKE offre un approccio multilivello alla scalabilità automatica in modo da poter aggiungere o rimuovere automaticamente le risorse per soddisfare la domanda variabile di inferenza. Ad esempio, puoi utilizzare Horizontal Pod Autoscaler (HPA) per regolare automaticamente il numero di pod in un deployment oppure il gestore della scalabilità automatica dei cluster per regolare automaticamente il numero di nodi in un pool di nodi esistente. Utilizzando le funzionalità di scalabilità automatica di GKE, puoi abbinare in modo efficiente la quantità di risorse necessarie per il tuo carico di lavoro di inferenza alla quantità di domanda dell'applicazione.
Monitora l'integrità e le prestazioni del tuo workload di inferenza
GKE è integrato con la Google Cloud suite di osservabilità (Cloud Logging e Cloud Monitoring) e puoi utilizzare le funzionalità di osservabilità integrate per monitorare l'integrità e le prestazioni dei carichi di lavoro di inferenza. Queste funzionalità di osservabilità ti offrono informazioni e visibilità sul rendimento del tuo workload dopo il deployment. Ad esempio, potresti chiederti se il modello funziona come previsto o se il carico di lavoro soddisfa i requisiti di latenza e accuratezza.
GKE genera automaticamente report sulle metriche dell'infrastruttura, come l'utilizzo di CPU, memoria e acceleratore. Per rispondere a domande sulle prestazioni specifiche del modello, puoi utilizzare Google Cloud Managed Service per Prometheus o inviare metriche personalizzate dalla tua applicazione di inferenza a Cloud Monitoring. Ad esempio, puoi configurare il monitoraggio automatico delle applicazioni e monitorare le metriche di inferenza chiave, come le richieste al secondo (RPS); monitorare il concept drift analizzando le metriche specifiche del modello, come la distribuzione dei dati di input; e risolvere i problemi eseguendo l'analisi dei log storici.
Utilizzare GKE per la portabilità e la flessibilità
Utilizzando standard aperti come i container e tecnologie open source come Kubernetes, GKE ti offre la libertà di spostare i carichi di lavoro di servizio di inferenza in posizioni diverse e utilizzare risorse e strumenti diversi man mano che i tuoi requisiti cambiano. Ad esempio, puoi sviluppare e testare l'applicazione di inferenza su GKE e poi eseguire il deployment della stessa applicazione containerizzata nel tuo ambiente on-premise per la produzione.
In conclusione, puoi utilizzare GKE per semplificare il modo in cui sposti i tuoi modelli AI/ML dallo sviluppo alla produzione. GKE gestisce molte complessità coinvolte nella gestione dell'infrastruttura, il che significa che puoi concentrarti sull'esecuzione dei tuoi carichi di lavoro di inferenza in un ambiente performante, scalabile e osservabile. Nel corso di questa serie, imparerai a utilizzare GKE per trasformare i tuoi modelli di AI/ML in applicazioni potenti e pronte per la produzione.
Passaggi successivi
- Informazioni sull'inferenza dei modelli AI/ML su GKE (il documento successivo di questa serie)
- Scopri le best practice per l'esecuzione di workload di inferenza su GKE
- Scopri come gestire un modello con una singola GPU in GKE
- Scopri come gestire LLM aperti su GKE con un'architettura preconfigurata
- Scopri come gestire LLM aperti su GKE utilizzando le TPU con un'architettura preconfigurata