Incontra vLLM Una libreria di inferenza e servizio LLM open-source che accelera HuggingFace Transformers del 24x.

vLLM è una libreria open-source di inferenza e servizio che accelera HuggingFace Transformers del 24x.

I modelli di lingua di grandi dimensioni, o LLM, sono emersi come un avanzamento rivoluzionario nel campo dell’intelligenza artificiale (AI). Questi modelli, come GPT-3, hanno completamente rivoluzionato la comprensione del linguaggio naturale. Con la capacità di tali modelli di interpretare vaste quantità di dati esistenti e generare testi simili a quelli umani, questi modelli hanno un enorme potenziale per plasmare il futuro dell’AI e aprire nuove possibilità per l’interazione e la comunicazione uomo-macchina. Tuttavia, nonostante il enorme successo raggiunto dai LLM, una sfida significativa spesso associata a tali modelli è la loro inefficienza computazionale, che porta a una lenta performance anche sull’hardware più potente. Poiché questi modelli comprendono milioni e miliardi di parametri, la formazione di tali modelli richiede risorse computazionali, memoria e potenza di elaborazione estese, che non sono sempre accessibili. Inoltre, queste architetture complesse con tempi di risposta lenti possono rendere i LLM impraticabili per applicazioni in tempo reale o interattive. Di conseguenza, affrontare queste sfide diventa essenziale per sbloccare il pieno potenziale dei LLM e rendere i loro vantaggi più ampiamente accessibili.

Affrontando questo problema, i ricercatori dell’Università della California, Berkeley, hanno sviluppato vLLM, una libreria open-source che rappresenta un’alternativa più semplice, veloce e economica per l’infrazione e il servizio di LLM. L’organizzazione Large Model Systems (LMSYS) sta attualmente utilizzando la libreria per alimentare il loro Vicuna e Chatbot Arena. Passando a vLLM come loro backend, in contrasto con l’originale backend basato su HuggingFace Transformers, l’organizzazione di ricerca è riuscita a gestire il traffico di picco in modo efficiente (5 volte in più rispetto al passato) utilizzando risorse computazionali limitate e riducendo i costi operativi elevati. Attualmente, vLLM supporta diversi modelli di HuggingFace come GPT-2, GPT BigCode e LLaMA, per citarne alcuni. Raggiunge livelli di throughput che sono 24 volte superiori a quelli di HuggingFace Transformers, mantenendo la stessa architettura del modello e senza richiedere alcuna modifica.

Come parte della loro ricerca preliminare, i ricercatori di Berkeley hanno determinato che i problemi correlati alla memoria rappresentano il principale vincolo sulle prestazioni dei LLM. I LLM utilizzano token di input per generare i tensori di chiave e valore di attenzione, che vengono quindi memorizzati nella memoria GPU per generare i token successivi. Questi tensori di chiave e valore dinamici, noti come cache KV, occupano una parte sostanziale della memoria e la loro gestione diventa un compito gravoso. Per affrontare questa sfida, i ricercatori hanno introdotto il concetto innovativo di PagedAttention, un nuovo algoritmo di attenzione che estende l’idea convenzionale di paging nei sistemi operativi al servizio di LLM. PagedAttention offre un approccio più flessibile alla gestione dei tensori di chiave e valore memorizzandoli in spazi di memoria non contigui, eliminando la necessità di blocchi di memoria lunga continua. Questi blocchi possono essere recuperati in modo indipendente utilizzando una tabella dei blocchi durante il calcolo dell’attenzione, portando a un utilizzo più efficiente della memoria. L’adozione di questa tecnica intelligente riduce lo spreco di memoria a meno del 4%, ottenendo un utilizzo della memoria quasi ottimale. Inoltre, PagedAttention può raggruppare 5 volte più sequenze insieme, migliorando così l’utilizzo della GPU e il throughput.

PagedAttention offre il beneficio aggiuntivo della condivisione efficiente della memoria. Durante il campionamento parallelo, ovvero quando vengono creati contemporaneamente più sequenze di output da un singolo prompt, PagedAttention consente la condivisione di risorse computazionali e di memoria associate a quel prompt. Ciò viene realizzato utilizzando una tabella dei blocchi, dove diverse sequenze all’interno di PagedAttention possono condividere blocchi mappando blocchi logici allo stesso blocco fisico. Utilizzando questo meccanismo di condivisione della memoria, PagedAttention non solo minimizza l’utilizzo della memoria, ma garantisce anche la sicurezza della condivisione. Le valutazioni sperimentali condotte dai ricercatori hanno rivelato che il campionamento parallelo potrebbe ridurre l’utilizzo della memoria di un enorme 55%, risultando in un aumento del throughput del 2,2 volte.

In sintesi, vLLM gestisce efficacemente la gestione della memoria di chiave e valore di attenzione attraverso l’implementazione del meccanismo PagedAttention. Ciò comporta una performance di throughput eccezionale. Inoltre, vLLM si integra perfettamente con modelli HuggingFace ben noti e può essere utilizzato insieme a diversi algoritmi di decodifica, come il campionamento parallelo. La libreria può essere installata utilizzando un semplice comando pip ed è attualmente disponibile sia per l’infrazione offline che per il servizio online.