Free Transformer: dare al Transformer una variabile latente per pensare prima di scrivere

François Fleuret aggiunge al decoder Transformer una variabile casuale latente, appresa senza supervisione con un autoencoder variazionale. Un ingranaggio in più, poche percentuali di calcolo, per far decidere al modello la struttura di ciò che scriverà prima di scriverla.

Immaginate di dover scrivere la recensione di un film. Ci sono due modi di farlo. Il primo: decidete subito, prima di battere una parola, se sarà una stroncatura o un elogio, e poi tutte le frasi seguono da quella scelta. Il secondo: cominciate a scrivere senza aver deciso nulla, e il verdetto emerge da solo, parola dopo parola, finché a un certo punto vi accorgete di aver scritto una stroncatura. I modelli linguistici di oggi funzionano rigorosamente nel secondo modo. Un paper uscito nell’ottobre 2025, firmato dal solo François Fleuret per il laboratorio FAIR di Meta, propone di concedere loro anche il primo. Si intitola The Free Transformer, e la libertà a cui allude è proprio questa: decidere una volta sola ciò che oggi il modello è costretto a ricostruire un pezzo alla volta.

Cosa può decidere un decoder, e cosa no

Vale la pena ricordare cosa fa esattamente un decoder Transformer, l’architettura sotto GPT e i suoi discendenti. È un modello autoregressivo: stima la probabilità di ogni token dati quelli che lo precedono, e genera un simbolo dopo l’altro. Fleuret fa notare una cosa che di solito diamo per scontata: le uniche decisioni che questo modello prende sono i token stessi. Non compie mai una scelta latente, separata, sul tipo di sequenza che sta per produrre.

Torniamo alle recensioni. Un decoder addestrato bene genererà senza problemi sia recensioni positive sia negative. Ma non deciderà mai esplicitamente di scriverne una negativa: produrrà token, e il fatto che si tratti di una stroncatura resterà implicito nelle loro probabilità, qualcosa che si può solo dedurre a posteriori guardando le parole già uscite. Per la regola della catena qualunque distribuzione si può scrivere in forma autoregressiva, è vero. Ma quando la struttura «naturale» del dato dipende da una variabile nascosta — la categoria della recensione, la posizione in cui comparirà un certo motivo — descriverla senza quella variabile può diventare molto più contorto che descriverla con lei. Fleuret elenca tre conseguenze: serve capacità sprecata per inferire a posteriori quantità che si potevano fissare all’inizio; il modello può essere sviato se per errore genera qualche token ambiguo o contraddittorio; e i concetti chiave, non emergendo spontaneamente, vengono costruiti a forza per adattarsi ai dati, con una fragilità che si paga quando si esce dalla distribuzione di addestramento.

L’esempio-giocattolo del paper è una monetina. Sia $Z$ un lancio con esito equiprobabile, e siano i token uguali a $Z$ a meno di un piccolo rumore di probabilità $\epsilon$. Condizionati a $Z$, i token sono indipendenti e la loro legge è banale; ma scritta in forma autoregressiva, senza $Z$, la stessa legge diventa un rapporto che accumula conteggi e stime di probabilità man mano che la sequenza avanza — stime che introducono errori inevitabili. L’idea del Free Transformer è restituire al modello quella monetina: una quantità casuale su cui decidere, una volta per tutte, la rotta della generazione.

Un ingranaggio in più, in mezzo alla pila

Concretamente, il Free Transformer inietta uno stato casuale $Z$ a metà della pila di blocchi. In generazione la cosa è semplice: si campiona $Z$ da una distribuzione uniforme fissata a priori, si lascia che moduli il calcolo, e il resto procede come in un normale decoder. Per ogni posizione della sequenza, $Z$ è un vettore «one-hot» di dimensione $2^{H}$ con $H = 16$, cioè una scelta tra $2^{16} = 65\,536$ stati latenti possibili. In inferenza l’encoder non viene nemmeno eseguito: lo stato casuale si estrae e basta, quindi il costo aggiuntivo alla generazione è quasi nullo.

Il problema è l’addestramento. Per imparare, il modello deve massimizzare la probabilità di ogni sequenza $S$ marginalizzando sul latente:

$$P(S) = \int_{z} P(S \mid Z = z)\,P(Z = z)\,dz$$

e questo integrale si può stimare solo se, data una sequenza vera, si sa produrre un $Z$ coerente con essa. È esattamente il compito dell’encoder di un autoencoder variazionale (VAE). Il Free Transformer è dunque un VAE condizionale: accanto al decoder si addestra un encoder che, letta l’intera sequenza, propone il $Z$ giusto — l’analogia è quella di un revisore che ha davanti il testo finito e sussurra allo scrittore in che «modalità» trovarsi, positiva o negativa. L’eleganza dell’implementazione sta qui: l’encoder riusa la prima metà del decoder e aggiunge un solo blocco non causale (deve poter guardare tutta la frase, non solo il passato). L’overhead è di un layer: circa il 3,6% in più di calcolo e parametri sul modello da 1,5 miliardi, il 3,1% su quello da 8 miliardi.

Ma c’è una trappola. Se all’encoder si lascia passare troppa informazione, quello bara: copia nel latente i token stessi che il decoder dovrebbe prevedere, ottenendo un punteggio perfetto in addestramento e un decoder inutile in inferenza. Per impedirlo si limita l’informazione che scorre da encoder a decoder, misurata dalla divergenza di Kullback-Leibler tra la distribuzione proposta e la uniforme a priori. Alla cross-entropy standard si somma allora un termine «a bit gratuiti» che penalizza solo l’informazione oltre una soglia $\kappa$:

$$\frac{1}{T}\sum_{t=1}^{T} \max\!\left(0,\; D_{\mathrm{KL}}\!\big(Q(Z_t \mid S)\,\|\,P(Z_t)\big) – \kappa\right)$$

La soglia $\kappa$ è il vero regolatore dell’esperimento: dice quanti bit di «decisione» per token il modello ha diritto di prendere prima di scrivere.

Decoder standard e Free Transformer a confronto Decoder standard logit del token successivo L blocchi causali token in ingresso nessuna decisione latente Free Transformer logit del token successivo seconda metà L/2 blocchi Z variabile latente prima metà L/2 blocchi token in ingresso blocco encoder non causale solo in training una scelta latente a metà strada · +~3% di calcolo

Il decoder standard va dai token ai logit senza mai fermarsi a decidere altro. Il Free Transformer, a metà della pila, inietta una variabile casuale latente Z. In addestramento è un blocco encoder non causale (in ocra, riusa la prima metà) a scegliere il Z coerente con la frase; in generazione Z si campiona e basta.

Cosa migliora, con onestà

Fleuret addestra i modelli da zero, senza scorciatoie, e con una scelta metodologica importante da tenere a mente: gli iperparametri di ottimizzazione sono quelli calibrati per i modelli di riferimento, lasciati identici. Il Free Transformer non è stato ottimizzato apposta. Qualunque guadagno arriva quindi «a scatola chiusa», il che è un test severo ma anche una fonte di rumore.

I modelli sono due: uno da 1,5 miliardi di parametri (addestrato su 47 miliardi di token, 32 GPU H100 per circa dodici ore) e uno da 8 miliardi con la struttura di Llama-3 (200 miliardi di token su 256 H100 per un giorno, e in una seconda tornata mille miliardi di token in cinque giorni). Il miglioramento non è uniforme: si concentra sui benchmark che richiedono una qualche forma di ragionamento. Sul modello da 8 miliardi allenato su mille miliardi di token, con mezzo bit di informazione latente per token, il punteggio su HumanEval+ (generazione di codice) sale da 0,268 a 0,299, MBPP da 0,428 a 0,440, GSM8K (problemi di matematica) da 0,321 a 0,331, MMLU da 0,592 a 0,623, CommonsenseQA da 0,707 a 0,748. Poiché le curve oscillano, l’autore riporta anche la media sull’ultimo terzo dell’addestramento, stima più affidabile: lì i guadagni relativi stanno tra il 4% e il 6% su codice, matematica, conoscenza generale e senso comune.

Nelle configurazioni più piccole o meno addestrate i salti percentuali sono più vistosi ma vanno presi con le pinze: sul modello da 8 miliardi a 200 miliardi di token, CommonsenseQA passa da 0,356 a 0,450 (+26%), ma è proprio il regime dove il rumore è maggiore. E l’onestà impone di dire il resto: su parecchi altri benchmark — comprensione del testo, domande fattuali come Natural Questions o TriviaQA — il Free Transformer resta pari o cala di poco. Non è un miglioramento su tutta la linea, è uno spostamento a favore dei compiti dove decidere una struttura in anticipo aiuta davvero.

La conferma più bella arriva da un esperimento sintetico. Fleuret costruisce sequenze fatte di trattini bassi, con un «bersaglio» — una lettera ripetuta otto volte in una posizione casuale — e del rumore di punti esclamativi. Poi alza gradualmente la soglia $\kappa$ e osserva cosa il latente decide di immagazzinare: con pochissimi bit il modello si comporta come uno normale; salendo, il latente codifica prima la sola posizione del bersaglio, poi posizione e rumore insieme, e infine — quando gli si concede troppa informazione — l’intera sequenza, a quel punto rovinando la generazione. Si vede a occhio nudo cosa il modello sceglie di fissare prima di scrivere.

Non decidere una parola alla volta ciò che si poteva decidere una volta sola.

I limiti, che l’autore non nasconde

Questo è un rapporto preliminare, di un solo autore, e lo dichiara. I punti deboli sono messi in fila senza reticenze. Le curve di prestazione durante l’addestramento sono spesso instabili, probabilmente per l’accoppiamento tra l’ottimizzazione dell’encoder e quella del decoder: due modelli che imparano insieme possono disturbarsi a vicenda, e un metodo di ottimizzazione dedicato potrebbe aiutare. La soglia $\kappa$ è un equilibrio delicato: portata a quattro bit per token fa collassare tutto, perché l’encoder trova la scorciatoia di incanalare direttamente i token da prevedere, e le prestazioni sui compiti reali crollano. La forma stessa della variabile latente — quel vettore one-hot da $2^{16}$ stati — è, parole dell’autore, arbitraria: molte alternative restano da esplorare. E soprattutto il comportamento su scale maggiori, in parametri e in dati, è tutto da verificare. Nessuno dei numeri qui sopra dice cosa succederebbe a dimensioni da modello di frontiera.

Perché conta

La posta in gioco non è il singolo punto percentuale su un benchmark. È che, dopo quasi un decennio, la modellazione autoregressiva del Transformer è rimasta sostanzialmente incontestata: si è migliorato tutto attorno, ma il gesto centrale — un token dopo l’altro, nessuna decisione latente — non si è quasi toccato. Il Free Transformer prova a toccarlo con un intervento minimo, un blocco in più e qualche punto percentuale di calcolo, e ne ricava un segnale che l’inductive bias di partenza si può migliorare. C’è anche un ponte suggestivo, che Fleuret lascia esplicito: fare nello spazio latente, con un autoencoder, qualcosa di simile a ciò che i modelli di ragionamento fanno nello spazio dei token con le catene di pensiero e l’apprendimento per rinforzo. Pensare prima di scrivere, ma senza spendere token per farlo. È un’idea, non ancora una rivoluzione — e proprio per questo vale la pena tenerla d’occhio.

Il paper

François Fleuret, The Free Transformer, FAIR at Meta, 20 ottobre 2025. Disponibile su arXiv: arxiv.org/abs/2510.17558.

I commenti sono riservati agli iscritti.

Accedi per commentare