Contribuisci a migliorare questa pagina
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina su che si trova nel riquadro destro di ogni pagina.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esegui carichi di lavoro di AI/ML inferenza su Amazon EKS
Suggerimento
Registrati
L'inferenza è il processo di esecuzione di un modello di intelligenza artificiale addestrato per generare previsioni o risultati a partire dai dati di input. Ciò include la fornitura di modelli linguistici di grandi dimensioni (LLM) che producono testo o codice, modelli di diffusione che generano immagini, modelli vocali per la sintesi e la trascrizione vocale e modelli video per l'analisi o la generazione in tempo reale. Amazon EKS fornisce una soluzione scalabile e portatile per distribuire questi carichi di lavoro di inferenza con GPU NVIDIA o acceleratori AWS Trainium, scalabilità dinamica e integrazione con il più ampio panorama di strumenti e servizi di Kubernetes. AWS
Perché usare Amazon EKS per l'inferenza
Amazon EKS combina l'orchestrazione di Kubernetes con l' AWS infrastruttura per affrontare le principali sfide dell'esecuzione dell'inferenza su larga scala:
-
Scalabilità dinamica della GPU: Karpenter fornisce istanze GPU di dimensioni adeguate su richiesta in base alle richieste di risorse Pod, scalando da zero quando sono inattive e aggiungendo capacità all'aumentare del traffico. In questo modo si evita il provisioning eccessivo di costose risorse GPU.
-
Avvio rapido a freddo: SOCI (Seekable OCI) scarica e decomprime contemporaneamente grandi livelli di immagini dei contenitori, riducendo i tempi di estrazione delle immagini da minuti a secondi. In combinazione con lo streaming dei modelli da Amazon S3 direttamente alla memoria GPU, i Pods possono iniziare a funzionare in meno di due minuti.
-
Ripristino automatico dei guasti della GPU: l'agente di monitoraggio dei nodi EKS rileva i guasti hardware della GPU e attiva la sostituzione automatica dei nodi, riducendo al minimo i tempi di inattività senza intervento manuale.
-
Ottimizzazione dei costi: le istanze Spot con On-Demand fallback, selezione delle istanze della dimensione corretta e comportamento scalabile a zero riducono i costi della GPU. La capacità riservata (ODCR) offre ulteriori risparmi per i carichi di lavoro stazionari.
-
Standard aperti e portabilità: i carichi di lavoro di inferenza vengono eseguiti su API Kubernetes standard (Deployments, Services, HPA) con server modello open source come VLLM o SGLang, che garantiscono la portabilità tra gli ambienti.
-
Monitoraggio integrato: le metriche Prometheus di VLLM o SGLang e NVIDIA DCGM Exporter forniscono visibilità sulla latenza delle richieste, sul throughput dei token, sull'utilizzo della GPU e sull'utilizzo della memoria tramite le dashboard Grafana.
Glossario
In questa sezione vengono utilizzati i seguenti termini:
-
Inferenza: processo di esecuzione di un modello addestrato per generare output (testo, incorporamenti, classificazioni) dai dati di input.
-
Model server: un servizio containerizzato che carica un modello in memoria, riceve richieste di inferenza e restituisce previsioni. Gli esempi includono vLLM
, SGlang, Triton Inference Server e Text Generation Inference (TGI). https://github.com/huggingface/text-generation-inference -
Pesi del modello: i parametri appresi di un modello addestrato, archiviati come file (in genere in formato GGUF) che il server dei modelli SafeTensors carica nella memoria della GPU.
-
Acceleratore: hardware specializzato come GPU o AWS Trainium/Inferentia chip NVIDIA che velocizza le operazioni sulla matrice necessarie per l'inferenza.
-
Parallelismo tensoriale: suddivisione di un modello su più GPU sullo stesso nodo per servire modelli che superano la memoria di una singola GPU.
-
Cache KV: un buffer di memoria che memorizza le coppie chiave-valore calcolate in precedenza durante la generazione del testo, evitando calcoli ridondanti per ogni nuovo token.
Come funziona l'inferenza su Amazon EKS
Ad alto livello, l'implementazione di un carico di lavoro di inferenza su Amazon EKS prevede i seguenti passaggi:
| Fase | Description |
|---|---|
|
Configura il cluster |
Crea un cluster EKS con GPU-enabled nodi, monitoraggio e archiviazione. Vedi Configurazione del cluster nei documenti AI/ML su EKS. |
|
Memorizza i pesi dei modelli |
Scarica i pesi dei modelli da un registro dei modelli (come Hugging Face) e memorizzali in Amazon S3 per caricarli rapidamente durante gli eventi di avvio a freddo o di scale-up. |
|
Implementa il server modello |
Crea una distribuzione Kubernetes che esegua un server modello (come vLLM) su nodi GPU. Il server modello trasmette i pesi da S3 alla memoria della GPU ed espone un'API. OpenAI-compatible |
|
Esponi l'endpoint di inferenza |
Crea un servizio Kubernetes per fornire un endpoint di rete stabile. Usa il port-forwarding per i test o un load balancer come AWS Application Load Balancer (ALB) per il traffico di produzione. |
|
Monitoraggio e scalabilità |
Usa le metriche di Prometheus (frequenza di richiesta, velocità effettiva dei token, latenza, utilizzo della cache KV) per monitorare le prestazioni e configurare la scalabilità automatica. |
Metriche delle prestazioni di inferenza
La comprensione delle prestazioni di inferenza richiede il monitoraggio delle metriche relative a latenza e throughput:
Metriche di latenza
-
Time to First Token (TTFT): tempo che intercorre tra l'arrivo della richiesta e il primo token generato. Fondamentale per le applicazioni interattive.
-
Time Per Output Token (TPOT): tempo medio per generare ogni token successivo dopo il primo.
-
End-to-end latenza della richiesta: tempo totale dall'invio della richiesta al completamento della risposta completa.
Metriche di produttività
-
Richieste al secondo: richieste di inferenza totali fornite al secondo in tutte le repliche.
-
Token di output al secondo: velocità di generazione dei token, misurata come token di output totali divisi per il tempo trascorso.
-
Utilizzo della GPU: percentuale di cicli di calcolo della GPU utilizzati attivamente per l'inferenza.
-
Utilizzo della cache KV: percentuale di memoria cache KV allocata in uso, che indica il livello massimo di capacità del server.
Riduzione del tempo di avvio a freddo
I contenitori di inferenza di grandi dimensioni (8-15 GB) e il peso dei modelli (10-100+ GB) possono rallentare l'avvio del Pod. Le seguenti tecniche riducono al minimo i ritardi di avviamento a freddo:
-
Pull parallelo SOCI: scarica e decomprime i livelli dell'immagine del contenitore contemporaneamente anziché in sequenza. Abilitato per impostazione predefinita in EKS Auto Mode per le istanze GPU.
-
Streaming di modelli da S3: strumenti come Run:ai Model Streamer
trasmettono i modelli direttamente da Amazon S3 alla memoria della GPU, bypassando il disco locale e riducendo il tempo di caricamento da minuti a secondi. -
Archivia le immagini in Amazon ECR: l'estrazione da un repository ECR regionale su un endpoint VPC evita la latenza Internet per le immagini di contenitori di grandi dimensioni.
-
Memorizzazione nella cache dell'Instance Store: G-family le istanze con dischi NVMe locali possono memorizzare nella cache i layer di container e gli artefatti del modello, velocizzando i pull successivi sullo stesso nodo.
Cosa implementerai
La procedura dettagliata del modello Load & Serve ti guida nella distribuzione di un'applicazione di inferenza end-to-end:
-
Scarica i pesi dei modelli: un Kubernetes Job scarica il Ministral-3-8B-Instruct modello da Hugging Face e lo carica nel bucket S3.
-
Implementa vLLM: una distribuzione esegue vLLM con Run:ai Model Streamer per trasmettere i pesi da S3 direttamente nella memoria della GPU, servendo un'API. OpenAI-compatible
-
Monitora con Grafana: A collega le metriche VLLM Prometheus allo stack di monitoraggio per creare dashboard in ServiceMonitor tempo reale.
-
Implementa un frontend di chat: Open WebUI fornisce un'interfaccia di chat basata su browser connessa all'endpoint vLLM.
La procedura dettagliata utilizza l'infrastruttura cluster della Configura il cluster Amazon EKS per i AI/ML carichi di lavoro sezione e funziona sia con EKS Auto Mode che con i percorsi Karpenter autogestiti.