

 **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
<a name="ml-inference"></a>

**Suggerimento**  
 [Registrati](https://events.eksworkshop.com/workshops/genai/) ai prossimi AI/ML workshop Amazon EKS.

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
<a name="_why_use_amazon_eks_for_inference"></a>

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
<a name="_glossary"></a>

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](https://docs.vllm.ai/en/latest/), [sGLang](https://github.com/sgl-project/sglang), Triton Inference Server e Text [Generation Inference (TGI](https://github.com/triton-inference-server/server)).](https://github.com/huggingface/text-generation-inference)
+  **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
<a name="_how_inference_on_amazon_eks_works"></a>

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](ml-cluster-setup.md) 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
<a name="_inference_performance_metrics"></a>

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
<a name="_reducing_cold_start_time"></a>

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](https://github.com/run-ai/runai-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
<a name="_what_youll_deploy"></a>

La procedura dettagliata del [modello Load & Serve](ml-inference-load-serve-model.md) ti guida nella distribuzione di un'applicazione di inferenza end-to-end:

1.  **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.

1.  **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 

1.  **Monitoraggio con Grafana**: A collega le metriche ServiceMonitor vLLM Prometheus allo stack di monitoraggio per dashboard in tempo reale.

1.  **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](ml-cluster-setup.md) sezione e funziona sia con EKS Auto Mode che con i percorsi Karpenter autogestiti.