Che cos'è vLLM?

Copia URL

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. 

Scopri Red Hat AI

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.

Dai un'occhiata a vLLM Office Hours per stare al passo con gli ultimi sviluppi

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.

Scopri di più sull'inferenza IA

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à.

Come funziona l'IA in ambito aziendale?

Red Hat AI

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.

Cos'è Models-as-a-Service?

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. 

Scopri come distribuire Llama con vLLM

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. 

Scopri in che modo vLLM supporta l'inferenza per la community open source

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. 

Scopri di più su llm-d

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.

Sfoglia l'ecosistema dei partner

Risorsa

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.

Red Hat AI

Red Hat AI offre prodotti flessibili e convenienti che accelerano lo sviluppo e la distribuzione di soluzioni basate sull'IA negli ambienti di cloud ibrido.

Continua a leggere

Cos'è l'inferenza distribuita?

Con l'inferenza distribuita i modelli di IA elaborano i carichi di lavoro in modo più efficiente, suddividendo le attività di inferenza su un gruppo di dispositivi interconnessi.

Cos'è il Model Context Protocol (MCP)?

Scopri in che modo il Model Context Protocol (MCP) connette le applicazioni di IA a sorgenti di dati esterne, aiutandoti a creare flussi di lavoro più intelligenti.

Introduzione ad AIOps

AIOps è un'intelligenza artificiale per le operazioni IT con un approccio specifico all'automazione delle operazioni IT che si avvale del machine learning e di altre tecniche di IA avanzate.

AI/ML: risorse consigliate

Prodotto in evidenza

  • Red Hat OpenShift AI

    Una piattaforma di intelligenza artificiale (IA) che fornisce strumenti per sviluppare, addestrare, servire e monitorare rapidamente modelli e applicazioni abilitate all'intelligenza artificiale.

Articoli correlati