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 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 output 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 offre una soluzione scalabile e portatile per l'implementazione di 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 Kubernetes. AWS
Perché usare Amazon EKS per l'inferenza
Amazon EKS combina l'orchestrazione di Kubernetes con l' AWS infrastruttura per affrontare le sfide principali dell'esecuzione dell'inferenza su larga scala:
-
Scalabilità dinamica della GPU: Karpenter fornisce istanze GPU della giusta dimensione su richiesta in base alle richieste di risorse Pod, scalando da zero quando non sono attive e aggiungendo capacità all'aumentare del traffico. In questo modo si evita l'eccessivo approvvigionamento di costose risorse GPU.
-
Avvio rapido a freddo: il pull parallelo SOCI (Seekable OCI) scarica e decomprime contemporaneamente grandi livelli di immagini del contenitore, riducendo i tempi di recupero delle immagini da minuti a secondi. In combinazione con lo streaming dei modelli da Amazon S3 direttamente alla memoria della GPU, i Pod possono iniziare a funzionare in meno di due minuti.
-
Ripristino automatico degli errori 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, la selezione delle istanze della dimensione corretta e il 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 di modelli open source come VLLm o SGlang, garantendo la portabilità tra gli ambienti.
-
Monitoraggio integrato: le metriche Prometheus di vLLM o SGlang e NVIDIA DCGM Exporter forniscono visibilità sulla latenza delle richieste, sulla velocità effettiva 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: il processo di esecuzione di un modello addestrato per generare output (testo, incorporamenti, classificazioni) dai dati di input.
-
Server modello: 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 ). -
Pesi dei modelli: i parametri appresi di un modello addestrato, memorizzati come file (in genere in formato GGUF) che il server del modello SafeTensors carica nella memoria della GPU.
-
Acceleratore: hardware specializzato come GPU o AWS Trainium/Inferentia chip NVIDIA che velocizza le operazioni di matrice necessarie per l'inferenza.
-
Parallelismo tensoriale: suddivisione di un modello su più GPU sullo stesso nodo per offrire modelli che superano la memoria di una singola GPU.
-
Cache KV: un buffer di memoria che memorizza le coppie chiave-valore precedentemente calcolate 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 modelli (ad esempio Hugging Face) e archiviali in Amazon S3 per un caricamento rapido dei modelli durante gli eventi di avvio a freddo o di scalabilità. |
|
Implementa il server modello |
Crea una distribuzione Kubernetes che esegua un server modello (come VLLM) sui nodi GPU. Il server modello trasmette i pesi da S3 alla memoria della GPU ed espone un'API. OpenAI-compatible |
|
Esporre l'endpoint di inferenza |
Crea un servizio Kubernetes per fornire un endpoint di rete stabile. Utilizza il port-forwarding per i test o un load balancer come AWS Application Load Balancer (ALB) per il traffico di produzione. |
|
Monitoraggio e scalabilità |
Utilizza le metriche di Prometheus (frequenza delle richieste, 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 alla latenza e alla velocità effettiva:
Metriche di latenza
-
Time to First Token (TTFT): tempo compreso 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 al primo.
-
End-to-end latenza della richiesta: tempo totale dall'invio della richiesta al completamento della risposta completa.
Metriche del throughput
-
Richieste al secondo: richieste di inferenza totali servite al secondo su tutte le repliche.
-
Token di output al secondo: velocità di generazione dei token, misurata come token di output totali diviso 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 quanto il server è vicino alla capacità.
Riduzione del tempo di avviamento a freddo
I contenitori di inferenza di grandi dimensioni (8-15 GB) e i pesi dei modelli (10-100+ GB) possono rallentare l'avvio del Pod. Le seguenti tecniche riducono al minimo i ritardi di avviamento a freddo:
-
SOCI parallel pull: scarica e decomprime i livelli di immagine del contenitore contemporaneamente anziché in sequenza. Attivato per impostazione predefinita nella modalità automatica EKS per le istanze GPU.
-
Streaming di modelli da S3: strumenti come Run:ai Model Streamer
trasmettono i pesi dei modelli direttamente da Amazon S3 alla memoria della GPU, bypassando il disco locale e riducendo il tempo di caricamento da minuti a secondi. -
Archivia 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'archivio delle istanze: G-family le istanze con dischi NVMe locali possono memorizzare nella cache livelli di container e artefatti del modello, velocizzando i richiami successivi sullo stesso nodo.
Cosa distribuirai
La procedura dettagliata del modello Load & Serve ti guida nella distribuzione di un'applicazione di inferenza end-to-end:
-
Scarica i pesi dei modelli: A Kubernetes Job scarica Ministral-3-8B-Instruct il modello da Hugging Face e lo carica nel tuo 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
-
Monitoraggio con Grafana: A collega le metriche ServiceMonitor vLLM Prometheus allo stack di monitoraggio per dashboard in 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.