I ricercatori dell’Università di Rice e Startup XMAD.AI hanno un galleggiante dettagliato a lunghezza dinamica (DFLOAT11), una tecnica che raggiunge circa il 30% di compressione senza perdita per i pesi del modello di linguaggio di grandi dimensioni archiviati nel comune .
Presentato in un documento Arxiv Paper questo mese , il metodo riduce i requisiti di memoria del modello garantendo al contempo le uscite sono bit-for-bit identiche all’originale. Questo approccio riduce significativamente la barriera hardware per il funzionamento dei modelli più grandi; Il team ha dimostrato il modello Llama-3.1-405b da 810 GB di Meta con otto GPU NVIDIA da 80 GB, una configurazione
DFloat11 works by addressing a known inefficienza statistica nel formato numerico BF16, che utilizza 1 bit di segno, 8 bit esponenti e 7 bit di mantissa. Mentre 8 bit (256 possibili valori) sono allocati per l’esponente, l’analisi dei ricercatori ha confermato che il contenuto di informazioni effettivi (entropia di Shannon) attraverso vari LLM come Llama 3, Qwen 2.5 e Gemma 3 sono in media solo circa 2,6 bit. Molti valori delle esponenti non sono mai usati dai modelli. DFLOAT11 applica la codifica di Huffman-un classico algoritmo di compressione dei dati senza perdita di perdita, in particolare ai valori esponenti. Gli esponenti più frequenti ottengono codici più brevi, quelli più rari ottengono codici più lunghi. Il segno originale e i pezzi di mantissa sono conservati senza compressione. Questo approccio riduce efficacemente lo stoccaggio medio per parametro da 16 bit fino a circa 11 bit, producendo la riduzione delle dimensioni del ~ 30%, garantendo mentre il valore decodificato è matematicamente identico al numero BF16 originale.
Exploiting BF16 Inefficiency
abilitando la decomposizione della GPU efficiente in modo efficiente abilitare i rapporti rapidi e efficienti in modo efficiente della GPU efficiente GPU. Poiché le unità matematiche GPU standard, come i core tensori, sono ottimizzate per gli ingressi di dimensioni fisse (come BF16 o INT8), i pesi DFLOAT11 a lunghezza variabile devono essere decompressi a BF16 immediatamente prima del calcolo. La decodifica tradizionale Huffman è intrinsecamente sequenziale e lenta su hardware parallelo.
Per risolvere questo problema, il team ha sviluppato un kernel CUDA personalizzato. Questo kernel impiega diverse strategie: utilizza tabelle di ricerca compatte a più livelli (per un totale di 1 kb) progettate per adattarsi all’interno di SRAM GPU su chip rapido; Utilizza un meccanismo a due fasi con dati ausiliari minimi per consentire ai thread paralleli di calcolare correttamente le loro posizioni di avvio nei dati compressi e delle posizioni di scrittura nel buffer di output; E elabora i pesi per un intero blocco di trasformatore per massimizzare la throughput. Il codice, integrato con la libreria di Transformers di abbracci, è open-source .
Tuttavia, questa decompressione al volo introduce un compromesso per le prestazioni. Rispetto all’esecuzione di un modello BF16 non compresso su hardware con memoria sufficiente, DFLOAT11 aggiunge latenza.
L’autore Tianyi Zhang ha fornito chiarimenti su Reddit, rilevando che per l’inferenza della dimensione 1 batch su un A100, DFLOAT11 è stato osservato circa il 40% più lento rispetto al BF16 nativo. Ma poiché la latenza di decompressione è relativamente costante, diventa meno impatto a dimensioni batch più grandi, con quasi parità (differenza 1.02x) osservata alla dimensione del batch 128.
Memoria del sistema CPU: uno scenario richiesto da VRAM insufficiente. Zhang ha riassunto:”Se i vincoli hardware (adatti a modelli più grandi, sequenze più lunghe o lotti più grandi) non sono la preoccupazione principale, non c’è molta motivazione per usare DF11″. Fattori come il potenziale impatto sul consumo di energia o sulla stabilità del sistema durante i carichi di lavoro di decompressione prolungati richiederebbero anche una valutazione nelle distribuzioni del mondo reale.
L’accessibilità hardware e i contesti più lunghi
Nonostante il compromesso di latenza negli scenari non vincolati, la proposta di valore DFLOAT11 è la riduzione delle capacità di hardware e Il documento mostra che consente Llama-3.3-70b su una singola GPU H200 da 141 GB e Qwen2.5-32b su un A6000 da 48 GB, entrambi impossibili con BF16 standard. Ciò potenzialmente rende i modelli all’avanguardia utilizzabili per le organizzazioni con budget GPU più piccoli.
Criticamente, il VRAM salvato per comprimere i pesi del modello può essere utilizzato per la cache KV, che spesso limita la lunghezza del contesto massima. Consentendo più spazio per questa cache, DFLOAT11 ha permesso ai modelli di elaborare 5.3x a 13.17x più lunghe sequenze rispetto a BF16 sulla stessa hardware prima di scavalcare la memoria. Per facilitare l’adozione, il team ha reso modelli dfLoat11 pre-compressi disponibili per abbracciare la faccia .