mozzicone Il futuro dell'inferenza serverless per modelli linguistici di grandi dimensioni - Unite.AI
Seguici sui social

Intelligenza Artificiale

Il futuro dell'inferenza serverless per modelli linguistici di grandi dimensioni

mm

Pubblicato il

 on

I recenti progressi nei modelli linguistici di grandi dimensioni (LLM) come GPT-4 e PaLM hanno portato a capacità di trasformazione nei compiti del linguaggio naturale. Gli LLM vengono incorporati in varie applicazioni come chatbot, motori di ricerca e assistenti di programmazione. Tuttavia, servire gli LLM su larga scala rimane impegnativo a causa dei loro sostanziali requisiti di GPU e memoria.

Gli approcci per superare questo problema generalmente rientrano in due categorie principali:

  1. Tecniche di compressione dei modelli

Queste tecniche mirano a ridurre le dimensioni del modello mantenendo la precisione. 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'ingombro della memoria.
  • Distillazione della conoscenza – Addestrare un modello di “studente” più piccolo per imitare un modello di “insegnante” di grandi dimensioni. Il modello più piccolo viene quindi utilizzato per l'inferenza.
  1. Esecuzione selettiva

Piuttosto che modelli compressi, queste tecniche eseguono selettivamente solo parti del modello per inferenza:

  • Attivazioni sparse – Saltare il calcolo su zero attivazioni.
  • Calcolo condizionale – Eseguendo solo determinati livelli condizionati sull'input.

Sul lato complementare rispetto al lato dell'architetto del software; per consentire un'implementazione più rapida dei LLM i ricercatori hanno proposto sistemi di inferenza serverless. Nelle architetture serverless, gli LLM sono ospitati su cluster 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 più importanti includono Amazon SageMaker, Microsoft Azure ML e opzioni open source come KServe.

Nonostante la promessa di LLM serverless, i sistemi esistenti presentano elevati costi di latenza che peggiorano l’esperienza dell’utente nelle applicazioni interattive:

  1. Download costosi di checkpoint: Gli LLM hanno grandi dimensioni di memoria, spesso da gigabyte a terabyte. Il download dei checkpoint dall'archiviazione remota richiede molto tempo, impiegando più di 20 secondi anche con reti ottimizzate.
  2. Caricamento del checkpoint inefficiente: anche con l'archiviazione SSD locale, il caricamento dei checkpoint nella memoria della GPU richiede decine di secondi a causa di fattori quali la deserializzazione e l'allocazione del tensore. Ciò aggiunge ritardi significativi oltre il tempo di avvio del contenitore.

Per affrontare questi problemi, i ricercatori del MIT hanno proposto CSAIL LLM senza server, un sistema innovativo che consente inferenza serverless a bassa latenza per LLM. ServerlessLLM migliora la localizzazione sfruttando la capacità e la larghezza di banda abbondanti ma sottoutilizzate nello storage server multilivello per l'implementazione LLM.

Panoramica dei sistemi di inferenza serverless LLM

Panoramica dei sistemi di inferenza serverless LLM

Innovazioni chiave in ServerlessLLM ServerlessLLM incorpora diversi nuovi progetti per ridurre drasticamente i tempi di caricamento LLM in ambienti serverless:

  1. Caricamento rapido del checkpoint
  • Formato checkpoint ottimizzato per il caricamento che consente una lettura sequenziale rapida e un efficiente indirizzamento del tensore in memoria.
  • Pipeline di caricamento del checkpoint multilivello che massimizza l'utilizzo della larghezza di banda su rete, SSD, DRAM e memoria GPU attraverso tecniche come I/O diretto, trasferimento di memoria bloccato e parallelismo.
  1. Migrazione in tempo reale per l'inferenza basata sulla località
  • Migrazione basata su token che trasmette solo i token di richiesta essenziali sulla rete, evitando un trasferimento lento degli snapshot.
  • Migrazione in due fasi che consente un'inferenza ininterrotta ricalcolando in modo asincrono gli stati della cache sul server di destinazione prima di trasferire i token finali.
  1. Allocazione dei server ottimizzata per la latenza
  • Modelli accurati per stimare i tempi di caricamento del checkpoint da ciascun livello e i tempi di migrazione per un server.
  • Scheduler sensibile alla località che seleziona i server riducendo al minimo la latenza di avvio prevista utilizzando i modelli di cui sopra.

Queste ottimizzazioni consentono a ServerlessLLM di ridurre i tempi di caricamento 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.

Analizziamo più a fondo il modo in cui ServerlessLLM ottiene questi significativi miglioramenti delle prestazioni.

Accelerazione del caricamento del checkpoint

Il primo grande collo di bottiglia risolto da ServerlessLLM è l'elevata latenza nel caricamento dei checkpoint LLM dallo storage alla memoria della GPU.

Per abilitare il caricamento rapido del checkpoint, ServerlessLLM introduce:

  1. Formato checkpoint ottimizzato per il caricamento

I checkpoint standard utilizzati da framework come PyTorch sono progettati per l'addestramento e il debug dei modelli. Ma per l'inferenza serverless, i checkpoint sono di sola lettura e vi si accede ripetutamente.

Per ottimizzare un utilizzo ad alta intensità di lettura, ServerlessLLM converte i checkpoint in un formato con due proprietà chiave:

  • Lettura sequenziale basata su blocchi: i tensori sono raggruppati in file binari per GPU, facilitando letture sequenziali di grandi dimensioni.
  • Indirizzamento efficiente dei tensori: un indice mappa i nomi dei tensori sugli offset della memoria, consentendo il ripristino diretto in memoria senza deserializzazione.
  1. Pipeline di caricamento del checkpoint multilivello

ServerlessLLM sfrutta l'architettura a più livelli dei server GPU, con supporti di archiviazione come SSD e rete che si collega alle GPU tramite PCIe, NVMe, ecc.

Il sistema incorpora una pipeline a più fasi per massimizzare l'utilizzo della larghezza di banda su tutti i livelli:

  • I blocchi di dati in memoria vengono allocati utilizzando la memoria bloccata per un trasferimento veloce della GPU.
  • L'I/O diretto viene utilizzato per letture SSD efficienti senza costi generali di memorizzazione nella cache.
  • Più thread leggono diversi blocchi di archiviazione in parallelo.
  • Il coordinamento 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 rispetto a PyTorch/TensorFlow, riducendo i tempi di avvio per LLM di grandi dimensioni da più di un minuto a meno di 10 secondi.

Inferenza LLM basata sulla località tramite migrazione in tempo reale

Con il caricamento accelerato, ServerlessLLM affronta una nuova sfida: come sfruttare i checkpoint precaricati per la località senza interrompere le inferenze in corso su server occupati?

ServerlessLLM introduce una nuova tecnica: migrazione in tempo reale dell'inferenza LLM su server GPU. Ciò consente di trasferire senza problemi l'esecuzione ai server con checkpoint locali disponibili.

Fattori chiave della migrazione LLM in tempo reale:

  1. Migrazione basata su token

Invece di creare un'istantanea dell'intero stato del modello, ServerlessLLM migra solo i token di richiesta minimi sulla rete. Ciò trasferisce ordini di grandezza in meno di dati rispetto alle istantanee.

  1. Migrazione in due fasi

Il server di destinazione precalcola in modo asincrono gli stati della cache dai token 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 in tempo reale è fondamentale per evitare ritardi nelle code quando si ottiene un’allocazione basata sulla località.

Pianificazione del modello ottimizzato per la latenza

Per ridurre al minimo la latenza end-to-end, ServerlessLLM migliora lo scheduler per ottimizzare la selezione del server considerando la località. Ciò comporta:

  1. Stimatore del tempo di caricamento a grana fine

I modelli prevedono i tempi di caricamento dalla rete, dalle cache SSD e dalla memoria per ciascun server utilizzando metriche come ritardi delle code, dimensioni dei modelli e larghezza di banda misurata.

  1. Previsione accurata del tempo di migrazione

Lo scheduler stima i tempi di migrazione per i server utilizzando il numero di token di prompt e di output. Tiene traccia dell'avanzamento dell'inferenza in modo asincrono per evitare sovraccarico.

  1. Allocazione basata sulla località

Per ogni richiesta di inferenza, lo scheduler valuta i tempi di caricamento e migrazione stimati tra i server. Seleziona il server riducendo al minimo la latenza di avvio prevista.

Lo scheduler mantiene inoltre le code delle attività del server e sfrutta un archivio fortemente coerente per la tolleranza agli errori. Insieme, queste innovazioni riducono le spese generali di pianificazione massimizzando al tempo stesso i vantaggi della località.

Valutazione delle prestazioni ServerlessLLM

Esperimenti completi valutano l'efficacia end-to-end di ServerlessLLM rispetto ai sistemi esistenti utilizzando modelli reali come OPT-175B e carichi di lavoro modellati in base alle tracce di Azure.

Risultati chiave:

  • Microbenchmark: ServerlessLLM accelera il caricamento del checkpoint di 3.6-8.2 volte su PyTorch/TensorFlow. Satura completamente la larghezza di banda di archiviazione, anche per RAID NVMe all'avanguardia.
  • Programmazione: ServerlessLLM riduce la latenza di allocazione di 4-12 volte rispetto alla pianificazione casuale, evidenziando i vantaggi della consapevolezza della località. La migrazione in tempo reale previene i ritardi nelle code.
  • Servizio end-to-end: Per modelli di grandi dimensioni come OPT-30B, ServerlessLLM migliora la latenza del 99° percentile di 28-200 volte rispetto a sistemi come Kserve e Ray Serve. Migliora anche l’efficienza delle risorse.

Questi vantaggi sostanziali dimostrano la capacità di ServerlessLLM di superare i colli di bottiglia nelle implementazioni serverless esistenti e di sbloccare la potenza dei LLM per i servizi interattivi.

Le ottimizzazioni introdotte in ServerlessLLM, come il caricamento multilivello, la migrazione in tempo reale e la pianificazione basata sulla latenza, possono aiutare a definire la progettazione delle future architetture serverless. La capacità del sistema di ridurre drasticamente i tempi di caricamento e di avvio sblocca l'implementazione scalabile di modelli linguistici di grandi dimensioni per applicazioni pratiche.

Guardando al futuro: sfide continue

Pur rappresentando un significativo passo avanti, ServerlessLLM rappresenta solo il primo passo nell'ottimizzazione dell'inferenza serverless per LLM di grandi dimensioni. Rimangono diversi problemi aperti, tra cui:

  • Prevedere la domanda del modello in tempo reale per guidare il provisioning e il precaricamento
  • Posizionamento intelligente dei checkpoint sui server per massimizzare gli accessi alla cache
  • Algoritmi di pianificazione scalabili in modo efficiente per gestire cluster più grandi
  • Garantire l'equità nell'allocazione delle risorse tra modelli e sviluppatori
  • Generalizzare innovazioni come la migrazione in tempo reale ad altri carichi di lavoro serverless

Affrontare queste aree può aiutare a consolidare la promessa di LLM serverless e a rendere le loro capacità ancora più accessibili. Al di là delle ottimizzazioni a livello di sistema, anche la riduzione dell’enorme impronta di carbonio e dei potenziali danni dei modelli di grandi dimensioni rimane una priorità urgente.

ServerlessLLM dimostra che esiste un enorme margine per l'innovazione nelle architetture serverless di prossima generazione per i carichi di lavoro AI. Man mano che i LLM continuano a crescere in dimensioni e popolarità, soluzioni come ServerlessLLM che ne sbloccano la scalabilità avranno un impatto ancora maggiore. La confluenza della ricerca sui sistemi e sull’apprendimento automatico può introdurre nuovi paradigmi nel servire, condividere e scalare i modelli di intelligenza artificiale in modo sicuro e sostenibile.

Ho trascorso gli ultimi cinque anni immergendomi nell'affascinante mondo del Machine Learning e del Deep Learning. La mia passione e competenza mi hanno portato a contribuire a oltre 50 diversi progetti di ingegneria del software, con un focus particolare su AI/ML. La mia continua curiosità mi ha anche attirato verso l'elaborazione del linguaggio naturale, un campo che non vedo l'ora di esplorare ulteriormente.