Intelligenza artificiale
Il Futuro dell’Inferenza Serverless per Modelli Linguistici di Grande Scala

Recenti progressi nei modelli linguistici di grande scala (LLM) come GPT-4, PaLM hanno portato a capacità trasformative nei compiti di linguaggio naturale. Gli LLM stanno essere incorporati in varie applicazioni come chatbot, motori di ricerca e assistenti di programmazione. Tuttavia, servire gli LLM su larga scala rimane una sfida a causa delle loro sostanziali esigenze di GPU e memoria.
Gli approcci per superare questo si dividono generalmente in due categorie principali:
- Tecniche di Compressione del Modello
Queste tecniche mirano a ridurre le dimensioni del modello mantenendo l’accuratezza. Gli approcci comuni includono:
- Potatura – Rimozione dei parametri ridondanti o meno importanti dal modello. Ciò crea un modello sparso con meno parametri.
- Quantizzazione – Utilizzo di numeri a precisione inferiore come int8 o bfloat16 per rappresentare i pesi invece di fp32 o fp16. Ciò riduce l’impronta di memoria.
- Distillazione della Conoscenza – Addestramento di un modello “studente” più piccolo per imitare un modello “insegnante” più grande. Il modello più piccolo viene quindi utilizzato per l’inferenza.
- Esecuzione Selettiva
Piuttosto che utilizzare modelli compressi, queste tecniche eseguono selettivamente solo parti del modello per inferenza:
- Attivazioni sparse – Saltare il calcolo sulle attivazioni zero.
- Calcolo condizionale – Esecuzione di solo alcuni strati condizionati all’input.
Sul lato complementare rispetto all’architettura software; per consentire una distribuzione più rapida degli LLM, i ricercatori hanno proposto sistemi di inferenza serverless. In architetture serverless, gli LLM sono ospitati su cluster di GPU condivisi e allocati dinamicamente in base alla domanda. Ciò consente un utilizzo efficiente delle GPU e riduce i costi per gli sviluppatori. Le implementazioni prominenti includono Amazon SageMaker, Microsoft Azure ML e opzioni open-source come KServe.
Nonostante la promessa degli LLM serverless, i sistemi esistenti presentano sovraccarichi di latenza che degradano l’esperienza utente nelle applicazioni interattive:
- Download dei checkpoint costosi: gli LLM hanno un’impronta di memoria di grandi dimensioni, spesso di gigabyte o terabyte. Il download dei checkpoint da archiviazione remota è dispendioso in termini di tempo, richiedendo oltre 20 secondi anche con reti ottimizzate.
- Caricamento dei checkpoint inefficiente: anche con archiviazione SSD locale, il caricamento dei checkpoint nella memoria GPU richiede decine di secondi a causa di fattori come la deserializzazione dei tensori e l’allocazione. Ciò aggiunge ritardi significativi oltre il tempo di avvio del contenitore.
Per affrontare questi problemi, i ricercatori del MIT CSAIL hanno proposto ServerlessLLM, un sistema innovativo che raggiunge un’inferenza serverless a bassa latenza per gli LLM. ServerlessLLM migliora la località sfruttando la capacità e la larghezza di banda abbondanti ma inutilizzate nell’archiviazione a più livelli del server per il deploy degli LLM.
Innovazioni chiave in ServerlessLLM ServerlessLLM incorpora diversi progetti innovativi per ridurre i tempi di caricamento degli LLM in ambienti serverless:
- Caricamento rapido dei checkpoint
- Formato di checkpoint ottimizzato per il caricamento che consente una lettura sequenziale rapida e un indirizzamento efficiente dei tensori in memoria.
- Pipeline di caricamento dei checkpoint a più livelli che massimizza l’utilizzo della larghezza di banda attraverso tecniche come I/O diretto, trasferimento di memoria fissata e parallelismo.
- Migrazione live per inferenza guidata dalla località
- Migrazione basata su token che trasmette solo i token di prompt essenziali sulla rete, evitando il trasferimento lento dello snapshot.
- Migrazione a due fasi che consente un’inferenza ininterrotta ricomputando asincronicamente gli stati della cache sul server di destinazione prima di trasferire i token finali.
- Allocazione del server ottimizzata per la latenza
- Modelli precisi per stimare i tempi di caricamento dei checkpoint da ogni livello e i tempi di migrazione per un server.
- Pianificatore consapevole della località che seleziona i server che minimizzano la latenza di avvio prevista utilizzando i modelli sopra.
Queste ottimizzazioni consentono a ServerlessLLM di ridurre i tempi di caricamento degli LLM di 4-8 volte e i tempi di avvio end-to-end di oltre 25 volte rispetto ai sistemi esistenti come PyTorch, TensorFlow e KServe.
Accelerare il Caricamento dei Checkpoint
Il primo grande collo di bottiglia affrontato da ServerlessLLM è la latenza elevata del caricamento dei checkpoint degli LLM dalla memoria di archiviazione alla memoria GPU.
Per abilitare il caricamento rapido dei checkpoint, ServerlessLLM introduce:
- Formato di checkpoint ottimizzato per il caricamento
I checkpoint standard utilizzati da framework come PyTorch sono progettati per l’addestramento del modello e il debug. Ma per l’inferenza serverless, i checkpoint sono in sola lettura e vengono acceduti ripetutamente.
Per ottimizzare per un utilizzo così intensivo in lettura, ServerlessLLM converte i checkpoint in un formato con due proprietà chiave:
- Lettura sequenziale a chunk: i tensori vengono raggruppati in file binari per GPU, facilitando letture sequenziali grandi.
- Indirizzamento efficiente dei tensori: un indice mappa i nomi dei tensori agli offset di memoria, consentendo il ripristino diretto in memoria senza deserializzazione.
- Pipeline di caricamento dei checkpoint a più livelli
ServerlessLLM sfrutta l’architettura a più livelli dei server GPU, con supporti di archiviazione come SSD e reti che si connettono alle GPU tramite PCIe, NVMe, ecc.
Il sistema incorpora una pipeline a più fasi per massimizzare l’utilizzo della larghezza di banda attraverso tutti i livelli:
- I chunk di dati in memoria vengono allocati utilizzando la memoria fissata per un trasferimento GPU rapido.
- Viene utilizzato l’I/O diretto per letture efficienti degli SSD senza overhead di caching.
- Vengono letti in parallelo chunk di archiviazione diversi da più thread.
- La coordinazione tra le fasi avviene tramite code di attività asincrone.
Insieme, ciò consente di saturare la capacità di larghezza di banda anche dei livelli più veloci come NVMe RAID. Gli esperimenti rivelano che ServerlessLLM raggiunge un caricamento 6-8 volte più veloce di PyTorch/TensorFlow, riducendo i tempi di avvio per grandi LLM da oltre un minuto a meno di 10 secondi.
Inferenza LLM Guidata dalla Località tramite Migrazione Live
Con il caricamento accelerato, ServerlessLLM affronta una nuova sfida – come sfruttare i checkpoint pre-caricati per la località senza interrompere le inferenze in corso sui server occupati?
ServerlessLLM introduce una tecnica innovativa – la migrazione live dell’inferenza LLM tra server GPU. Ciò consente di trasferire in modo trasparente l’esecuzione ai server con checkpoint locali disponibili.
Principali abilitatori della migrazione live LLM:
- Migrazione basata su token
Invece di eseguire lo snapshot dello stato del modello intero, ServerlessLLM migra solo i token di prompt minimi sulla rete. Ciò trasferisce meno dati di diversi ordini di grandezza rispetto agli snapshot.
- Migrazione a due fasi
Il server di destinazione precomputa asincronicamente gli stati della cache dai token di prompt. Una volta pronto, il server di origine trasferisce i token finali prima di rilasciare le risorse. Ciò impedisce stalli nell’inferenza.
Gli esperimenti rivelano che la migrazione basata su token riduce i tempi di migrazione da decine di secondi a meno di un secondo anche per sequenze lunghe. La migrazione live è cruciale per prevenire ritardi di coda nel raggiungimento dell’allocazione guidata dalla località.
Pianificazione della LLM Ottimizzata per la Latenza
Per minimizzare la latenza end-to-end, ServerlessLLM migliora il pianificatore per ottimizzare la selezione del server considerando la località. Ciò include:
- Stimatore del tempo di caricamento a grana fine
I modelli predicono i tempi di caricamento dalla rete, dalla cache SSD e dalla memoria per ogni server utilizzando metriche come ritardi di coda, dimensioni del modello e larghezza di banda misurata.
- Predittore del tempo di migrazione accurato
Il pianificatore stima i tempi di migrazione per i server utilizzando il numero di token di prompt e di output. Traccia il progresso dell’inferenza in modo asincrono per evitare overhead.
- Allocazione consapevole della località
Per ogni richiesta di inferenza, il pianificatore valuta i tempi di caricamento e di migrazione stimati tra i server. Seleziona il server che minimizza la latenza di avvio prevista.
Il pianificatore mantiene inoltre le code di attività del server e sfrutta un archivio fortemente coerente per la tolleranza ai guasti. Insieme, queste innovazioni riducono gli overhead di pianificazione mentre massimizzano i benefici della località.
Valutazione delle Prestazioni di ServerlessLLM
Esperimenti completi misurano l’efficacia end-to-end di ServerlessLLM rispetto ai sistemi esistenti utilizzando modelli reali come OPT-175B e carichi di lavoro modellati su tracce di Azure.
Risultati chiave:
- Microbenchmark: ServerlessLLM accelera il caricamento dei checkpoint di 3,6-8,2 volte rispetto a PyTorch/TensorFlow. Satura completamente la larghezza di banda di archiviazione, anche per il RAID NVMe all’avanguardia.
- Pianificazione: ServerlessLLM riduce la latenza di allocazione di 4-12 volte rispetto alla pianificazione casuale, evidenziando i benefici della consapevolezza della località. La migrazione live impedisce ritardi di coda.
- Servizio end-to-end: Per modelli grandi come OPT-30B, ServerlessLLM migliora la latenza al 99° percentile di 28-200 volte rispetto a sistemi come KServe e Ray Serve. Migliora anche l’efficienza delle risorse.
Questi guadagni sostanziali dimostrano la capacità di ServerlessLLM di superare i collo di bottiglia nei sistemi serverless esistenti e sbloccare il potere degli LLM per servizi interattivi.
Le ottimizzazioni introdotte in ServerlessLLM, come il caricamento a più livelli, la migrazione live e la pianificazione guidata dalla latenza, possono aiutare a informare la progettazione di future architetture serverless. La capacità del sistema di ridurre i tempi di caricamento e di avvio sblocca la distribuzione scalabile di grandi modelli linguistici per applicazioni pratiche.
Guardando Avanti: Sfide in Corso
Sebbene un grande passo avanti, ServerlessLLM rappresenta solo il primo passo nell’ottimizzazione dell’inferenza serverless per LLM massicci. Rimangono diversi problemi aperti, tra cui:
- Prevedere la domanda del modello in tempo reale per guidare la fornitura e il pre-caricamento
- Collocare intelligentemente i checkpoint tra i server per massimizzare i colpi di cache
- Scalare efficientemente gli algoritmi di pianificazione per gestire cluster più grandi
- Garantire l’equità nell’allocazione delle risorse tra modelli e sviluppatori
- Generalizzare innovazioni come la migrazione live ad altri carichi di lavoro serverless
Affrontare queste aree può aiutare a costruire sulla promessa degli LLM serverless e rendere le loro capacità ancora più accessibili. Oltre alle ottimizzazioni a livello di sistema, ridurre l’impronta carboniosa e i potenziali danni dei grandi modelli rimane una priorità urgente.
ServerlessLLM dimostra che esiste un’enorme possibilità di innovazione nelle architetture serverless di prossima generazione per carichi di lavoro AI. Man mano che gli LLM continuano a crescere in dimensioni e popolarità, soluzioni come ServerlessLLM che sbloccano la loro scalabilità diventeranno ancora più impattanti. La convergenza della ricerca sui sistemi e sul machine learning può introdurre nuovi paradigmi nel servizio, condivisione e scalabilità dei modelli AI in modo sicuro e sostenibile.











