Esegui l'inferenza secondo le best practice con le ricette della guida rapida di GKE Inference


Questa pagina descrive come utilizzare GKE Inference Quickstart per semplificare il deployment dei workload di inferenza AI/ML su Google Kubernetes Engine (GKE). Avvio rapido dell'inferenza è un'utilità che ti consente di specificare i requisiti aziendali di inferenza e 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 eviti la procedura dispendiosa in termini di tempo di aggiustamento e test manuali delle configurazioni.

Questa pagina è rivolta a machine learning engineer, amministratori e operatori della piattaforma e a specialisti di dati e AI 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 utente e attività comuni di GKE Enterprise.

Per saperne di più sui concetti e sulla terminologia relativi al servizio di modelli e su come le funzionalità di GKE Gen AI possono migliorare e supportare le prestazioni del servizio di modelli, consulta Informazioni sull'inferenza dei modelli su GKE.

Prima di leggere questa pagina, assicurati di conoscere Kubernetes, GKE e il model serving.

Utilizzo di Inference Quickstart

Di seguito sono riportati i passaggi generali per utilizzare Avvio rapido dell'inferenza. Fai clic sui link per istruzioni dettagliate.

  1. Visualizza le best practice personalizzate: utilizzando la pagina AI/ML di GKE nella console Google Cloud o Google Cloud CLI nel terminale, inizia fornendo input come il tuo modello open source preferito (ad esempio Llama, Gemma o Mistral).
    • Puoi specificare il target di latenza della tua 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 danno il pieno controllo per il deployment o ulteriori modifiche. I manifest generati fanno riferimento a immagini pubbliche del server del modello, quindi non devi crearle manualmente.
  2. Esegui il deployment dei manifest: utilizzando la console Google Cloud o il comando kubectl apply, esegui il deployment dei manifest consigliati. Prima del deployment, devi assicurarti di disporre di una quota di acceleratori sufficiente per le GPU o le TPU selezionate nel tuo progetto Google Cloud .
  3. Monitora le prestazioni: utilizza Cloud Monitoring per monitorare le metriche delle prestazioni dei carichi di lavoro fornite da GKE. Puoi visualizzare le dashboard del server di modelli e perfezionare il deployment in base alle esigenze.

Vantaggi

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:

  • Ricevi best practice personalizzate e dettagliate per impostare l'acceleratore (GPU e TPU), il server dei modelli e le configurazioni di scalabilità. GKE aggiorna regolarmente lo strumento con le correzioni, le immagini e i benchmark delle prestazioni più recenti.
  • Puoi specificare i requisiti di latenza e velocità effettiva del tuo carico di lavoro utilizzando l'interfaccia utente della consoleGoogle Cloud o un'interfaccia a riga di comando e ottenere best practice dettagliate e personalizzate come manifest di deployment Kubernetes.

Casi d'uso

Avvio rapido dell'inferenza è adatto a scenari come i seguenti:

  • Scopri le architetture di inferenza GKE ottimali: se stai eseguendo la transizione da un altro ambiente, ad esempio on-premise o un altro fornitore di servizi cloud, e vuoi le architetture di inferenza consigliate più aggiornate su GKE per le tue esigenze specifiche di prestazioni.
  • Accelerare i deployment di inferenza AI/ML: se sei un utente Kubernetes esperto e vuoi iniziare rapidamente a eseguire il deployment dei workload di inferenza AI, Avvio rapido dell'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 Avvio rapido dell'inferenza per esplorare i vantaggi dell'utilizzo delle TPU per ottenere potenzialmente prestazioni migliori.

Come funziona

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 modello, server di modelli e topologia dell'acceleratore. Questi grafici dei 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 flesso in cui il throughput raggiunge un plateau (verde), il punto post-inflesso in cui la latenza peggiora (rosso) e la zona ideale (blu) per un throughput ottimale in corrispondenza del target di latenza. Guida rapida all'inferenza fornisce dati sulle prestazioni e configurazioni per questa zona ideale.

Profilo di latenza con marcatore verde inferiore a 2000 token di output al secondo e marcatore rosso superiore a 2000 token di output al secondo

In base ai requisiti di latenza di un'applicazione di inferenza, Inference Quickstart identifica le combinazioni adatte e determina il punto operativo ottimale sulla curva latenza-throughput. Questo punto imposta la soglia di Horizontal Pod Autoscaler (HPA), con un buffer per tenere conto della latenza di scalabilità verticale. La soglia complessiva determina anche il numero iniziale di repliche necessarie, anche se HPA regola dinamicamente questo numero in base al workload.

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

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à, installala e poi inizializzala. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo gcloud components update.
  • Nella console Google Cloud , nella pagina del selettore di progetti, seleziona o crea un progetto Google Cloud .

  • Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud .

  • Assicurati di disporre di una capacità dell'acceleratore sufficiente per il tuo progetto:

  • Genera un token di accesso Hugging Face e un secret Kubernetes corrispondente, se non ne hai già uno. Per creare un secret di Kubernetes che contenga il token Hugging Face, esegui questo 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.
  • Alcuni modelli potrebbero anche richiedere di accettare e firmare il contratto di licenza per il consenso.

Prepararsi a utilizzare l'interfaccia utente AI/ML di GKE

Se utilizzi la console Google Cloud , devi anche creare un cluster Autopilot, se non ne è già stato creato uno nel tuo progetto. Segui le istruzioni riportate in Creare un cluster Autopilot.

Prepararsi a utilizzare l'interfaccia a riga di comando

Se utilizzi gcloud CLI per eseguire Avvio rapido dell'inferenza, devi eseguire anche questi comandi aggiuntivi:

  1. Attiva l'API gkerecommender.googleapis.com:

    gcloud services enable gkerecommender.googleapis.com
    
  2. Imposta il progetto di quota di fatturazione che utilizzi per le chiamate API:

    gcloud config set billing/quota_project PROJECT_ID
    
  3. Verifica che la versione di gcloud CLI sia almeno la 526.0.0. In caso contrario, esegui questo comando:

    gcloud components update
    

Limitazioni

Prima di iniziare a utilizzare Inference Quickstart, tieni presente le seguenti limitazioni:

  • Il deployment del modello della consoleGoogle Cloud supporta il deployment solo nei cluster Autopilot.
  • Guida rapida all'inferenza non fornisce profili per tutti i modelli supportati da un determinato server di modelli.

Visualizzare le configurazioni ottimizzate per l'inferenza del modello

Questa sezione descrive come generare e visualizzare i consigli di configurazione utilizzando la console Google Cloud o la riga di comando.

Console

  1. Vai alla pagina GKE AI/ML nella console Google Cloud

  2. Fai clic su Esegui il deployment dei modelli.
  3. Seleziona un modello da visualizzare. I modelli supportati da Avvio rapido dell'inferenza vengono visualizzati con il tag Ottimizzato.

    • Se hai selezionato un modello di base, si apre una pagina del modello. Fai clic su Esegui il deployment. Puoi comunque modificare la configurazione prima del deployment effettivo.
    • Ti viene chiesto di creare un cluster Autopilot, se non ne esiste uno nel tuo progetto. Segui le istruzioni riportate in Creare un cluster Autopilot. Dopo aver creato il cluster, torna alla pagina GKE AI/ML nella console Google Cloud per selezionare un modello.

    La pagina di deployment del modello viene precompilata con il modello selezionato e con il server e l'acceleratore del modello consigliati. Puoi anche configurare impostazioni come la latenza massima.

  4. Per visualizzare il manifest con la configurazione consigliata, fai clic su Visualizza YAML.

gcloud

Utilizza il comando gcloud alpha container ai profiles per esplorare e visualizzare le 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 profiles models list

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 profiles model-servers list \
      --model=meta-llama/Meta-Llama-3-8B

L'output è simile al seguente:

  Supported model servers:
  -  vllm

Versioni del server

Se vuoi esplorare le versioni supportate del server di modelli che ti interessano, utilizza l'opzione model-server-versions. Se salti questo passaggio, la guida rapida per l'inferenza utilizza per impostazione predefinita l'ultima versione. Ad esempio:

  gcloud alpha container ai profiles 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 del modello che ti interessa, utilizza l'opzione accelerators. Ad esempio:

  gcloud alpha container ai profiles 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 acceleratore e queste metriche:

  • Throughput, in token di output al secondo
  • Tempo normalizzato per token di output (NTPOT), in millisecondi

I valori rappresentano il rendimento osservato nel punto in cui la velocità effettiva smette di aumentare e la latenza inizia ad aumentare drasticamente (ovvero il punto di flesso o di 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 alla creazione di un manifest di deployment.

Esegui il deployment delle configurazioni consigliate

Questa sezione descrive come generare e implementare i consigli di configurazione utilizzando la console Google Cloud o la riga di comando.

Console

  1. Vai alla pagina GKE AI/ML nella console Google Cloud

  2. Fai clic su Esegui il deployment dei modelli.
  3. Seleziona un modello di cui vuoi eseguire il deployment. I modelli supportati da Avvio rapido dell'inferenza vengono visualizzati con il tag Ottimizzato.

    • Se hai selezionato un modello di base, si apre una pagina del modello. Fai clic su Esegui il deployment. Puoi comunque modificare la configurazione prima del deployment effettivo.
    • Ti viene chiesto di creare un cluster Autopilot, se non ne esiste uno nel tuo progetto. Segui le istruzioni riportate in Creare un cluster Autopilot. Dopo aver creato il cluster, torna alla pagina GKE AI/ML nella console Google Cloud per selezionare un modello.

    La pagina di deployment del modello viene precompilata con il modello selezionato e con il server e l'acceleratore del modello consigliati. Puoi anche configurare impostazioni come la latenza massima.

  4. (Facoltativo) Per visualizzare il manifest con la configurazione consigliata, fai clic su Visualizza YAML.

  5. Per eseguire il deployment del manifest con la configurazione consigliata, fai clic su Esegui il deployment. Il completamento dell'operazione di deployment potrebbe richiedere alcuni minuti.

Per visualizzare il deployment, vai alla pagina Kubernetes Engine > Workload.

gcloud

  1. Genera manifest: nel terminale, utilizza l'opzione manifests per generare i manifest di deployment, servizio e PodMonitoring:

    gcloud alpha container ai profiles manifests create
    

    Utilizza i parametri obbligatori --model, --model-server e --accelerator-type per personalizzare il manifest.

    (Facoltativo) Puoi impostare questi 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 del tempo normalizzato per token di output (NTPOT), misurata al cinquantesimo quartile, al di sotto del valore specificato. Scegli un valore superiore alla latenza minima dell'acceleratore. L'HPA è configurato per la massima velocità effettiva se specifichi un valore NTPOT superiore alla latenza massima dell'acceleratore. Ad esempio:

      gcloud alpha container ai profiles 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
      
    • --model-server-version: la versione del server di modelli. Se non specificato, il valore predefinito è l'ultima versione.

    • --namespace: lo spazio dei nomi in cui eseguire il deployment dei manifest. Lo spazio dei nomi predefinito è "default".

    • --output: i valori validi includono manifest, comments e all. Per impostazione predefinita, questo parametro è impostato su all. Puoi scegliere di generare solo il manifest per il deployment dei carichi di lavoro oppure puoi scegliere di generare solo i commenti se vuoi visualizzare le istruzioni per attivare le funzionalità.

    • --output-path: se specificato, l'output viene salvato nel percorso fornito anziché stampato nel terminale, in modo da poterlo modificare prima di eseguirne il deployment. Ad esempio, puoi utilizzarlo con l'opzione --output=manifest se vuoi salvare il manifest in un file YAML. Ad esempio:

      gcloud alpha container ai profiles 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.

  2. Esegui il provisioning dell'infrastruttura: assicurati che l'infrastruttura sia configurata correttamente per il deployment, il monitoraggio e lo scalabilità del modello seguendo questi passaggi di provisioning.

  3. Esegui il deployment dei manifest: esegui il comando kubectl apply e inserisci il file YAML per i manifest. Ad esempio:

    kubectl apply -f ./manifests.yaml
    

Esegui il provisioning dell'infrastruttura

Segui questi passaggi per assicurarti che la tua infrastruttura sia configurata correttamente per il deployment, il monitoraggio e lo scaling dei modelli:

  1. Crea un cluster: puoi pubblicare il modello sui cluster GKE Autopilot o standard. Ti consigliamo di utilizzare un cluster Autopilot per un'esperienza Kubernetes completamente gestita. Per scegliere la modalità operativa GKE più adatta ai tuoi carichi di lavoro, consulta Scegliere una modalità operativa GKE.

    Se non hai un cluster esistente, segui questi passaggi:

    Autopilot

    Segui queste istruzioni per creare un cluster Autopilot. GKE gestisce il provisioning dei nodi con capacità GPU o TPU in base ai manifest di deployment, se disponi della quota necessaria nel progetto.

    Standard

    1. Crea un cluster zonale o regionale.
    2. Crea un pool di nodi con gli acceleratori appropriati. Segui questi passaggi in base al tipo di acceleratore scelto:

  2. (Facoltativo, ma consigliato) Attiva 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 maggiori informazioni per aiutarti a monitorare le prestazioni e lo stato dei carichi di lavoro e dell'infrastruttura sottostante.

    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 saperne di più, vedi Monitorare i carichi di lavoro di inferenza.

  3. (Solo HPA) Esegui il deployment di un adattatore delle metriche: un adattatore delle metriche, ad esempio l'adattatore delle metriche personalizzate di Stackdriver, è necessario se le risorse HPA sono state generate nei manifest di deployment. L'adattatore delle metriche consente a HPA di accedere alle metriche del server del modello che utilizzano l'API per le metriche esterne di Kube. Per eseguire il deployment dell'adattatore, consulta la documentazione dell'adattatore su GitHub.

Testare gli endpoint di deployment

Se hai eseguito il deployment del manifest utilizzando la riga di comando, 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 di come creare e inviare una richiesta all'endpoint, consulta la documentazione di vLLM.

Monitorare i carichi di lavoro di inferenza

Per monitorare i workload di inferenza di cui è stato eseguito il deployment, vai a Metrics Explorer nella console Google Cloud .

Abilitare 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 alla ricerca di workload che vengono eseguiti su server di modelli supportati e di cui esegue il deployment delle risorse PodMonitoring che consentono di visualizzare le metriche dei workload in Cloud Monitoring. Per saperne di più sull'attivazione e la configurazione del monitoraggio automatico, consulta Configurare il monitoraggio automatico delle applicazioni per i workload.

Dopo aver abilitato la funzionalità, GKE installa dashboard predefinite per il monitoraggio delle applicazioni per i carichi di lavoro supportati.

Se esegui il deployment dalla pagina GKE AI/ML nella console Google Cloud , le risorse PodMonitoring e HPA vengono create automaticamente utilizzando la configurazione targetNtpot.

Risoluzione dei problemi

  • Se imposti una latenza troppo bassa, la guida rapida per l'inferenza potrebbe non generare un suggerimento. Per risolvere il problema, seleziona un target di latenza compreso tra la latenza minima e massima osservata per gli acceleratori selezionati.
  • Guida rapida per l'inferenza esiste indipendentemente dai componenti GKE, quindi 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 comandi gkerecommender.googleapis.com che indica che manca un progetto di quota, devi impostarlo manualmente. Esegui gcloud config set billing/quota_project PROJECT_ID per risolvere il problema.

Passaggi successivi