CAT: comprimere e attendere per un’attention efficiente a piacere

Un modello che comprime il passato in sintesi e vi presta attenzione, con una manopola per scegliere a inferenza quanto essere preciso o economico. Rileggiamo CAT, la proposta di tre ricercatori della New York University per non fissare il compromesso già in addestramento.

Chi ha passato quattro ore in una riunione conosce il mestiere del buon verbalizzatore. Non trascrive ogni parola: alla fine di ogni punto all’ordine del giorno butta giù due righe di sintesi, e quando più tardi qualcuno chiede «ma sul budget cosa avevamo deciso?» non riavvolge la registrazione integrale — rilegge le sue due righe. È un compromesso, e si vede: se le sintesi sono troppo strette un dettaglio si perde, se sono troppo generose tanto vale riascoltare tutto. Un paper uscito a novembre 2025 propone di costruire i modelli linguistici esattamente così, comprimendo il passato in sintesi a cui poi il modello presta attenzione. Con una differenza che lo rende interessante: la larghezza della sintesi non è decisa una volta per tutte in fabbrica, ma resta una manopola che chi usa il modello gira quando vuole.

Gli autori — Jatin Prakash, Aahlad Puli e Rajesh Ranganath, della New York University — chiamano l’architettura Compress & Attend Transformer, CAT. Il titolo del paper, Attention and Compression is All You Need, è una citazione dichiarata di quel «Attention Is All You Need» che nel 2017 disegnò il Transformer. La tesi, questa volta, è che alla sola attention convenga aggiungere un secondo ingrediente altrettanto ordinario.

Il costo quadratico e i suoi rimedi imperfetti

Il problema è noto e caro, in tutti i sensi. Nell’attention classica ogni token guarda tutti gli altri: il calcolo cresce con il quadrato della lunghezza della sequenza, e la memoria — la cosiddetta cache delle chiavi e dei valori — cresce in modo lineare ma senza mai svuotarsi. Più lungo è il contesto, più costoso è generare. Da qui una piccola industria di alternative efficienti. L’attention sparsa o a finestra scorrevole limita a priori quali token si possono guardare. L’attention lineare — la famiglia di Mamba-2 e GatedDeltaNet — sostituisce il confronto tutti-contro-tutti con uno stato ricorrente di dimensione fissa, ottenendo costi costanti.

Questi metodi tagliano davvero calcolo e memoria, ma pagano un prezzo che il paper mette al centro: la capacità di recupero nel contesto, la in-context recall. Ritrovare con precisione un nome di funzione o un numero visto migliaia di token prima è esattamente ciò in cui uno stato compresso di dimensione fissa fa fatica. C’è di peggio: il compromesso tra qualità ed efficienza viene congelato in fase di addestramento. Se un’applicazione a valle scopre di aver bisogno di più precisione — l’autocompletamento di codice che deve richiamare l’intero repository, contro la breve risposta a una mail che non ne ha bisogno — non basta girare una manopola: bisogna addestrare un modello nuovo. Le architetture ibride, che alternano attention densa e strati efficienti, mitigano il problema ma vanno composte a mano, strato per strato, un lavoro che diventa scomodo su larga scala.

Comprimere, poi attendere

CAT rinuncia a inventare un meccanismo esotico e ricombina due pezzi ben capiti: attention densa e compressione. La sequenza di N token viene spezzata in blocchi (chunk) di C token ciascuno. Un primo modello, il compressore — un piccolo transformer bidirezionale — schiaccia ogni blocco in un’unica rappresentazione compatta, e lo fa per tutti i blocchi in parallelo, perché comprimere un blocco non richiede di aver già compresso i precedenti:

$$x=\{x_1,\dots,x_N\}\;\xrightarrow{\text{blocchi}}\;\{c_1,\dots,c_{N_c}\}\;\xrightarrow{\text{comprimi}}\;\{f_\theta(c_1),\dots,f_\theta(c_{N_c})\}$$

dove $N_c=N/C$ è il numero di blocchi e $f_\theta(c_i)$ la sintesi dell’i-esimo. A questo punto entra il secondo modello, il decoder: un transformer causale che genera i token del blocco corrente guardando i token già scritti in quel blocco e — qui sta il trucco — non i token grezzi del passato, ma solo le loro sintesi compresse. In formula, la probabilità dei token del blocco $c_i$ è

$$p_\theta(c_i\mid c_{i-1},\dots,c_1)=\prod_{j=1}^{C} g_\theta\big(x_{i,j}\mid x_{i,La conseguenza pratica è che il decoder lavora su una sequenza accorciata di un fattore C. La cache in memoria si riduce dello stesso fattore, e il calcolo di addestramento del decoder passa da $O(N^2)$ a $O(N^2/C)$, mentre la compressione costa appena $O(NC)$. Poiché niente dipende in modo ricorrente dal blocco precedente, l’intero modello si addestra in parallelo, senza le lentezze e le instabilità della retropropagazione nel tempo che affliggono gli approcci ricorrenti.

La dimensione del blocco C è la manopola. Blocchi grandi significano sequenza più corta, quindi più velocità e meno memoria, ma sintesi più grossolane; blocchi piccoli il contrario. La mossa decisiva è addestrare un solo modello su più dimensioni di blocco alla volta — nel paper $C\in\{4,8,16,32\}$ — passandogli un token-indicatore che gli dice a quale taglia sta lavorando. Il risultato è un modello adattivo unico: a inferenza si sceglie il compromesso cambiando un token, senza riaddestrare nulla.

Comprimere e attendere: la sequenza si accorcia di un fattore C Il gatto salta oltre il cane che dorme N token blocco 1 (C=3) blocco 2 blocco 3 compressore f(c1) f(c2) f(c3) N/C sintesi decoder causale attende alle sintesi passate, non ai token grezzi Blocchi più grandi (C alto) = sequenza più corta = più veloce e leggero, ma sintesi più grossolane

La sequenza è divisa in blocchi di C token. Il compressore schiaccia ogni blocco in una sintesi, in parallelo; il decoder genera attendendo solo alle sintesi passate. Cambiando C — la manopola — si scambia qualità per efficienza a inferenza, senza riaddestrare.

I numeri, senza arrotondare in meglio

Per pareggiare la perplessità del transformer denso, gli autori trovano necessario un decoder più espressivo, con dimensione nascosta doppia: il CAT del paper arriva così vicino al miliardo di parametri, contro i circa 300 milioni delle baseline efficienti (il Sparse Transformer, più largo, ne usa circa 800). Più parametri, dunque, ma — come nei modelli Mixture-of-Experts — più parametri non significano più calcolo a inferenza, perché a contare è la memoria della cache, non il peso del modello. Tutti i modelli sono addestrati su 15 miliardi di token di FineWeb-Edu con contesto da 4.000 token.

Il risultato di sintesi: un singolo modello CAT eguaglia il transformer denso nel language modeling a diverse scale, restando da 1,4 a 3 volte più veloce in generazione e usando da 2 a 9 volte meno memoria totale. Sul recupero nel contesto — misurato su compiti reali come SWDE e FDA — i modelli lineari restano molto indietro (Mamba-2 a 9 e GatedDeltaNet a 12 di media, contro i 32 del denso), mentre la configurazione meno efficiente, CAT-4, arriva a 47,1 di media: batte perfino il transformer denso, restando comunque 1,5 volte più veloce e con la metà della memoria. Sui benchmark di ragionamento di senso comune tutte le varianti CAT superano in media le baseline efficienti (45,1 contro il migliore attorno a 43,7). E l’architettura scala come la controparte densa, dai 95 milioni al miliardo di parametri. Il punto ricorrente, in ogni tabella, è che questi risultati vengono da un solo modello che copre budget diversi girando la manopola.

Il compromesso tra qualità ed efficienza non va congelato in fabbrica. Può restare una manopola in mano a chi usa il modello.

Dove CAT arranca

Il paper non nasconde i cedimenti, e sono istruttivi. I blocchi grandi vanno male sui contesti corti: se la sintesi deve tenere insieme troppi token, il compressore non sempre riesce a far affiorare l’informazione giusta, e c’è un limite fisico a quanto una rappresentazione di dimensione fissa può contenere. Più addestramento o un fine-tuning mirato attenuano il problema, ma non lo cancellano. Sul compito di tracciamento di stato BabiLong, inoltre, sono proprio i modelli ricorrenti lineari — quelli che CAT batte altrove — a comportarsi meglio.

C’è poi un limite ingegneristico onesto: allo stato attuale l’addestramento di CAT costa circa il doppio del tempo, per via della compilazione inefficiente della maschera di attention su misura; kernel dedicati potrebbero recuperarlo, e gli autori ricordano che l’addestramento è un costo una tantum. Resta infine che la dimensione del blocco la deve scegliere l’utente: la direzione futura è addestrare con reinforcement learning modelli che allochino il budget da soli, in base al contesto. E va detto: siamo di fronte a un preprint di novembre 2025, con esperimenti fino a circa un miliardo di parametri e 15 miliardi di token — una scala di ricerca, non di frontiera.

Perché la memoria conta più del calcolo

La posta in gioco si capisce guardando come si servono i modelli in produzione. Il costo dominante spesso non sono i pesi, ma la cache delle chiavi e dei valori. Gli autori portano un esempio concreto: un Qwen3-14B, a un batch modesto di 16 come nella chat o nel completamento di codice, occupa circa 28 GB di pesi contro circa 670 GB di cache al contesto massimo — un ordine di grandezza in più. Una variante CAT dello stesso modello, spiegano, potrebbe ridurre la memoria totale di circa 4 volte pur avendo più parametri. Su GPU sempre più limitate dalla memoria e non dal calcolo, tagliare la cache vale più che tagliare i FLOP.

La proposta di CAT, in fondo, è meno un nuovo motore e più un modo di impacchettare due pezzi noti in modo che uno stesso modello serva a molti usi: precisione alta quando serve, economia quando il traffico esplode, deployment su hardware più a buon mercato — tutto da un unico addestramento. È una lezione che il paper del 2017 aveva già insegnato e che qui torna con umiltà: la svolta non arriva quasi mai aggiungendo un ingranaggio esotico, ma ricombinando con cura quelli che già abbiamo. Non si promette di detronizzare il transformer. Si offre una via di mezzo regolabile — che, se i numeri reggeranno alle scale vere, è esattamente ciò che a chi mette in produzione i modelli serve.

Il paper

Jatin Prakash, Aahlad Puli, Rajesh Ranganath, Attention and Compression is All You Need for Controllably Efficient Language Models, arXiv:2511.05313, novembre 2025. Codice: github.com/rajesh-lab/cat-transformer.

I commenti sono riservati agli iscritti.

Accedi per commentare