Immaginate una sala conferenze dove i posti vengono assegnati con una regola sola: ci si siede nell’ordine in cui si entra. Il primo arrivato prende la sedia numero zero, il secondo la uno, e così via fino all’ultimo. La regola è semplice e non sbaglia mai, ma è cieca a chi deve parlare con chi. Se due persone che dovrebbero collaborare entrano a mezz’ora di distanza, finiscono ai due capi opposti della stanza, e per tutta la riunione faranno fatica a sentirsi. Nessuno le ha messe lontane apposta: è solo che la numerazione delle sedie non sa nulla del contenuto della conversazione.
È più o meno così che i modelli linguistici assegnano una posizione alle parole di un prompt. Ogni token riceve un indice intero, da 0 fino a L−1, nell’ordine esatto in cui compare. Quel numero serve, perché il meccanismo di attention di per sé non ha alcun senso dell’ordine: senza un’informazione di posizione, «il gatto insegue il topo» e «il topo insegue il gatto» sarebbero indistinguibili. Ma la numerazione fissa è anche, secondo un paper appena uscito da Sakana AI, un’occasione sprecata. Si intitola RePo: Language Models with Context Re-Positioning, è firmato da Huayang Li, Tianyu Zhao e Richard Sproat, ed è comparso su arXiv il 16 dicembre 2025.
Cosa vuole sostituire
Lo standard che RePo prende di mira si chiama positional encoding, e la sua incarnazione più diffusa oggi è RoPE (rotary position encoding), quella usata da Llama, Qwen, OLMo e quasi tutti gli LLM recenti. RoPE parte dall’indice intero della parola e lo trasforma in una rotazione che entra nel calcolo dell’attention. Un’altra scuola di pensiero, chiamata NoPE, rinuncia del tutto alla posizione esplicita — cosa che, mostra il paper, equivale ad assegnare a tutte le parole una stessa posizione costante.
Il punto di vista degli autori è che entrambe le scelte sono, dal punto di vista informativo, le più povere possibili: una progressione lineare rigida o un valore costante. Per inquadrarlo prendono in prestito una teoria dalla psicologia cognitiva, la Cognitive Load Theory. L’idea è che la memoria di lavoro umana ha una capacità fissa, e che il modo in cui l’informazione è organizzata consuma parte di quella capacità inutilmente — il cosiddetto carico estraneo. Un umano riduce quel carico raggruppando le cose collegate e scartando i dettagli irrilevanti; un modello con posizioni congelate, sostengono, non può farlo. Il carico estraneo va a scapito del ragionamento vero e proprio, ed è per questo — è la loro tesi — che gli LLM crollano proprio sui compiti che richiedono di collegare informazioni distanti: il classico «ago nel pagliaio», le domande su contesti diluiti da rumore, i dati strutturati come tabelle e grafi appiattiti in testo.
Vale la pena tenere questa cornice per quello che è: una motivazione, un’analogia con la mente umana. La prova non sta nella teoria cognitiva, sta nei numeri sui benchmark. Ma l’analogia indica bene la mossa: e se la posizione, invece di essere un numero d’ordine imposto dall’esterno, fosse qualcosa che il modello impara a scegliere in base al contenuto?
Il meccanismo: una posizione che si impara
In RoPE, il punteggio di attention tra due parole dipende dalla loro distanza letterale nella frase, cioè dalla differenza tra i loro indici interi:
$$A^{\text{RoPE}}_{i,j} = q_i^{\top}\, g_\theta(j – i)\, k_j$$
dove q e k sono la query e la key dei due token e gθ è la funzione che trasforma la distanza j − i in una rotazione. RePo cambia un solo ingranaggio, ma decisivo. Al posto della differenza tra indici interi mette la differenza tra due posizioni apprese, z, calcolate da un piccolo modulo neurale a partire dallo stato nascosto della parola:
$$A^{\text{RePo}}_{i,j} = q_i^{\top}\, g_\theta(z_j – z_i)\, k_j, \qquad z_i = f_\phi(h_i)$$
Il modulo fϕ è volutamente leggero: una piccola trasformazione in stile SwiGLU che estrae dalla parola una rappresentazione di posizione, seguita da una proiezione lineare che la schiaccia in un unico numero reale.
$$f_\phi(h_i) = \big(\mathrm{Swish}(h_i W_g) \odot (h_i W_c)\big)\, W_z$$
Tornando alla sala conferenze: fϕ è l’assistente che, invece di far sedere ciascuno nell’ordine d’arrivo, legge di cosa ognuno si occupa e gli assegna una coordinata su una linea. Chi deve dialogare riceve coordinate vicine, anche se è entrato in momenti lontanissimi. Un dettaglio onesto e importante: RePo non rimescola davvero le sedie. Le parole restano nell’ordine in cui sono state scritte — cambiarlo obbligherebbe a ricalcolare la cache a ogni passo, un costo insostenibile. Cambia solo la «distanza percepita» che entra nel calcolo dell’attention. È come se il modello indossasse occhiali che avvicinano otticamente gli interlocutori giusti, lasciando ognuno alla sua sedia.
Alcune scelte progettuali meritano una nota. Le posizioni z sono numeri reali continui, non interi, e non devono per forza crescere in ordine: il modello è libero da vincoli di monotonicità. Il modulo si attiva a partire dal quinto livello della rete, lasciando ai primi livelli la vecchia RoPE — perché i livelli bassi si occupano soprattutto di sintassi e caratteristiche locali, che dalla riorganizzazione guadagnano poco. E ogni testa di attention impara la propria assegnazione di posizioni in modo indipendente.
In alto le parole ricevono indici interi in ordine di comparsa: l’ago informativo resta lontano dalla domanda quanto lo è nel testo. In basso il modulo di RePo assegna coordinate continue in base al contenuto e avvicina l’ago alla domanda. L’ordine effettivo dei token non cambia: cambia solo la distanza usata nel calcolo dell’attention.
I numeri, senza arrotondare l’entusiasmo
Il test è onesto nel suo perimetro: gli autori partono da OLMo-2 1B, il modello completamente aperto dell’Allen Institute, e lo continuano ad addestrare per 50 miliardi di token con RePo attivo, su quattro GPU H100, con contesto di 4096 token. Il confronto è con RoPE, NoPE e due schemi ibridi che alternano i due (R2N1 e N2R1).
Sui contesti rumorosi del benchmark RULER, entro la lunghezza di training, RePo tocca un punteggio medio di 55,68 contro i 44,64 di RoPE: undici punti abbondanti in più, e comunque almeno 6,24 punti sopra il migliore degli altri metodi. Sui dati strutturati — grafi e tabelle — il guadagno è più modesto, 1,94 punti di exact match sopra RoPE in media. Ed è qui che compare la prima nota di onestà del paper stesso: sui grafi il metodo NoPE, che ignora la posizione, batte RePo (29,90 contro 29,03). Gli autori lo dicono senza girarci intorno: per un grafo, insistere su relazioni di vicinanza locale potrebbe essere l’ipotesi sbagliata di partenza.
Il risultato più netto arriva sui contesti lunghi. Estendendo il test fino a 16K token con la tecnica YaRN — lunghezze mai viste in addestramento — RePo supera gli altri di almeno 13,25 punti sui compiti di question answering e ago-nel-pagliaio, e di 5,48 punti sul benchmark più realistico LongBench (28,31 contro i 22,83 del secondo classificato). Sui benchmark generali a contesto corto, invece, nessun miracolo e nessun danno: RePo fa 53,73 di media contro i 53,70 di RoPE, in pratica un pareggio. È esattamente ciò che ci si aspetta da un meccanismo pensato per i casi in cui il contesto va riorganizzato: dove non c’è nulla da riorganizzare, non cambia niente.
La spiegazione di dove nasca il vantaggio è la parte più convincente. Misurando quanta attenzione i token generati dedicano alle diverse parti del contesto, RePo assegna più «massa» all’ago distante ma cruciale (2,013 contro 1,754 di RoPE e 1,572 di NoPE) e meno ai token vicini della domanda. In altre parole, rompe il bias di località, la tendenza degli LLM a guardare soprattutto ciò che hanno sotto il naso. E le posizioni che impara non somigliano né alla scaletta lineare di RoPE né alla costante di NoPE: sono in larga parte «ibride», con solo il 4% dei blocchi in schema monotòno e il 22% vicino a una costante — un pattern che nessuno aveva scritto a mano.
La posizione di una parola non deve essere il suo numero d’ordine. Può essere una proprietà da imparare, come tutto il resto.
Il prezzo e i limiti
Il costo è la buona notizia meno appariscente. Il modulo aggiunge lo 0,9% dei parametri; i FLOPs di addestramento passano da 3,84 a 3,87 × 10²⁰ e il tempo di inferenza per token da 0,0176 a 0,0182 secondi. Praticamente gratis, il che è ciò che rende la proposta interessante e non solo elegante: è un innesto che si può applicare a un modello già addestrato con RoPE, senza ripartire da zero. Su questo RePo si distingue da lavori precedenti con obiettivi simili, come COPE, che usava le logit dell’attention per decidere le posizioni ma pagava un costo alto in tempo e memoria ed era incompatibile con RoPE e con flash attention.
I limiti vanno tenuti in chiaro. Il modello è piccolo, un miliardo di parametri, e RePo è stato provato solo in continual pre-training: non sappiamo come si comporti addestrato da zero, né a scala di decine o centinaia di miliardi di parametri, dove le dinamiche cambiano. La cornice della Cognitive Load Theory è una motivazione suggestiva ma resta un’interpretazione: l’evidenza è nei benchmark, non nella psicologia. E il «riposizionamento» è, come detto, una metafora a livello dell’encoding — le parole non vengono spostate davvero, per non far esplodere il costo della cache. Infine il vantaggio è concentrato dove serve riorganizzare il contesto; sui compiti corti e precisi, che sono ancora la maggioranza dei benchmark, il guadagno è nullo per costruzione.
Perché tenerlo d’occhio
La numerazione 0, 1, 2, …, L−1 è una di quelle assunzioni che stanno nell’architettura dei modelli linguistici da così tanto tempo — dal Transformer del 2017 — da sembrare parte del paesaggio, non una scelta. RePo la tratta di nuovo come una scelta, e mostra che renderla apprendibile costa quasi nulla e ripaga proprio sui punti deboli che affliggono gli LLM in produzione: il fatto in fondo a un documento lungo che il modello non «vede», il contesto sepolto sotto il rumore, la tabella che perde la sua forma quando diventa testo. Non è la rivoluzione che riscrive tutto, ed è meglio così: è un pezzo piccolo, misurato, che rimette in discussione un default che davamo per scontato. Ed è un buon promemoria che alcune delle impostazioni più rigide dello stack sono ancora, se qualcuno si prende la briga di guardarle, aperte a domanda.
Il paper
Huayang Li, Tianyu Zhao, Richard Sproat, RePo: Language Models with Context Re-Positioning, Sakana AI e NAIST, preprint arXiv:2512.14391v1, 16 dicembre 2025. Codice: github.com/SakanaAI/repo.
I commenti sono riservati agli iscritti.
Accedi per commentare