Cos'è llm-d?
llm-d è un framework open source nativo di Kubernetes che accelera l'inferenza distribuita dei modelli linguistici di grandi dimensioni (LLM) in modo scalabile.
In altre parole, quando un modello di IA riceve query complesse con molti dati, llm-d fornisce un framework che velocizza l'elaborazione.
llm-d è stato creato da Google, NVIDIA, IBM Research e CoreWeave. La community open source, intervenendo con i suoi aggiornamenti, contribuisce a migliorarne la tecnologia.
Come funziona llm-d?
I prompt degli LLM possono essere complessi e non uniformi. In genere, richiedono grandi risorse di elaborazione e storage per elaborare grandi quantità di dati.
llm-d presenta un'architettura modulare che può supportare la crescente domanda di risorse di modelli di ragionamento complessi e più grandi, come gli LLM.
Grazie alla sua architettura modulare, tutte le diverse componenti del carico di lavoro dell'IA possono operare sinergicamente o in autonomia, a seconda delle esigenze del modello. Ciò permette di ottenere un’inferenza del modello più rapida.
Potremmo paragonare llm-d a una maratona: ogni corridore controlla il proprio andamento. Ognuno arriva al traguardo in un momento diverso, ma tutti finiscono secondo il proprio ritmo. Se tutti dovessero completare la gara contemporaneamente, ci si troverebbe vincolati alle diverse esigenze specifiche degli altri corridori, come la resistenza, le pause per bere o il tempo dedicato all'allenamento. Questo complicherebbe la gestione.
Un'architettura modulare consente alle singole parti del processo di inferenza di lavorare al proprio ritmo per ottenere il risultato migliore nel minor tempo possibile. Inoltre, semplifica la correzione o l'aggiornamento di processi specifici in modo indipendente.
Questa metodologia di elaborazione dei modelli consente a llm-d di gestire le richieste di inferenza LLM in modo scalabile. Permette inoltre agli utenti di andare oltre le implementazioni su singolo server e utilizzare l'inferenza dell'IA generativa (IA gen) in tutta l'azienda.
L'architettura modulare llm-d è composta da:
- Kubernetes: una piattaforma di orchestrazione open source basata su container che automatizza molti dei processi manuali necessari per il deployment, la gestione e la scalabilità delle applicazioni containerizzate.
- vLLM: un server di inferenza open source che accelera i risultati delle applicazioni di IA gen.
- Inference Gateway (IGW): un'estensione dell'API Gateway di Kubernetes che ospita funzionalità quali il routing dei modelli, la priorità di servizio e capacità di bilanciamento del carico "intelligenti".
Questa tipologia di architettura modulare e accessibile rende llm-d una piattaforma ottimale per l'inferenza LLM distribuita in modo scalabile.
4 elementi chiave da considerare per l'implementazione dell'IA
Cosa sono i percorsi collaudati?
I "percorsi collaudati" sono specifici "modelli" o strategie per la creazione di inferenze distribuite in modo scalabile con llm-d. Questi percorsi sono soluzioni comprovate e replicabili dalla community open source di llm-d e sono indicati come:
- Scheduler intelligente dell'inferenza: la pianificazione intelligente dell'inferenza gestisce decisioni complesse relative al routing dei token. Le sue funzionalità di routing basate sui token (note anche come bilanciamento del carico "intelligente") tengono conto della cache dei valori chiave (KV) del modello, della latenza, della funzionalità modulare e dell'osservabilità per implementare algoritmi di punteggio e filtraggio che accelerano l'inferenza.
- Servizi di prefill e decodifica non aggregati: i servizi di prefill (elaborazione dei prompt) e decodifica (generazione dei token) impongono requisiti computazionali diversi ai server di inferenza. Quando le due operazioni sono disaggregate (separate), ciascuna può funzionare ed essere adattata in modo scalabile e indipendente. Ciò impedisce che problemi isolati, come le difficoltà legate alla latenza, influenzino tutti i modelli contemporaneamente.
- Ampio parallelismo tra modelli esperti: i modelli Mixture-of-Experts (MoE) si suddividono in modelli con competenze specifiche in grado di gestire singolarmente i prompt. Anziché affidarsi a un unico modello complesso che si basa sull'intero database per rispondere a ogni richiesta, llm-d identifica il modello "esperto" più adatto a rispondere alla richiesta specifica. Paragonabile alla funzione "trova" per individuare immediatamente una parola in un documento, anziché leggere l’intero testo. Questo approccio accelera l'inferenza e sfrutta le GPU in modo più efficiente.
Oltre ai percorsi collaudati, llm-d utilizza strumenti di inferenza intelligenti per aumentare l'efficienza dell'inferenza:
Routing basato sui token: il variare delle esigenze computazionali di un token determina il suo percorso specifico durante l'inferenza. Il traffico di inferenza viene instradato in base alla lunghezza dei token, alla profondità della coda e alle previsioni di accesso alla cache per ridurre la latenza ed evitare lunghe interruzioni.
Tornando all'analogia della maratona, un corridore più lento (modello complesso) potrebbe scegliere un percorso con meno salite (bilanciamento del carico intelligente) per arrivare al traguardo (inferenza) il più velocemente possibile.
- Cache KV condivisa e riutilizzo: la cache KV condivisa riconosce i token ripetuti per ridurre il tempo necessario alla decodifica di ciascun valore chiave.
Ad esempio, un prompt relativo alla capitale della Spagna dovrà essere decodificato in 2 token: "Qual è la capitale" e "della Spagna". Quando viene richiesta la capitale di un altro stato ("Qual è la capitale della Francia?"), il modello sa come elaborare il primo token ("Qual è la capitale") poiché è stato calcolato in precedenza. In questo modo si evitano calcoli di precompilazione ridondanti e si accelera l'inferenza utilizzando meno storage GPU per rispondere a ogni prompt. - Deployment modulare e osservabilità: monitorare, adattare con scalabilità e aggiornare modelli modulari in modo indipendente l'uno dall'altro. Anziché una “scatola nera” che limita la visibilità, la flessibilità modulare offre informazioni su ogni componente del framework. Ciò permette di adattare i modelli più semplicemente e rapidamente e di allineare i carichi di lavoro dell'IA con le metodologie DevOps e GitOps tipiche odierne.
Componenti principali di llm-d
llm-d è stato realizzato dalla community open source, motivo per cui la sua funzionalità dipende da vari elementi e collaborazioni. I suoi componenti principali includono:
- Framework nativo Kubernetes: llm-d è progettato per funzionare all'interno di una piattaforma Kubernetes e sfruttarne tutti i vantaggi. Per renderlo accessibile, il framework llm-d è stato progettato per piattaforme distribuite basate su Kubernetes (come Red Hat® OpenShift®). Questo approccio nativo Kubernetes fornisce il livello di policy, sicurezza e osservabilità necessario per applicare l'inferenza IA gen nell’intera organizzazione.
- Inferenza LLM distribuita: l'inferenza distribuita assegna una richiesta di inferenza complessa a più server e dispositivi edge. Dopodiché, ogni funzione lavora in parallelo per creare un output, ottenendo servizi basati su IA più veloci e scalabili. llm-d utilizza progetti della community open source, come Envoy, vLLM e Kserve, per ottenere un'inferenza distribuita.
- Progetto open source supportato da una community: le community open source offrono la possibilità a ogni contributore di realizzare i progetti migliori rendendo accessibili a tutti le migliorie apportate alle tecnologie. Questo progetto open source si basa sulle proposte dei leader del settore quali Google, IBM, CoreWeave, NVIDIA e Red Hat.
Questi componenti consentono alle aziende di utilizzare llm-d per adattare con scalabilità gli scenari di utilizzo dell'IA gen rimuovendo le difficoltà legate a latenza, complessità o costi elevati.
In che modo llm-d si differenzia dagli altri metodi di elaborazione degli LLM?
I prompt tipici dei modelli di IA seguono uno schema: spesso sono brevi e replicati. Pertanto, ogni prompt riceve lo stesso supporto e le stesse risorse in quello che talvolta viene definito bilanciamento del carico "round-robin".
Tuttavia, gli LLM sono diversi dai carichi di lavoro tradizionali. Gli LLM richiedono lunghe fasi di decodifica, si basano sul riutilizzo della cache dei prefissi e hanno esigenze diverse in termini di elaborazione e memoria. Per questi motivi, il bilanciamento del carico tipico di Kubernetes non soddisfa le complesse esigenze degli LLM.
Inoltre, la maggior parte delle organizzazioni implementa gli LLM con scarsa visibilità, il che limita il controllo sui propri carichi di lavoro di IA. Ciò causa uno sfruttamento insufficiente delle GPU, latenza e una scarsa flessibilità delle architetture che risultano difficilmente scalabili. I sistemi di inferenza generici basati su LLM tendono a ignorare la struttura dei prompt, il conteggio dei token e gli stati della cache, causando uno spreco di risorse.
Ad esempio, i prompt di retrieval augmented generation (RAG) richiedono un diverso bilanciamento del carico rispetto a quelli che richiedono ragionamento o riflessione. Quando i carichi di lavoro faticano a soddisfare tutti i diversi prompt che richiedono un bilanciamento del carico unico, il processo di inferenza rallenta.
Un’analogia può esemplificare: il panificio dietro casa prepara torte straordinarie. Ogni giorno sforna torte di mele, mirtilli e noci in maniera impeccabile. Ma quando riceve ordini per brioche, caramelle o torte nuziali, il processo di lavorazione dei panettieri risulta inefficiente. Completano meno ordini e alcune attività vengono trascurate. Ciò di cui il panificio ha bisogno è un capo pasticcere in grado di distribuire i compiti per soddisfare sia gli ordini di prodotti da forno complessi che quelli quotidiani di torte. Il capo pasticcere è in grado di coordinare la complessa programmazione delle attività per preparare gli ordini, che si tratti di torte o altro, nel modo più efficiente possibile.
Quando si tratta di configurazione della tecnologia IA, llm-d svolge il ruolo del capo pasticcere.
llm-d offre una piattaforma di inferenza IA compatibile con LLM, ovvero predisposta per gestire l'elevata varianza delle caratteristiche delle richieste di prompt LLM. Il framework open source rende possibile monitorare le prestazioni in modo prevedibile, ottimizzare i costi e soddisfare le aspettative degli utenti. llm-d trasforma l'inferenza LLM in un'architettura nativa Kubernetes per un framework di inferenza gestibile, simile a un microservizio.
Quando gli utenti non possono ricorrere facilmente all'inferenza in modo scalabile, i tempi di rilascio aumentano e gli scenari di utilizzo dell'IA gen sono più difficili da applicare nell'intera organizzazione.
I vantaggi di llm-d
llm-d rende più accessibile il ridimensionamento dei modelli disaggregati e aiuta i team a raggiungere obiettivi di IA più ambiziosi in minor tempo e con meno risorse.
- Qualità e prestazioni del modello: llm-d utilizza strumenti come il bilanciamento del carico intelligente per aumentare la velocità dei tempi di risposta dell'inferenza LLM. Il framework llm-d elimina i tipici ostacoli all'inferenza LLM, come i token di inferenza ripetitivi e le interruzioni della scatola nera. La rimozione di questi ostacoli migliora le prestazioni del modello e la produttività degli sviluppatori.
- Efficienza in termini di costi: grazie alla sua modularità, llm-d consente a un numero maggiore di utenti di accedere contemporaneamente ai carichi di lavoro dell'IA e ottenere risultati più rapidamente. Ciò permette agli ingegneri e agli sviluppatori di ottenere il massimo dai propri modelli e di utilizzare le GPU in modo più efficace. Aumentando l'accessibilità e la velocità, i team possono destinare tempo e risorse ad altre attività.
- Controllo: llm-d utilizza il servizio disaggregato, che introduce un nuovo livello di flessibilità per l'inferenza LLM. Separando le diverse fasi dell'inferenza (prefill e decodifica), le componenti mobili possono funzionare in autonomia e simultaneamente velocizzando l'inferenza.
Il ruolo di Red Hat
La priorità di Red Hat AI è migliorare l'accesso all'inferenza scalabile dell'IA gen.
La nostra piattaforma di IA utilizza vLLM per soddisfare la crescente complessità delle esigenze di inferenza e delle aspettative delle aziende.
Red Hat AI si affida a llm-d per supportare più efficacemente i carichi di lavoro dell'IA per le aziende in modo scalabile. Sfruttando le collaudate capacità di orchestrazione di Kubernetes, llm-d integra funzionalità avanzate di inferenza nella nostra infrastruttura esistente di IA per le aziende.
In linea con i principi e i risultati offerti dall’open source, llm-d rispecchia la visione di Red Hat poiché garantisce l’accessibilità e la compatibilità con tutti i modelli, gli acceleratori e le tipologie di cloud.
Cos'è llm-d e a cosa serve?
Osserviamo una tendenza significativa: sempre più organizzazioni utilizzano l'infrastruttura dei modelli linguistici di grandi dimensioni (LLM) internamente.