Questa pagina descrive come utilizzare la guida rapida all'inferenza GKE per semplificare il deployment dei workload di inferenza AI/ML su Google Kubernetes Engine (GKE). Inference Quickstart è un'utilità che ti consente di specificare i requisiti aziendali di inferenza e di ottenere configurazioni Kubernetes ottimizzate in base alle best practice e ai benchmark di Google per modelli, server di modelli, acceleratori (GPU, TPU) e scalabilità. In questo modo, eviterai la procedura di regolazione e test manuale delle configurazioni, che richiede molto tempo.
Questa pagina è rivolta a data engineer, amministratori e operatori della piattaforma e a specialisti di dati e IA che vogliono capire come gestire e ottimizzare in modo efficiente GKE per l'inferenza AI/ML. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei Google Cloud contenuti, consulta Ruoli e attività utente comuni di GKE Enterprise.
Per scoprire di più sui concetti e sulla terminologia di pubblicazione dei modelli e su come le funzionalità di IA generativa di GKE possono migliorare e supportare le prestazioni di pubblicazione dei modelli, consulta Informazioni sull'inferenza del modello su GKE.
Prima di leggere questa pagina, assicurati di conoscere Kubernetes, GKE e pubblicazione di modelli.
Utilizzare la guida rapida all'inferenza
I passaggi di alto livello per utilizzare la guida rapida all'inferenza sono i seguenti. Fai clic sui link per istruzioni dettagliate.
- Visualizza le best practice personalizzate: utilizzando Google Cloud CLI nel terminale, inizia fornendo input come il tuo modello aperto preferito (ad esempio Llama, Gemma o Mistral).
- Puoi specificare il target di latenza dell'applicazione, indicando se è sensibile alla latenza (come un chatbot) o al throughput (come l'analisi batch).
- In base ai tuoi requisiti, Inference Quickstart fornisce scelte di acceleratori, metriche sul rendimento e manifest Kubernetes, che ti offrono il pieno controllo per il deployment o ulteriori modifiche. I manifest generati fanno riferimento alle immagini dei server di modelli pubblici, quindi non devi creare queste immagini autonomamente.
- Esegui il deployment dei manifest: utilizzando il comando
kubectl apply
, esegui il deployment dei manifest consigliati dalla riga di comando. Prima di eseguire il deployment, devi assicurarti di disporre di una quota di acceleratori sufficiente per le GPU o le TPU selezionate nel tuo progetto. Google Cloud - Monitora le prestazioni: utilizza Cloud Monitoring per monitorare le metriche di GKE per il monitoraggio delle prestazioni dei carichi di lavoro. Puoi visualizzare dashboard specifiche per il server di modelli e perfezionare il deployment in base alle esigenze.
Vantaggi
La guida rapida all'inferenza ti aiuta a risparmiare tempo e risorse fornendo configurazioni ottimizzate. Queste ottimizzazioni migliorano le prestazioni e riducono i costi dell'infrastruttura nei seguenti modi:
- Riceverai best practice personalizzate dettagliate per l'impostazione di acceleratori (GPU e TPU), server di modelli e configurazioni di scalabilità. GKE aggiorna regolarmente lo strumento con le correzioni, le immagini e i benchmark sul rendimento più recenti.
- Puoi specificare i requisiti di latenza e throughput del tuo carico di lavoro da un'interfaccia a riga di comando e ottenere best practice personalizzate dettagliate come manifest di deployment di Kubernetes.
Casi d'uso
La guida rapida all'inferenza è adatta per scenari come i seguenti:
- Scopri le architetture di inferenza GKE ottimali: se stai per eseguire la transizione da un altro ambiente, ad esempio on-premise o un altro provider cloud, e vuoi le architetture di inferenza consigliate più aggiornate su GKE per le tue specifiche esigenze di prestazioni.
- Velocizza i deployment di inferenza AI/ML: se sei un utente Kubernetes esperto e vuoi iniziare rapidamente a eseguire il deployment di workload di inferenza AI, la guida rapida all'inferenza ti aiuta a scoprire e implementare i deployment delle best practice su GKE, con configurazioni YAML dettagliate basate sulle best practice.
- Esplora le TPU per prestazioni migliorate: se utilizzi già Kubernetes su GKE con GPU, puoi utilizzare la guida rapida all'inferenza per scoprire i vantaggi dell'utilizzo delle TPU per ottenere potenzialmente prestazioni migliori.
Come funziona
La guida rapida all'inferenza fornisce best practice personalizzate in base ai benchmark interni esaustivi di Google sulle prestazioni di una singola replica per combinazioni di modelli, server di modelli e topologia dell'acceleratore. Questi benchmark mostrano la latenza rispetto al throughput, incluse le metriche relative alle dimensioni della coda e alla cache KV, che mappano le curve di rendimento per ogni combinazione.
Come vengono generate le best practice personalizzate
Misuriamo la latenza in tempo normalizzato per token di output (NTPOT) in millisecondi e la velocità effettiva in token di output al secondo, saturando gli acceleratori. Per scoprire di più su queste metriche sul rendimento, consulta Informazioni sull'inferenza del modello su GKE.
Il seguente profilo di latenza di esempio illustra il punto di inflessione in cui il throughput si stabilizza (verde), il punto post-inflessione in cui la latenza peggiora (rosso) e la zona ideale (blu) per un throughput ottimale al target di latenza. La guida introduttiva all'inferenza fornisce configurazioni e dati sulle prestazioni per questa zona ideale.
In base ai requisiti di latenza di un'applicazione di inferenza, la guida rapida all'inferenza identifica le combinazioni adatte e determina il punto di funzionamento ottimale sulla curva di latenza-throughput. Questo punto imposta la soglia di Horizontal Pod Autoscaler (HPA), con un buffer per tenere conto della latenza di scalabilità. La soglia complessiva indica anche il numero iniziale di repliche necessarie, anche se l'HPA regola dinamicamente questo numero in base al carico di lavoro.
Benchmarking
Le configurazioni e i dati sul rendimento forniti si basano su benchmark che utilizzano il set di dati ShareGPT per inviare traffico con la seguente distribuzione di input e output.
Token di input | Token di output | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Min | Mediana | Media | P90 | P99 | Max | Min | Mediana | Media | P90 | P99 | Max |
4 | 108 | 226 | 635 | 887 | 1024 | 1 | 132 | 195 | 488 | 778 | 1024 |
Per eseguire autonomamente il benchmark, segui le istruzioni riportate in AI-Hypercomputer/inference-benchmark. Forniamo diverse opzioni che puoi utilizzare durante il benchmarking per simulare pattern di caricamento rappresentativi del tuo carico di lavoro.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installa e poi
inizializza gcloud CLI. Se hai già installato l'interfaccia a riga di comando gcloud, ottieni la versione più recente eseguendo
gcloud components update
.
Nella console Google Cloud, nella pagina di selezione del progetto, seleziona o crea un Google Cloud progetto.
Assicurati che la fatturazione sia attivata per il tuo Google Cloud progetto.
Assicurati di disporre di una capacità dell'acceleratore sufficiente per il tuo progetto:
- Se utilizzi GPU: consulta la pagina Quote.
- Se utilizzi le TPU: consulta Garantire la quota per le TPU e altre risorse GKE.
Genera un token di accesso a Hugging Face e un segreto Kubernetes corrispondente, se non ne hai già uno. Per creare un secret di Kubernetes contenente il token di Hugging Face, esegui il seguente comando:
kubectl create secret generic hf-secret \ --from-literal=hf_api_token=HUGGING_FACE_TOKEN \ --namespace=NAMESPACE
Sostituisci i seguenti valori:
- HUGGING_FACE_TOKEN: il token Hugging Face che hai creato in precedenza.
- NAMESPACE: lo spazio dei nomi Kubernetes in cui vuoi eseguire il deployment del server del modello.
Per alcuni modelli potrebbe essere necessario anche accettare e firmare il contratto di licenza per il consenso.
Se utilizzi gcloud CLI per eseguire la guida rapida all'inferenza, devi anche eseguire questi comandi aggiuntivi:
Abilita l'API
gkerecommender.googleapis.com
:gcloud services enable gkerecommender.googleapis.com
Abilita l'autenticazione dei comandi (questo passaggio è necessario per impostare il progetto di fatturazione e quota utilizzato per le chiamate API):
gcloud auth application-default login
Limitazioni
Tieni presente le seguenti limitazioni prima di iniziare a utilizzare la guida rapida all'inferenza:
- La guida rapida all'inferenza non fornisce profili per tutti i modelli supportati da un determinato server di modelli.
Ottieni configurazioni ottimizzate per l'inferenza del modello
Utilizza il comando gcloud alpha container ai recommender
per esplorare e visualizzare combinazioni ottimizzate di modello, server di modelli, versione del server di modelli e acceleratori:
Modelli
Per esplorare e selezionare un modello, utilizza l'opzione models
.
gcloud alpha container ai recommender models list
L'output è simile al seguente:
Supported models:
- deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
- google/gemma-2-27b-it
- google/gemma-2-2b-it
- meta-llama/Llama-3.2-1B-Instruct
- meta-llama/Llama-3.3-70B-Instruct
- meta-llama/Meta-Llama-3-8B
- mistralai/Mixtral-8x22B-Instruct-v0.1
- mistralai/Mixtral-8x7B-Instruct-v0.1
Server modello
Per esplorare i server di modelli consigliati per il modello che ti interessa, utilizza l'opzione model-servers
. Ad esempio:
gcloud alpha container ai recommender model-servers list \
--model=meta-llama/Meta-Llama-3-8B
L'output è simile al seguente:
Supported model servers:
- vllm
Versioni del server
Facoltativamente, per esplorare le versioni supportate del server modello che ti interessano,
utilizza l'opzione model-server-versions
. Se salti questo passaggio, la guida rapida all'inferenza utilizzerà per impostazione predefinita la versione più recente.
Ad esempio:
gcloud alpha container ai recommender model-server-versions list \
--model=meta-llama/Meta-Llama-3-8B \
--model-server=vllm
L'output è simile al seguente:
Supported model server versions:
- e92694b6fe264a85371317295bca6643508034ef
- v0.7.2
Acceleratori
Per esplorare gli acceleratori consigliati per la combinazione di modello e server di modelli che ti interessa, utilizza l'opzione accelerators
.
Ad esempio:
gcloud alpha container ai recommender accelerators list \
--model=deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
--model-server-version=v0.7.2
L'output è simile al seguente:
Supported accelerators:
accelerator | model | model server | model server version | accelerator count | output tokens per second | ntpot ms
---------------------|-----------------------------------------|--------------|------------------------------------------|-------------------|--------------------------|---------
nvidia-tesla-a100 | deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | vllm | v0.7.2 | 1 | 3357 | 72
nvidia-h100-80gb | deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | vllm | v0.7.2 | 1 | 6934 | 30
For more details on each accelerator, use --format=yaml
L'output restituisce un elenco di tipi di acceleratori e le seguenti metriche:
- Throughput in token di output al secondo
- Tempo normalizzato per token di output (NTPOT), in millisecondi
I valori rappresentano le prestazioni osservate nel punto in cui la throughput smette di aumentare e la latenza inizia ad aumentare notevolmente (ovvero il punto di inflessione o saturazione) per un determinato profilo con questo tipo di acceleratore. Per scoprire di più su queste metriche sul rendimento, consulta Informazioni sull'inferenza del modello su GKE.
Per altre opzioni, consulta la documentazione di Google Cloud CLI.
Dopo aver scelto un modello, un server di modelli, una versione del server di modelli e un acceleratore, puoi procedere con la creazione di un manifest di deployment.
Genera e implementa le configurazioni consigliate
Questa sezione descrive come generare e implementare i consigli di configurazione utilizzando gcloud CLI.
Genera manifest: nel terminale, utilizza l'opzione
manifests
per generare i manifest Deployment, Service e PodMonitoring:gcloud alpha container ai recommender manifests create
Utilizza i parametri
--model
,--model-server
,--model-server-version
e--accelerator
per personalizzare il manifest.Facoltativamente, puoi impostare i seguenti parametri:
--target-ntpot-milliseconds
: imposta questo parametro per specificare la soglia HPA. Questo parametro consente di definire una soglia di scalabilità per mantenere la latenza P50 NTPOT (tempo normale per token di output), misurata al 50° quartile, al di sotto del valore specificato. Scegli un valore superiore alla latenza minima dell'acceleratore. L'HPA verrà configurato per il throughput massimo se specifichi NTPOT superiore alla latenza massima dell'acceleratore. Ecco un esempio:gcloud alpha container ai recommender manifests create \ --model=google/gemma-2-27b-it \ --model-server=vllm \ --model-server-version=v0.7.2 \ --accelerator-type=nvidia-l4 \ --target-ntpot-milliseconds=200
--output
: i valori validi includonomanifest
,comments
eall
. Per impostazione predefinita, questo valore è impostato suall
. Puoi scegliere di generare solo il manifest per il deployment dei carichi di lavoro oppure di generare solo i commenti se vuoi visualizzare le istruzioni per l'attivazione delle funzionalità.--output-path
: se specificato, l'output verrà salvato nel percorso fornito anziché stampato nel terminale, in modo da poterlo modificare prima di eseguirlo. Ad esempio, puoi utilizzarlo con l'opzione--output=manifest
se vuoi salvare il manifest in un file YAML. Ecco un esempio:gcloud alpha container ai recommender manifests create \ --model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \ --model-server vllm \ --accelerator-type=nvidia-tesla-a100 \ --output=manifest \ --output-path /tmp/manifests.yaml
Per altre opzioni, consulta la documentazione di Google Cloud CLI.
Esegui il provisioning dell'infrastruttura: assicurati che la tua infrastruttura sia configurata correttamente per il deployment, il monitoraggio e la scalabilità dei modelli seguendo questi passaggi.
Esegui il deployment dei manifest: esegui il comando
kubectl apply
e passa il file YAML per i manifest. Ad esempio:kubectl apply -f ./manifests.yaml
Esegui il provisioning dell'infrastruttura
Segui questi passaggi per assicurarti che l'infrastruttura sia configurata correttamente per il deployment, il monitoraggio e il ridimensionamento dei modelli:
Crea un cluster: puoi pubblicare il tuo modello su cluster GKE Autopilot o Standard. Ti consigliamo di utilizzare un cluster Autopilot per un'esperienza Kubernetes completamente gestita. Per scegliere la modalità operativa di GKE più adatta ai tuoi carichi di lavoro, consulta Scegliere una modalità operativa di GKE.
Se non hai un cluster esistente, segui questi passaggi:
Autopilot
Segui queste istruzioni per creare un cluster Autopilot. GKE gestisce il provisioning delle risorse con capacità GPU o TPU in base ai manifest di deployment, se disponi della quota necessaria nel progetto.
Standard
- Crea un cluster di zona o regionale.
Crea un pool di nodi con gli acceleratori appropriati. Segui questi passaggi in base al tipo di acceleratore scelto:
- GPU: innanzitutto, controlla la pagina Quote nella console Google Cloud per assicurarti di disporre di una capacità GPU sufficiente. Quindi, segui le istruzioni riportate in Creare un pool di nodi GPU.
- TPU: innanzitutto, assicurati di avere TPU sufficienti seguendo le istruzioni riportate in Garantire la quota per TPU e altre risorse GKE. Quindi, vai a Creare un pool di nodi TPU.
(Facoltativo, ma consigliato) Abilita le funzionalità di osservabilità: nella sezione dei commenti del manifest generato, vengono forniti comandi aggiuntivi per attivare le funzionalità di osservabilità suggerite. L'attivazione di queste funzionalità fornisce ulteriori approfondimenti per aiutarti a monitorare le prestazioni e lo stato dei carichi di lavoro e dell'infrastruttura di base.
Di seguito è riportato un esempio di comando per abilitare le funzionalità di osservabilità:
gcloud beta container clusters update $CLUSTER_NAME --project=$PROJECT_ID --location=$LOCATION \ --enable-managed-prometheus \ --logging=SYSTEM,WORKLOAD \ --monitoring=SYSTEM,DEPLOYMENT,HPA,POD,DCGM \ --auto-monitoring-scope=ALL
Per ulteriori informazioni, consulta Monitorare i carichi di lavoro di inferenza
(Solo HPA) Esegui il deployment di un adattatore delle metriche: un adattatore delle metriche, come l'adattatore Stackdriver delle metriche personalizzate, è necessario se le risorse HPA sono state generate nei manifest di deployment. L'adattatore delle metriche consente all'HPA di accedere alle metriche del server di modelli che utilizzano l'API delle metriche esterne di Kube. Per eseguire il deployment dell'adattatore, consulta la documentazione dell'adattatore su GitHub.
Testa gli endpoint di deployment
Il servizio di cui è stato eseguito il deployment è esposto al seguente endpoint:
http://model-model_server-service:port/
Prova il servizio. In un terminale separato, configura il port forwarding eseguendo il seguente comando:
kubectl port-forward service/model-model_server-service 8000:8000
Per esempi su come creare e inviare una richiesta all'endpoint, consulta la documentazione di vLLM.
Monitora i carichi di lavoro di inferenza
Per monitorare i carichi di lavoro di inferenza di cui è stato eseguito il deployment, vai a Metrics Explorer nella console Google Cloud.
Attivare il monitoraggio automatico
GKE include una funzionalità di monitoraggio automatico che fa parte delle funzionalità di osservabilità più ampie. Questa funzionalità esegue la scansione del cluster per rilevare i carichi di lavoro eseguiti su server di modelli supportati ed esegue il deployment delle risorse PodMonitoring che consentono di visualizzare queste metriche dei carichi di lavoro in Cloud Monitoring. Per saperne di più sull'abilitazione e sulla configurazione del monitoraggio automatico, consulta Configurare il monitoraggio automatico delle applicazioni per i workload.
Dopo aver attivato la funzionalità, GKE installa dashboard predefinite per il monitoraggio delle applicazioni per i carichi di lavoro supportati.
Risoluzione dei problemi
- Se imposti una latenza troppo bassa, la guida rapida all'inferenza potrebbe non generare un consiglio. Per risolvere il problema, seleziona un target di latenza compreso tra la latenza minima e quella massima osservata per gli acceleratori selezionati.
- La procedura rapida di inferenza esiste indipendentemente dai componenti GKE, pertanto la versione del cluster non è direttamente pertinente per l'utilizzo del servizio. Tuttavia, ti consigliamo di utilizzare un cluster nuovo o aggiornato per evitare discrepanze nel rendimento.
- Se ricevi un errore
PERMISSION_DENIED
per i comandigkerecommender.googleapis.com
che indica che manca un progetto quota con ADC, devi impostarlo manualmente. Eseguigcloud config set billing/quota_project PROJECT_ID
per risolvere il problema.
Passaggi successivi
- Visita il portale di orchestrazione AI/ML su GKE per esplorare le nostre guide, i tutorial e i casi d'uso ufficiali per l'esecuzione di workload AI/ML su GKE.
- Per ulteriori informazioni sull'ottimizzazione della pubblicazione dei modelli, consulta Best practice per l'ottimizzazione dell'inferenza di modelli linguistici di grandi dimensioni con GPU. Copre le best practice per la pubblicazione di LLM con GPU su GKE, come la quantizzazione, il parallelismo di tensori e la gestione della memoria.
- Per ulteriori informazioni sulle best practice per la scalabilità automatica, consulta queste guide:
- Scopri altri esempi, best practice e strumenti nel repository GitHub di ai-on-gke.