Il dipartimento di Google Research ha recentemente svelato TurboQuant, una svolta significativa nel campo dell'intelligenza artificiale. Questo algoritmo di quantizzazione promette di rivoluzionare l'efficienza dei grandi modelli linguistici (LLM) riducendo la dimensione del KV-cache fino a soli 3 bit, senza compromettere la precisione delle risposte e senza richiedere un ulteriore addestramento del modello.
Nei test eseguiti su acceleratori di intelligenza artificiale Nvidia H100, l'implementazione a 4 bit di TurboQuant, che include un bit dedicato alla correzione degli errori, ha dimostrato un aumento di prestazioni fino a otto volte superiori nel calcolo dei logit di attenzione rispetto all'utilizzo di chiavi a 32 bit non quantizzate. Contestualmente, il volume del KV-cache è stato ridotto di ben sei volte.
Il KV-cache svolge un ruolo cruciale nell'ottimizzazione dei modelli linguistici, memorizzando i dati precedentemente calcolati dal meccanismo di attenzione. Questo evita al modello di dover ricalcolare le stesse informazioni a ogni passaggio di generazione dei token. Tuttavia, con l'aumentare delle dimensioni della finestra contestuale, il KV-cache può crescere esponenzialmente, diventando un collo di bottiglia per le prestazioni. Le tecniche di quantizzazione tradizionali offrono una soluzione per ridurre le dimensioni del cache, ma spesso richiedono l'aggiunta di bit extra per la memorizzazione delle costanti di quantizzazione, simili a un dizionario utilizzato negli algoritmi di compressione dati come ZIP e RAR. Questo overhead può diventare significativo, soprattutto con finestre contestuali di grandi dimensioni.
TurboQuant supera queste limitazioni attraverso un processo in due fasi che elimina completamente la necessità di un dizionario. La prima fase si basa su PolarQuant, un metodo che trasforma i vettori di dati da coordinate cartesiane a coordinate polari, assegnando a ciascun vettore un valore di raggio (lunghezza) e angolo (direzione). Le distribuzioni angolari risultano prevedibili e concentrate, consentendo a PolarQuant di evitare la normalizzazione di ogni blocco, un passaggio dispendioso in termini di risorse che è invece necessario con i quantizzatori tradizionali. Il risultato è una compressione di alta qualità senza l'overhead di memorizzazione delle costanti di attenzione.
La seconda fase prevede l'applicazione di uno strato di correzione degli errori a 1 bit, utilizzando un algoritmo quantizzato di Johnson-Lindenstrauss. L'errore di quantizzazione residuo viene proiettato in uno spazio di dimensioni inferiori, dove ogni valore viene ridotto a un singolo bit di segno, eliminando così l'errore sistematico nei calcoli di valutazione dell'attenzione con un costo aggiuntivo minimo.
Google ha testato i due componenti di TurboQuant separatamente e in combinazione, utilizzando benchmark con contesti estesi come LongBench, Needle In A Haystack, ZeroSCROLLS, RULER e L-Eval, su modelli open-source come Gemma e Mistral. I risultati hanno dimostrato l'efficacia di TurboQuant in una vasta gamma di compiti.
In particolare, TurboQuant ha ottenuto risultati eccezionali nei compiti di ricerca "ago nel pagliaio", raggiungendo una compressione del KV-cache di almeno sei volte. Nella serie di test LongBench, che comprendeva risposte a domande, generazione di codice e creazione di riassunti, TurboQuant ha dimostrato prestazioni pari o superiori all'algoritmo di compressione di base KIVI in tutte le attività.
L'efficacia di TurboQuant non si limita ai grandi modelli linguistici. È stato testato anche nella ricerca vettoriale, confrontandolo con algoritmi di compressione consolidati come Product Quantization e RabbiQ sul set di dati GloVe. Anche senza addestramento o ottimizzazione specifica, l'algoritmo di Google ha superato i suoi concorrenti, dimostrando una qualità superiore. Un vantaggio significativo di TurboQuant è la sua capacità di operare senza richiedere addestramento o messa a punto, con un overhead minimo, rendendolo ideale per l'implementazione anche in scenari ad alta intensità di calcolo.

