Questo documento è la prima parte di una serie destinata agli ingegneri di machine learning (ML) che non hanno familiarità con Google Kubernetes Engine (GKE) e vogliono iniziare a eseguire i workload di inferenza su GKE il prima possibile.
In questa serie non tenteremo di insegnarti tutte le opzioni GKE disponibili. Ti forniremo invece le informazioni di base che devi conoscere per eseguire i tuoi workload su GKE. Questa serie include i seguenti documenti:
- Perché utilizzare GKE per l'inferenza AI/ML (questo documento)
- Informazioni sull'inferenza dei modelli 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, la scalabilità e il monitoraggio dei tuoi workload di inferenza basati su Kubernetes e dell'infrastruttura di computing su cui vengono eseguiti i 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 all'hardware di inferenza specializzato
- Scalabilità automatica dei workload di inferenza
- Monitoraggio e logging automatici delle prestazioni e dell'integrità dei 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 sulla loro relazione.
- Modalità operative di GKE: scopri di più sui cluster GKE Autopilot e Standard , sui loro utilizzi e sulle loro differenze.
Pacchettizzare i modelli per prestazioni coerenti
L'inferenza dei modelli coerente e affidabile è fondamentale per la tua applicazione AI e GKE può ridurre la complessità operativa della gestione dell'inferenza su larga scala. Pacchettizzando il modello addestrato, il server di inferenza e tutte le dipendenze in un container, crei un artefatto standardizzato e portatile 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 in arresto anomalo o il riprovisioning delle risorse per contribuire a stabilizzare le prestazioni dei workload AI/ML.
Utilizzare GPU e TPU per ridurre la latenza di gestione
La latenza è un problema per i workload 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 workload 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 esegue automaticamente il provisioning dei nodi con l'hardware selezionato per eseguire i workload. GKE automatizza anche i passaggi di configurazione che in genere richiedono la configurazione manuale in Kubernetes, ad esempio 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 quando esegue 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 gestione dell'inferenza. Ad esempio, puoi migliorare l'utilizzo della GPU ospitando più modelli su un singolo server GPU utilizzando la condivisione della GPU, oppure 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 avvio flessibile, 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 sia la latenza di gestione sia i costi.
Gestire automaticamente i pattern di traffico fluttuanti
Il traffico e il carico sui workload 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 per consentirti di aggiungere o rimuovere automaticamente le risorse per soddisfare la domanda di inferenza variabile. Ad esempio, puoi utilizzare Horizontal Pod Autoscaler (HPA) per regolare automaticamente il numero di pod in un deployment o 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 workload di inferenza alla quantità di domanda dell'applicazione.
Monitorare l'integrità e le prestazioni del 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 workload di inferenza. Queste funzionalità di osservabilità ti forniscono informazioni e visibilità sul rendimento del tuo workload dopo il deployment. Ad esempio, potresti chiederti se il modello funziona come previsto o se il workload soddisfa i requisiti di latenza e accuratezza.
GKE segnala automaticamente le metriche dell'infrastruttura, come l'utilizzo di CPU, memoria e acceleratore. Per rispondere alle 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 la deriva dei concetti 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 workload di gestione dell'inferenza in posizioni diverse e di utilizzare risorse e strumenti diversi man mano che cambiano i tuoi requisiti. 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 la migrazione dei 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 workload di inferenza in un ambiente performante, scalabile e osservabile. Man mano che procedi con questa serie, imparerai come utilizzare GKE per trasformare i tuoi modelli 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 erogare un modello con una singola GPU in GKE
- Scopri come erogare LLM aperti su GKE con un'architettura preconfigurata
- Scopri come erogare LLM aperti su GKE utilizzando TPU con un'architettura preconfigurata