Chi ha studiato su un testo difficile conosce il gesto: si arriva in fondo a un paragrafo denso, non lo si è capito, e si torna a rileggerlo dall’inizio. Non perché siano cambiate le parole sulla pagina, ma perché la seconda lettura parte da una testa che ha già visto il finale. Alla terza rilettura si colgono i nessi che prima erano sfuggiti. È un modo per pensare più a fondo senza avere un cervello più grande: si riusa lo stesso, più volte.
I looped transformer fanno esattamente questo. Invece di impilare decine di strati tutti diversi, ne tengono pochi e li attraversano più volte, riciclando gli stessi pesi a ogni giro. È un’idea elegante e vecchia — risale agli Universal Transformer del 2019 — che oggi torna d’attualità come via alla profondità a basso costo di parametri. Il problema è il pedaggio nascosto che si paga a ogni rilettura. Il paper LT2: Linear-Time Looped Transformers, uscito da un gruppo di Rice University, Apple, UC Santa Cruz e Carnegie Mellon, mostra come toglierlo — e scopre per strada qualcosa di controintuitivo.
Profondità presa in prestito
L’idea di fondo è semplice. Un Transformer standard di profondità $N$ impila $N$ blocchi, ciascuno con i propri pesi. Un looped transformer ne tiene un gruppo solo e lo applica $T$ volte di fila:
$$h^{(\tau)} = \big(\mathcal{F}_N \circ \cdots \circ \mathcal{F}_1\big)\,h^{(\tau-1)}, \qquad \tau = 1, \dots, T$$
Il risultato è una profondità effettiva di $T \cdot N$ strati, ma con un solo insieme di parametri da addestrare e conservare: un fattore $T$ in meno di pesi rispetto a un Transformer altrettanto profondo. Il calcolo ripetuto diventa profondità: il modello compie più giri di ragionamento latente prima di decidere la parola da produrre. Per questo i looped transformer sono considerati una strada promettente verso il «ragionamento efficiente in parametri», ed è la stessa famiglia a cui appartiene Ouro, il modello che LT2 userà più avanti come banco di prova.
Il pedaggio nascosto
C’è un però. Ogni giro riapplica l’attention quadratica sull’intera sequenza. L’attention classica costa $\mathcal{O}(L^2 d)$ in calcolo per una sequenza di lunghezza $L$, e mantiene una KV-cache che cresce con $L$. Rileggere il testo va bene; rileggerlo scorrendo ogni volta l’intero libro da cima a fondo, no. Il costo non solo cresce con la lunghezza del contesto: si moltiplica per il numero di giri. Su contesti lunghi il termine quadratico domina, e aggiungere iterazioni diventa in fretta impraticabile. L’attention, pensata per dare potenza al modello, finisce per essere il collo di bottiglia che gli impedisce di fare più giri.
Lo stesso blocco viene ripetuto T volte in entrambi i casi. Nel looped transformer classico ogni giro riapplica l’attention piena e la cache si accumula; in LT2 un mixer a tempo lineare tiene uno stato di dimensione costante, indipendente dalla lunghezza e dal numero di giri.
Sostituire il motore
La proposta di LT2 è chirurgica: lasciare intatta la struttura a giri, ma togliere l’attention quadratica da dentro il blocco condiviso e metterci al suo posto un mixer sub-quadratico. Il paper ne studia due famiglie. La prima è l’attention lineare — nelle sue versioni moderne come GDN o KDA — che invece di riconfrontare ogni token con tutti gli altri comprime il passato in uno stato ricorrente $S_t$ di dimensione fissa, aggiornato token dopo token:
$$S_t = A_t\,S_{t-1} + \beta_t\, k_t v_t^\top, \qquad A_t = \mathrm{Diag}(\alpha_t)\big(I – \beta_t\, k_t k_t^\top\big)$$
Il costo in calcolo diventa $\mathcal{O}(L\, d_k d_v)$ — lineare nella lunghezza — e lo stato occupa $\mathcal{O}(d_k d_v)$, cioè una quantità di memoria che non cresce mai con il contesto. La seconda famiglia è l’attention sparsa: ogni token guarda solo una finestra di $w$ posizioni recenti invece dell’intera storia. Anche qui il costo scende a lineare.
Il giro trasforma il calcolo in contesto
Qui arriva la parte interessante, quella che rende LT2 più di un semplice esercizio di efficienza. Ci si aspetterebbe che rimpiazzare l’attention piena con un mixer più povero peggiori la qualità. Invece iterare i due tipi di mixer produce una sinergia che l’attention piena non ha.
Nell’attention lineare, un singolo blocco aggiorna la memoria con una perturbazione di rango 1: da sola, sa a malapena tenere il conto di due elementi che si scambiano. Ma quando lo stesso blocco viene ripetuto $T$ volte, ogni giro contribuisce un fattore fresco, e l’operatore complessivo diventa un prodotto
$$A_t^{\text{eff}} = \prod_{\tau=1}^{T} A_t^{(\tau)}$$
Se le direzioni scelte dai vari giri sono indipendenti, la memoria passa da cancellare una sola direzione a cancellarne $T$: l’aggiornamento di rango 1 diventa di fatto di rango $T$. Il modello guadagna capacità di tenere traccia di stati complessi non aggiungendo parametri, ma aggiungendo giri. Nell’attention sparsa succede l’analogo dal lato della portata: una finestra di ampiezza $w$, ripetuta $T$ volte, raggiunge all’indietro fino a $\mathcal{O}(T w)$ token, perché a ogni giro ogni posizione assorbe informazione da vicini che a loro volta avevano già assorbito i propri. Una finestra piccola, iterata, vede lontano. È il senso della formula-slogan del paper: il looping trasforma il calcolo in contesto.
I numeri, senza arrotondamenti in favore
Gli autori addestrano i modelli su FineWeb-Edu a 0,6 e 1,3 miliardi di parametri, con un budget di 100 miliardi di token e $T = 4$ giri. Il confronto è sempre contro il looped transformer ad attention piena, a parità di parametri. Due configurazioni ibride segnano i due estremi utili.
La prima, GDN+DSA, mescola attention lineare e sparsa e non contiene nemmeno un grammo di attention quadratica. Eguaglia la qualità del looped transformer di riferimento (59,3% di media zero-shot) offrendo circa 5,7 volte più throughput in decodifica a 8k di contesto: 125 contro 22 token al secondo, batch 8. La seconda, Full+GDN, tiene una piccola frazione di attention piena in mezzo agli strati lineari e va oltre: migliora la media zero-shot di 2,1 punti (61,4% contro 59,3%) restando circa 5 volte più veloce in decodifica. Non è un compromesso al ribasso: qui il modello lineare è insieme più bravo e più veloce.
Il guadagno più tangibile si vede sui contesti lunghi. Su una singola GPU H100, il looped transformer classico perde più della metà del throughput in decodifica passando da 4k a 32k token, perché la sua cache continua a gonfiarsi a ogni giro; le varianti LT2 tengono la velocità piatta su tutto l’intervallo. A batch 8 il looped transformer esaurisce la memoria già a 8k, mentre GDN e gli ibridi arrivano a 32k. La differenza, in pratica, è tra poter servire contesti lunghi a un batch utile e non poterlo fare affatto.
C’è infine una scorciatoia che interessa chi non vuole ripartire da zero: si può distillare un looped transformer già addestrato in un modello LT2. Partendo da Ouro-1.4B come insegnante e sostituendo la maggior parte dei suoi strati di attention con GDN, con appena circa 1 miliardo di token di addestramento aggiuntivo il modello convertito — Ouro-Hybrid-1.4B — conserva gran parte della qualità del maestro ereditandone l’efficienza lineare, e regge il confronto con modelli industriali aperti nella fascia 1–4 miliardi di parametri.
Dove il quadro si incrina
Il paper è onesto sui limiti, e vale la pena riportarli. L’attention sparsa, da sola, resta un po’ meno capace: le varianti sparse addestrano stabilmente ma chiudono con una loss di language modeling leggermente più alta, perché restringere la finestra a ogni giro limita il calcolo per iterazione. È esattamente il motivo per cui gli ibridi esistono.
C’è poi una patologia che il looping amplifica. Gli attention sink — quei pochi token che catturano una quota sproporzionata dell’attenzione — si ripresentano a ogni giro invece di azzerarsi, con un effetto a valanga: la norma dello stato interno cresce fino a una ventina di volte alla fine del quarto giro. Serve un accorgimento, un cancello sigmoide applicato dentro il ciclo, per tenerla sotto controllo. E la distillazione resta un’operazione delicata, il cui esito dipende in modo marcato da quali dati si usano. Gli autori indicano infine due strade che non hanno esplorato: variare la famiglia di attention tra un giro e l’altro, e progettare un meccanismo esplicito che trasporti lo stato ricorrente da un giro al successivo.
Perché conta
Per anni la profondità è stata sinonimo di più strati e quindi più pesi. I looped transformer propongono di comprarla riusando gli stessi pesi più volte, e il grande ostacolo è sempre stato che l’attention rendeva ogni giro troppo caro. LT2 rimuove quell’ostacolo mostrando che il collo di bottiglia non era la ricorsione in sé, ma il motore quadratico che le stava dentro. Cambiato il motore, iterare smette di essere un lusso e diventa un asse di scala praticabile — con il di più, tutt’altro che scontato, che certi mixer lineari migliorano proprio perché iterati. È una buona notizia soprattutto per i modelli piccoli, quelli che devono essere capaci senza poter essere grandi: la fascia dove si gioca gran parte dell’utilità reale dell’AI, lontano dai titoli.
Il paper
Chunyuan Deng, Yizhe Zhang, Rui-jie Zhu, Yuanyuan Xu, Jiarui Liu, T. S. Eugene Ng, Hanjie Chen, LT2: Linear-Time Looped Transformers, 2026. Codice: github.com/chili-lab/LT2. arXiv: arxiv.org/abs/2605.20670.

I commenti sono riservati agli iscritti.
Accedi per commentare