Che cos'è vLLM?
vLLM, acronimo di "virtual large language model", è una libreria di codice open source gestita dalla community vLLM, che consente ai modelli linguistici di grandi dimensioni (LLM) di eseguire calcoli in modo più efficiente e scalabile.
vLLM include sia un server di inferenza (che gestisce il traffico di rete) sia un motore di inferenza (per massimizzare la velocità di elaborazione). Accelera l'output delle applicazioni di IA generativa sfruttando al meglio la memoria GPU tramite l'algoritmo PagedAttention.
L'obiettivo generale di vLLM è massimizzare la velocità di trasmissione (token elaborati al secondo) per distribuire le soluzioni a più utenti contemporaneamente.
Come funziona vLLM?
Per capire i vantaggi offerti da vLLM, è importante analizzare il ruolo di un server di inferenza e come funziona un LLM. Con queste nozioni diventa più facile comprendere in che modo vLLM riesce a migliorare le prestazioni dei modelli linguistici esistenti.
Cos'è un server di inferenza?
Un server di inferenza è un software che aiuta un modello di IA a trarre nuove conclusioni in base all'addestramento ricevuto. I server di inferenza alimentano le richieste di input tramite un modello di apprendimento automatico e producono un output.
"Inferire" significa trarre una conclusione sulla base di prove e premesse. Ad esempio, se vediamo accesa la luce nella casa di un nostro amico, ma non lo vediamo, possiamo dedurre che sia in casa, ma non abbiamo prove certe in merito.
Un modello linguistico non ha prove definitive del significato di una parola o un'espressione (in fondo, è solo un software), quindi usa l'addestramento ricevuto per fare una deduzione. Grazie a una serie di calcoli basati su dati, riesce a generare una conclusione, proprio come noi dedurremo che il nostro amico è uscito se le luci di casa sua sono spente.
Gli LLM traggono conclusioni con la matematica
L'addestramento di un LLM avviene tramite calcoli matematici. Per generare una risposta (inferenza), poi, un LLM deve eseguire una serie di calcoli di probabilità (e quindi, ricorrere ancora alla matematica).
Affinché comprenda la richiesta dell'utente, l'LLM deve capire la relazione tra le parole e deve saperle associare tra loro. Gli LLM non conoscono i significati delle parole e non le comprendono come gli umani, ma "ragionano" (di nuovo) con la matematica.
Quando risponde a milioni di utenti al giorno, un LLM svolge numerosi calcoli e, quando l'applicazione è in esecuzione, elaborarli tutti allo stesso tempo può essere complesso. Questo perché, solitamente, la potenza di elaborazione richiesta per utilizzare un LLM può consumare rapidamente una porzione elevata di memoria.
Gli upgrade dell'architettura vLLM continuano a migliorare l'efficienza delle risorse in termini di memoria e velocità.
Red Hat AI
vLLM usa PagedAttention per elaborare i calcoli in modo più efficiente
Secondo uno studio fondamentale, Efficient Memory Management for Large Language Model Serving with PagedAttention, gli attuali sistemi di gestione della memoria degli LLM non elaborano i calcoli in modo molto efficiente. PagedAttention è una tecnica di gestione della memoria introdotta da vLLM, ispirata alla memoria virtuale e alla paginazione dei sistemi operativi.
Questo studio dimostra come la cache key value (KV), che è la memoria a breve termine di un LLM, si amplia e si restringe durante la trasmissione, e indica vLLM come una soluzione per gestire lo spazio e la potenza di elaborazione in modo più stabile.
In sostanza, vLLM funziona come un set di istruzioni che porta la cache KV a creare "batch" delle risposte degli utenti in modo continuo per ottenere maggiore efficienza.
Prima di proseguire, diamo una breve definizione di cache KV e batching continuo.
Cos'è la cache KV?
"KV" sta per "key value", ovvero "valore chiave", e indica il modo in cui un LLM formula il significato di una parola o di un'espressione. Ad esempio, per elaborare il valore chiave di un piatto su un menu, dobbiamo considerare la chiave, una porzione di patatine fritte, e il suo valore, cioè il prezzo, 3,99 $. Quando la porzione di patatine fritte viene battuta in cassa, il "valore" calcolato di questa "chiave" è di 3,99 $. Gli LLM elaborano i KV in modo simile, perché conservano il valore corrispondente di ogni chiave (o token) nella propria cache.
La cache è uno storage di memoria a breve termine. Ad esempio, quando un computer va a rilento, di solito si "pulisce" la cache per ottimizzare e accelerare l'elaborazione dei dati.
Cos'è il batching continuo?
Il batching continuo è una tecnica utilizzata per elaborare più query contemporaneamente, allo scopo di migliorare l'efficienza complessiva dell'elaborazione.
Una chatbot riceve ogni minuto migliaia di query, spesso molto simili tra loro, come "Qual è la capitale dell'India?" e "Qual è la capitale dell'Irlanda?". Entrambe le query includono le parole "Qual è la capitale dell'", che rappresentano una sequenza di token (parole). Per comprenderne il significato, un LLM deve compiere una notevole quantità di calcoli.
Con vLLM, la chatbot può salvare questa sequenza di token ("Qual è la capitale dell'") in una memoria a breve termine (la cache KV) e inviare un'unica "richiesta di traduzione" invece di due richieste separate.
In sostanza, anziché generare una risposta da zero, vLLM consente alla cache KV di memorizzare i dati e trovare soluzioni più rapide per le nuove query simili a quelle già ricevute. L'elaborazione dei calcoli relativi a query simili in batch (piuttosto che singolarmente) migliora la velocità di trasmissione e ottimizza l'allocazione della memoria.
vLLM può contribuire a ottimizzare la memoria e ampliare la capacità di token per le batch più grandi e le operazioni long-context.
I vantaggi di vLLM per le aziende
In un mercato in cui l'hardware necessario per le applicazioni basate sugli LLM è molto costoso, vLLM consente alle aziende di ottenere risultati migliori con meno risorse.
La creazione di LLM affidabili e convenienti richiede una quantità significativa di potenza di elaborazione, risorse energetiche e competenze specialistiche. Di conseguenza, per molte aziende diventa difficile usufruire dei vantaggi offerti da un'IA più sicura, personalizzata e pronta al deployment.
vLLM e PagedAttention, l'algoritmo su cui è basato, puntano a risolvere queste difficoltà utilizzando in modo più efficiente l'hardware richiesto per supportare i carichi di lavoro dell'IA.
I vantaggi di vLLM
L'utilizzo di vLLM come server di inferenza per gli LMM offre svariati vantaggi:
Tempi di risposta più rapidi: secondo alcuni calcoli, vLLM può processare i dati con una velocità di trasmissione fino a 24 volte più elevata rispetto a Hugging Face Transformers, una libreria open source molto usata per gli LLM.
Costi ridotti per l'hardware: un utilizzo più efficiente delle risorse consente di ridurre il numero delle GPU necessarie per gestire l'elaborazione degli LLM. Per le organizzazioni che lavorano con LLM di dimensioni molto grandi (con centinaia di miliardi di parametri), vLLM può aiutare a mantenere l'efficienza. In particolare, vLLM può essere utilizzato insieme a tecniche come l'inferenza distribuita per ottenere il massimo dall'hardware esistente e ridurre i costi.
Scalabilità: vLLM organizza la memoria virtuale in modo che la GPU possa gestire più richieste contemporaneamente. Questo aspetto è particolarmente importante per le applicazioni di Agentic AI, che devono elaborare molte richieste simultanee per completare una singola attività in più fasi.
Privacy dei dati: il self-hosting di un LLM con vLLM consente di avere maggiore controllo sulla privacy e sull'utilizzo dei dati rispetto all'utilizzo di un LLM o un'applicazione di terze parti come ChatGPT.
Innovazione open source: il coinvolgimento della community nella manutenzione e nella gestione di vLLM permette di migliorare il codice in modo uniforme. Gli accessi e le modifiche del codice avvengono in modo trasparente, e ciò consente agli sviluppatori di utilizzare vLLM secondo le proprie esigenze.
Perché vLLM sta diventando la soluzione standard per migliorare le prestazioni degli LLM
PagedAttention è il principale algoritmo originato da vLLM, ma non è l'unica soluzione offerta. Tra le altre funzionalità disponibili per l'ottimizzazione delle prestazioni sono inclusi:
- PyTorch Compile/CUDA Graph, per migliorare la memoria GPU.
- Quantizzazione, per ridurre lo spazio in memoria necessario per eseguire i modelli.
- Parallelismo tensoriale, per suddividere i processi di elaborazione tra più GPU.
- Decodifica speculativa, per accelerare la generazione di testi grazie a un modello più piccolo per predire i token e un modello più grande per convalidare la previsione.
- Flash Attention, per migliorare l'efficienza dei modelli dei trasformatori.
Oltre alle funzionalità di ottimizzazione, vLLM offre anche flessibilità: funziona infatti con modelli linguistici grandi e piccoli e si integra con framework e modelli diffusi. Infine, la natura open source di vLLM consente la trasparenza del codice, la personalizzazione e la correzione rapida dei bug.
vLLM e llm-d
llm-d è un framework open source che integra e sfrutta le potenzialità di vLLM. Si tratta di una soluzione per eseguire l'inferenza distribuita ed è stata progettata per supportare le crescenti richieste di risorse da parte degli LLM.
In questo senso, se vLLM aiuta con la velocità, llm-d aiuta con la coordinazione. vLLM e llm-d collaborano per indirizzare il traffico attraverso il modello in modo intelligente e velocizzare l'elaborazione nel modo più efficiente possibile.
Gestisci l'IA con l'open source
Red Hat® AI sfrutta l'innovazione open source per superare le difficoltà legate all'utilizzo dell'IA per le aziende su larga scala.
Con Red Hat AI, hai accesso a Red Hat® AI Inference Server, così potrai ottimizzare l'inferenza dei modelli nel cloud ibrido per deployment più rapidi ed economici. Basato su vLLM, il server di inferenza massimizza l'utilizzo della GPU e accelera i tempi di risposta.
Scopri di più Red Hat AI Inference Server
Red Hat AI Inference Server include il repository Red Hat AI, una raccolta di modelli di terze parti convalidati e ottimizzati che consente la flessibilità dei modelli e promuove la coerenza tra i team. Con l'accesso al repository dei modelli di terze parti, le aziende possono accelerare i tempi di rilascio e ridurre gli ostacoli finanziari al successo dell'IA.
Vai al repository su Hugging Face
Scopri di più sui modelli convalidati da Red Hat AI
Red Hat AI si basa su tecnologie open source e su un ecosistema di partner caratterizzato da prestazioni, stabilità e capacità di supportare GPU su più infrastrutture.
Definizione della strategia aziendale per l'IA: una guida introduttiva
Leggi questa guida introduttiva per scoprire come Red Hat OpenShift AI e Red Hat Enterprise Linux AI possono accelerare il percorso di adozione dell'IA.