Latent Sparse Attention: un indice gerarchico per contesti lunghi

Dieci milioni di token. Quanto costa trovare quelli giusti?

Latent Sparse Attention: un indice gerarchico per contesti lunghi
Condividi:

Latent Sparse Attention (LSA) è un metodo sviluppato da Prefrontal AI insieme a ricercatori di ETH Zurich per ridurre il costo dell'attention con contesti di milioni di token. Raggruppa le key simili e cerca le informazioni nei gruppi più pertinenti. Con 10 milioni di token in input, secondo gli autori, su otto H200 Qwen-3.8-27B genera il primo token 9,21 volte più velocemente.

Il paper presenta due varianti: una da applicare a modelli già addestrati e una da usare durante il training di un nuovo modello. Vediamo come funzionano, quali risultati ottengono e cosa cambia rispetto a Zyphra Hierarchical Attention (ZHA), che cerca le key attraverso un indice ad albero. I due studi offrono risultati di natura diversa: gli autori di LSA hanno eseguito test fino a 10M token; quelli di ZHA hanno valutato la qualità fino a 256K e stimato con un modello teorico le latenze con contesti più lunghi.

Contesto massimo valutato per D-LSA
10M token
Riduzione TTFT Qwen, 8 H200, D-LSA Flat
9,21x
Contesto massimo valutato per N-LSA
128K token
Contesto massimo testato con ZHA
256K token
LSA: setup sperimentale e tabella 3ZHA: valutazioni e limiti delle estrapolazioni
In questa guida

Perché la sparse attention ha ancora un collo di bottiglia

Durante il lavoro, un coding agent accumula codice, risultati dei tool e tracce dei tentativi precedenti. Un assistente di ricerca deve collegare informazioni distribuite in centinaia di documenti. Aumentare la context window permette di conservare più materiale, ma rende più costoso consultarlo.

Nell'attention, la query rappresenta ciò che il modello cerca, le key servono a individuare le informazioni pertinenti e i value contengono le rappresentazioni da combinare. Durante il prefill, il modello elabora il prompt; durante il decode, genera nuovi token usando anche la KV cache già costruita.

Con la full attention, il costo computazionale del prefill cresce come O(T2)O(T^2) rispetto alla lunghezza TT del contesto. La sparse attention limita il numero di key consultate da ogni query, ma deve prima sceglierle. Se l'indexer confronta ogni query con tutte le key, o con tutti i blocchi, quella ricerca resta quadratica nel prefill.

Nel test su GLM descritto nel paper LSA, a 10M token l'indexer occupa il 98% del tempo di prefill di un layer di sparse attention. La misura riguarda il tempo necessario a elaborare l'ultimo chunk di query. In quel caso, quasi tutto il tempo serve a trovare le key da leggere.

LSA, sezioni 1-2 e figura 2: il costo dell'indexer

Come funziona Latent Sparse Attention

LSA costruisce un indice basato sul contenuto delle key. Prima combina piccoli gruppi di key consecutive con il pooling. Poi suddivide la sequenza in blocchi e, all'interno di ciascuno, raggruppa le rappresentazioni simili in bucket. Per ogni bucket conserva un centroide, cioè un vettore che rappresenta il gruppo, e gli indici delle key originali.

La query viene confrontata con i centroidi per scegliere i bucket da cui recuperare le key. L'attention viene poi calcolata sulle key e sui value selezionati. I centroidi servono solo alla ricerca; la KV cache conserva le rappresentazioni originali.

Key del contestoPooling e clusteringsemanticoCentroidi e indici dei bucketQuerySelezione dei bucketIndici delle key selezionateSparse attention su key evalueFinestra recente e sinktoken
LSA: raggruppare per contenuto, poi recuperare le key originali

Nei principali esperimenti D-LSA, le rappresentazioni usate dall'indice hanno 64 dimensioni. Ogni query seleziona 4.096 key long-range, cioè esterne alla finestra recente, e legge anche le 512 key più recenti e 4 sink key, conservate all'inizio della sequenza. Su GLM, D-LSA Flat seleziona 2.048 key long-range per le query che precedono la posizione 1M. Ogni query legge solo una parte delle key conservate nella cache.

LSA, sezione 3 e tabella 2: clustering, ricerca e budget

D-LSA e N-LSA: adattare un modello o addestrarlo da zero

D-LSA: adattare un modello esistente

Si addestrano le proiezioni dell'indexer e la temperatura, lasciando invariati i pesi del modello. Gli esperimenti usano 352M token di distillazione su Qwen-3.8-27B e GLM-5.3-Flash, senza fine-tuning dell'intero modello.

N-LSA: addestrare un nuovo modello

Il modello impara con la sola next-token prediction loss, senza teacher né parametri aggiuntivi per un indexer separato. Gli autori l'hanno provata su un modello ibrido da circa 0,5B parametri, fino a 128K token.

L'indexer di D-LSA impara a imitare l'attention del modello originale. Gli autori provano anche una variante training-free, basata su proiezioni PCA: su Qwen ottiene risultati vicini alla versione distillata, mentre su GLM il divario aumenta.

Come passa il gradiente in N-LSA

N-LSA raggruppa direttamente le key dell'attention. Durante il training, il gradiente si propaga solo attraverso l'attention sulle key selezionate. La selezione viene esclusa dal calcolo del gradiente.

LSA, sezioni 3.3-3.4 e 4.1: le ricette di training

Flat e Tree: quale variante è davvero subquadratica?

Flat confronta ogni query con tutti i centroidi. Fa meno confronti rispetto a una ricerca su tutte le key, ma il numero di bucket cresce con il contesto: il costo dell'indicizzazione nel prefill resta quindi quadratico.

Tree organizza i bucket in un albero e usa beam search: a ogni livello mantiene un numero prefissato di candidati e cerca solo nei rami corrispondenti. Evita così di confrontare ogni query con tutti i centroidi.

Perché il costo di Tree è subquadratico

Il numero di candidati mantenuti è l'ampiezza del beam. Tenendolo costante a ogni livello, il costo della ricerca è O(log⁡T)O(\log T) per query e quello del prefill dell'indexer è O(Tlog⁡T)O(T\log T). Flat continua invece a esaminare tutti i centroidi, il cui numero cresce con il contesto: il costo del suo prefill resta quadratico.

I principali risultati di velocità riportati per D-LSA riguardano Flat. Nei test con una richiesta alla volta, anche la configurazione D-LSA Tree usa Flat durante il decode. Gli esperimenti su N-LSA usano soltanto Flat: gli autori non hanno ancora provato il training nativo con Tree.

LSA, Semantic Search, setup e Native Training

Benchmark LSA: cosa succede alla qualità a 10M token

Su Qwen-3.8-27B, a 10M token D-LSA Flat supera la versione con full attention nei due benchmark sul contesto lungo riportati dagli autori: 63,9 contro 59,9 su RULER e 29,1 contro 19,8 su PaperTrail. La differenza è di 4,0 e 9,3 punti rispettivamente, calcolata sui punteggi pubblicati.

Questi sono confronti con la full attention dello stesso Qwen, esteso con YaRN. PaperTrail riporta il punteggio F1 su 90 domande, ripetute tre volte. I valori di RULER e PaperTrail misurano cose diverse e non vanno confrontati fra loro.

Su GLM il confronto è fra Flat e Tree. A 10M token, D-LSA Flat ottiene 66,8 su RULER, mentre Tree scende a 55,8: perde 11,0 punti. Questo confronto misura la differenza tra le due varianti di D-LSA applicate a GLM. La ricerca ad albero può richiedere meno calcoli, ma una scelta sbagliata del ramo può escludere informazioni utili.

Anche Flat ha dei limiti. Su GLM lo scarto rispetto alla sparse attention originale resta entro 3 punti fino a 1M token, ma il calo arriva a 8 punti fra 2M e 5M. Gli autori ricordano che l'attention originale è stata addestrata insieme al modello. D-LSA viene invece aggiunta in seguito, lasciando invariati i pesi del modello.

LSA, sezione 4.2: accuratezza e confronto Flat/Tree

PaperTrail: trovare fatti e collegare più paper

PaperTrail simula una ricerca bibliografica su raccolte di paper dedicati a esopianeti, modelli con contesto lungo e correzione degli errori quantistici. Gli autori aggiungono informazioni inventate e riferimenti che collegano più documenti, poi costruiscono domande di cui conoscono la risposta. Il modello deve trovare quelle informazioni nel contesto e ricostruire i collegamenti.

Le domande hanno tre livelli di difficoltà: recuperare un'informazione da un paper, collegarne due oppure seguirne una catena di almeno tre. È un test più articolato della ricerca di una singola frase nascosta. Resta però un benchmark artificiale, che da solo non dimostra la capacità di svolgere ricerca scientifica in autonomia.

A 10M token, nessun metodo supera 19,0 nelle domande più difficili, su nessuno dei due modelli. Anche la media di RULER nasconde risultati molto diversi: nei task che richiedono di trovare più elementi o aggregarli, alcuni punteggi scendono a 5 o meno, comprese le baseline. Poter elaborare 10M token non significa riuscire a usare bene tutte le informazioni che contengono.

LSA, appendici D ed E: costruzione di PaperTrail e risultati per task

Reasoning: risultati vicini, con intervalli ampi

Nei test di conoscenza e reasoning, i risultati riportati rientrano negli intervalli di confidenza al 95% delle baseline. Gli autori usano però solo una parte delle domande di alcuni benchmark: 2.000 per MMLU-Pro, 100 per MATH500 e appena 60 per LongBench v2.

Su quest'ultimo, Qwen con l'attention originale ottiene 70,0, D-LSA Flat 65,0 e Tree 61,7. Abbiamo ricavato questi ultimi due valori dalle differenze riportate nella tabella 7. L'intervallo di confidenza della baseline si estende per 11,6 punti in entrambe le direzioni: è abbastanza ampio da includere anche cali importanti. Il fatto che i risultati vi rientrino non basta a dimostrare che le versioni siano equivalenti.

LSA, tabelle 6-7: campioni, differenze e intervalli di confidenza

Quanto accelera LSA: un layer e il modello completo

Con 10M token in input, su otto H200, l'attesa del primo token di Qwen-3.8-27B scende da 4.582,2 a circa 497,5 secondi usando D-LSA Flat: da circa 76 minuti a poco più di 8 minuti. Il vantaggio è grande, ma la risposta non è immediata.

Tempo al primo token: full attention e D-LSAsecondi
  1. Full attention4,582
  2. D-LSA Flat498

Scale starts at zero.

Il confronto riguarda Qwen-3.8-27B con un prompt di 10 milioni di token. Gli autori hanno usato otto GPU H200 con parallelismo TP8 e DCP8, eseguendo una richiesta alla volta in SGLang.

I dati provengono dalla tabella 3 del paper LSA. Abbiamo ricavato il tempo di D-LSA dallo speedup dichiarato dagli autori e arrotondato entrambi i tempi al secondo.

Per distinguere le due fasi della risposta, il TTFT indica il tempo necessario a ricevere il primo token; il TPOT, il tempo per generare ciascun token successivo.

Con contesti più corti, LSA può essere più lenta. Su Qwen con B300, a 512K token, gli speedup di D-LSA Flat sono 0,68x per il TTFT e 0,63x per il TPOT. Entrambi sono inferiori a 1: il primo token arriva più tardi e anche la generazione successiva richiede più tempo rispetto alla baseline. Tree, inoltre, non è sempre più veloce di Flat: su Qwen H200 a 10M, lo speedup del TTFT è 8,83x contro 9,21x.

Tempi completi su H200 e B300 e configurazioni delle GPU
Misure LSA, tabella 3: una richiesta alla volta in SGLang, 10M token, D-LSA Flat. Tempi LSA calcolati dividendo la baseline per lo speedup pubblicato, quindi approssimati.
ConfigurazioneTTFT baseline / LSATPOT baseline / LSASpeedup TTFT / TPOTNote
Qwen, 8 H2004.582,2 / 497,5 s32,1 / 11,2 ms9,21x / 2,87xTP8 e DCP8; baseline full attention
GLM, 8 H200451,5 / 201,6 s17,9 / 8,5 ms2,24x / 2,10xCP8, DCP8 ed EP8; baseline sparse
Qwen, 8 B3002.172,2 / 379,1 s27,3 / 18,7 ms5,73x / 1,46xTP8; baseline full attention

Le sigle della tabella indicano come viene distribuito il lavoro fra le GPU. TP è il tensor parallelism, CP il context parallelism, DCP il context parallelism durante il decode ed EP l'expert parallelism. Il numero 8 indica otto GPU.

Come è stata misurata la velocità del singolo layer

Il test include proiezioni, indexer e attention, ma per il prefill misura soltanto l'ultimo chunk di 32.768 query. A 10M token su H200, il prefill del layer accelera di 72,4 volte su Qwen rispetto alla full attention e di 22,7 volte su GLM rispetto alla sparse attention originale. Nel decode, gli speedup sono rispettivamente 42,5 e 4,6.

Il modello completo guadagna meno del singolo layer perché LSA accelera solo la global attention: il tempo richiesto dalle altre operazioni rimane invariato.

LSA, sezione 4.3 e tabella 3: metodologia e tempi end-to-end

N-LSA: training più veloce, ma più memoria per layer

La variante nativa viene testata su un modello ibrido da circa 0,5B parametri, con 24 layer: uno ogni quattro usa attention, gli altri Gated DeltaNet. Il confronto usa gli stessi dati e lo stesso numero di token di training per tutti i metodi.

Misure degli autori LSA sul modello nativo: RULER a 128K, tabella 4. Le alternative sparse leggono circa 2.560 key per query.
AttentionRULER a 128KNote
Full attention34,7Baseline dense
N-LSA32,2Ricerca Flat; 2.048 key long-range più finestra e sink
NSA19,2Selezione di blocchi
PISA14,6Ricerca gerarchica su blocchi
Sliding-window attention3,0Accesso limitato alla finestra recente

N-LSA resta 2,5 punti sotto la full attention su RULER a 128K e raggiunge la stessa validation loss, 1,085. Il training del singolo layer è 1,6 volte più veloce. Considerando l'intero modello, la fase finale a 128K ha uno speedup di 1,24 volte: dai dati pubblicati si ricava un risparmio di tempo di circa il 19,4%.

Il picco di memoria sale però da 5,8 a 6,8 GiB per layer a 128K, anche perché occorre conservare gli indici delle key selezionate per il backward pass. Lo speedup di 1,24 volte è stato misurato nella fase finale del training, con contesto lungo.

LSA, sezione 4.4: training nativo, qualità e memoria

LSA contro ZHA: due modi di cercare nella KV cache

Zyphra Hierarchical Attention, di Zyphra Research, costruisce un albero a partire da chunk consecutivi di key. Per riassumere il contenuto di ciascun nodo usa alcune reference query, i cui parametri vengono appresi durante il training. La query del modello viene poi confrontata con questi riassunti, partendo dalla cima dell'albero, per scegliere i rami in cui cercare.

Rispetto a LSA cambiano soprattutto il modo di raggruppare le key e il numero di key recuperate. LSA raggruppa per somiglianza e, una volta scelta la configurazione, recupera un numero prestabilito di key long-range. ZHA mantiene i chunk consecutivi e ne seleziona quanti ne servono per raggiungere una certa quota del peso di attention complessivo stimato per i candidati. Questa quota è la soglia top-p.

Key nella cacheD-LSA: pooling e clusteringZHA: chunk consecutiviBucket per somiglianzaAlbero di riassuntiBudget di key long-rangefissoTop-p a ogni livelloAttention su key e valueselezionati
D-LSA e ZHA: raggruppare per somiglianza o riassumere chunk consecutivi. Lo schema mostra come i due metodi organizzano e selezionano le key.
Cosa cambia fra head, distillazione e modelli usati

Selezione per head. D-LSA usa un insieme di indici condiviso dalle query head; in Tree mantiene anche un beam prefissato. ZHA seleziona le key separatamente per ogni query head. Durante il decode, le head dello stesso gruppo KV caricano insieme le key richieste, mantenendo selezioni distinte.

Distillazione. D-LSA addestra proiezioni e temperatura con 352M token; ZHA addestra le reference query con circa 1B token. Entrambi lasciano invariati i pesi del modello, ma usano dati e procedure di training diversi.

Modelli. LSA viene provata su Qwen-3.8-27B e GLM-5.3-Flash; ZHA su Qwen3.6-35B-A3B e Nemotron-3.5-Lightning-30B-A3B. Non c'è un modello comune ai due studi. LSA riporta tempi misurati fino a 10M token, mentre le latenze ZHA sono stime roofline: gli speedup non sono direttamente confrontabili.

Questa flessibilità permette di adattare la ricerca alla domanda. Per trovare una singola informazione possono bastare poche key; per combinare informazioni distribuite nel contesto ne possono servire molte di più. A ogni livello, però, la soglia si applica solo ai candidati rimasti dopo le selezioni precedenti. Impostare p a 0,95 non garantisce quindi di conservare il 95% del peso complessivo della full attention originale.

LSA, sezione 3: bucket, budget e condivisione degli indiciZHA, sezioni III e VI: reference query, top-p e pruning ripetuto

ZHA su Qwen e Nemotron: i risultati cambiano

La variante Deep usa chunk da 4 elementi e un albero a 6 livelli, indicato come C4 L6. Wide usa chunk da 256 elementi e un solo livello, C256 L1. Entrambe apprendono 16 reference query per gruppo KV.

Misure Zyphra, figura 5: Qwen3.6-35B-A3B, ZHA con 16 reference query e top-p 0,95. Deep usa C4 L6; Wide C256 L1. Punteggi percentuali; ogni confronto va letto sulla stessa riga.
BenchmarkDenseZHA DeepZHA Wide
RULER-13 a 256K96,093,396,2
LongBench v258,063,462,4
SWE-bench Verified67,467,468,4
Terminal-Bench 2.149,946,753,3
Domande, tentativi e impostazioni dei benchmark ZHA
  • RULER-13: 13 task con 100 esempi per task, a 256K token; greedy, thinking disattivato.
  • LongBench v2: 205 domande con contesto originale di almeno 128K; thinking attivo.
  • SWE-bench Verified: 500 task, una esecuzione per task, con mini-swe-agent 2.4.6.
  • Terminal-Bench 2.1: 89 task, cinque tentativi per task, con Harbor 0.24 / Terminus-2.

Su RULER, Deep perde 2,7 punti rispetto alla versione originale di Qwen, mentre Wide ottiene un risultato molto vicino. Su LongBench v2, Deep supera di 12,7 punti anche la variante con MSA valutata nello stesso studio, ferma a 50,7. Gli autori hanno addestrato l'indexer MSA con 40B token di warmup, contro circa 1B per ZHA, lasciando invariati i pesi del modello. Il risultato dipende dai modelli e dalle condizioni di training usati nello studio.

I risultati peggiorano su Nemotron-3.5-Lightning-30B-A3B, che usa NoPE, senza positional encoding esplicito. Con top-p 0,95, ZHA Deep perde 25,3 punti RULER e Wide 10,2 rispetto alla baseline. I risultati ottenuti su Qwen non bastano quindi a prevedere quelli su un'altra architettura.

ZHA, figura 5 e appendice B: benchmark, protocolli e risultati Nemotron

ZHA a un miliardo di token: cosa è stato davvero verificato

Il costo di ZHA può crescere meno che quadraticamente, ma solo a certe condizioni: dipende da come aumenta la profondità dell'albero e da quanti nodi vengono selezionati. Contano sia la struttura dell'albero sia la soglia top-p: se la ricerca deve seguire molti rami, il risparmio si riduce.

Zyphra precisa che questo lavoro non include il rilascio di kernel ottimizzati. Le stime di velocità derivano da un modello roofline, che tiene conto dei calcoli da eseguire, della banda di memoria, dell'overhead dei kernel e del parallelismo disponibile sulla GPU.

Per una configurazione leggera, le stime indicano che ZHA diventerebbe più veloce della dense attention intorno a 48K token e di MSA intorno a 0,48M. A un miliardo di token, lo speedup previsto è di 373-417 volte rispetto alla dense attention e di 52-58 volte rispetto a MSA. Il modello teorico stima il tempo di decode della parte di attention di un singolo layer, con batch 1.

Anche il paper LSA contiene previsioni oltre i contesti testati: i risultati oltre 10M, compreso il vantaggio atteso per Tree a 100M, sono estrapolazioni.

ZHA, sezione V e figura 8: modello di latenza e ipotesi di estrapolazioneLSA, figura 6: estrapolazione oltre 10M token

Perché questi risultati non dicono se LSA sia migliore di ZHA

Il paper LSA riporta tempi misurati eseguendo i modelli in SGLang con contesti fino a 10M token. Il paper ZHA approfondisce invece come variano la selezione delle key e i risultati al cambiare della struttura dell'albero, anche nei test su agenti. Per stabilire quale metodo sia più veloce a parità di qualità, bisognerebbe provarli sullo stesso modello, con gli stessi prompt e lo stesso hardware.

I numeri dei due studi non si possono confrontare direttamente:

  • I modelli sono diversi. LSA usa Qwen-3.8-27B, ZHA Qwen3.6-35B-A3B. Manca un modello comune con cui verificare quanto incidano le differenze fra i due studi.
  • RULER viene eseguito a lunghezze diverse. Un risultato a 10M non è confrontabile con uno a 256K. LSA usa 20 esempi per task oltre 1M; ZHA ne usa 100 a 256K.
  • Le domande di LongBench v2 cambiano. LSA ne usa 60; ZHA ne seleziona 205 con contesto originale di almeno 128K. Cambiano anche i limiti di generazione.
  • Cambiano i test di reasoning. LSA valuta AIME 2025, ZHA AIME 2026, con sampling e numero di ripetizioni diversi.
  • Le latenze descrivono cose diverse. Il tempo di una richiesta completa, quello di un singolo layer e una stima roofline non misurano la stessa cosa.

Possiamo confrontare ciascun metodo con la sua baseline nello stesso studio. Calcolare una media fra risultati ottenuti in condizioni così diverse sarebbe fuorviante.

LSA, tabelle 3 e 6: protocolli di velocità e qualitàZHA, appendice B e sezione V: protocolli e modello di performance

Come iniziare a sperimentare con LSA

Se vuoi usare LSA per un assistente che consulta paper scientifici, parti da domande di cui puoi verificare la risposta. Alcune dovrebbero richiedere di collegare più documenti; altre dovrebbero chiedere informazioni assenti dalla raccolta, per verificare se il modello riconosce di non avere una risposta. Controlla la correttezza delle risposte e delle fonti citate, poi misura TTFT, TPOT e memoria.

Prefrontal AI mette a disposizione il codice, le matrici ottenute dalla distillazione dell'indexer e le configurazioni degli esperimenti. Questi comandi si limitano a preparare l'ambiente e mostrare l'help della CLI. Non li abbiamo eseguiti; seguono il README della versione indicata. Servono Python 3.12 e uv. Per eseguire i modelli con il runtime descritto dagli autori servono GPU NVIDIA e il relativo software.

1. Scarica la versione usata come riferimento

Il comando git checkout seleziona la versione del repository a cui si riferisce questa guida, così eventuali aggiornamenti successivi non cambiano i comandi e le configurazioni.

git clone https://github.com/Prefrontal-AI/latent-sparse-attention.git
cd latent-sparse-attention
git checkout 906be195c1052aaa74f95852ad1917ce1926ba64
uv sync --locked --extra evaluation
uv run lsa --help
2. Prepara il runtime e i pesi dell'indexer

La guida del repository usa il fork SGLang degli autori, disponibile nell'immagine ghcr.io/prefrontal-ai/sglang:lsa-v0.1.0. Il plugin LSA va installato separatamente. La release d-lsa-weights-v1 contiene le matrici dell'indexer; servono anche i pesi del modello di partenza.

Il README richiede il flag --disable-prefill-cuda-graph. All'avvio devi controllare che nei log compaia armed, il messaggio che segnala l'attivazione del plugin, e aspettare che il server sia pronto a ricevere richieste. Se il plugin non si attiva, il modello continua a usare l'attention originale.

Controlla anche che la versione del codice supporti il modello scelto: il README mostra un esempio Qwen, mentre models.md descrive il supporto al serving solo per GLM e segnala alcune sezioni da aggiornare. La documentazione non è quindi del tutto allineata. Installare la CLI non basta a verificare che il modello possa essere eseguito con LSA.

3. Confronta qualità e tempi sul tuo corpus

Confronta prima full attention e D-LSA Flat usando lo stesso modello, gli stessi prompt, le stesse impostazioni di sampling e la stessa lunghezza del contesto. Prova poi Tree separatamente. In configs/evaluation/ trovi le configurazioni per misurare la qualità, i tempi dei kernel e quelli dell'intera richiesta.

Per raggiungere 10M token con Qwen, gli autori usano anche YaRN e distribuiscono il lavoro fra più GPU. Aumentare soltanto il limite di contesto del server non riproduce quell'esperimento. Il paper ZHA, invece, non fornisce kernel ottimizzati con cui eseguire un confronto analogo sui tempi.

Repository LSA: installazione, quick start, mappe e riproduzioneLSA, setup: YaRN e parallelismoZHA, Speedup: kernel ottimizzati fuori dallo scopo del lavoro

Memoria, licenze e limiti pratici

Entrambi i metodi conservano la KV cache. Ridurre le key consultate da una query non significa poter eliminare tutte le altre: una domanda successiva potrebbe averne bisogno. La memoria della cache continua quindi a crescere linearmente con il contesto.

Nel test LSA su GLM a 10M token, la KV cache di un solo layer occupa 10 GiB. Con context parallelism su otto GPU, ogni processo GPU, o rank, ne conserva 1,25 GiB, insieme a una copia completa dell'indice dei bucket da 246 MiB. Per calcolare la memoria necessaria all'intero modello bisogna considerare anche gli altri layer, i pesi e le ulteriori allocazioni del runtime.

Il codice LSA è rilasciato sotto Apache-2.0; le componenti di terze parti mantengono le proprie licenze e il kit PaperTrail è indicato come CC BY 4.0. Per i modelli di partenza e i dataset restano valide le rispettive licenze. Per ZHA, la disponibilità del paper su arXiv non implica una licenza software o il rilascio di un runtime ottimizzato.

LSA riduce il tempo necessario a consultare contesti molto lunghi, soprattutto quando la ricerca delle key è l'operazione più costosa. Restano da capire quanto regga sui compiti più difficili, quando convenga usarla sotto il milione di token e come si comporti N-LSA su modelli più grandi. ZHA affronta lo stesso problema con una scelta diversa: adattare il numero di key lette alla domanda e alle informazioni presenti nel contesto.

LSA, Parallelism e Discussion: memoria e limitiZHA, Motivation e Discussion: conservazione della cache e limitiLSA: testo della licenza Apache-2.0LSA: licenze di terze parti e dataset

Domande frequenti su LSA e ZHA

LSA rende il modello 72 volte più veloce?

No. Il fattore 72,4 riguarda il prefill di un layer di attention di Qwen a 10M token su H200. Nel test end-to-end corrispondente, D-LSA Flat riduce il tempo al primo token di 9,21 volte e il tempo per token generato di 2,87 volte.

Tutte le varianti LSA sono subquadratiche?

No. Il paper descrive un costo subquadratico per Tree quando l'ampiezza del beam resta costante a ogni livello. Flat confronta invece ogni query con tutti i centroidi. Anche gli esperimenti di training N-LSA usano Flat, non Tree.

ZHA ha già dimostrato di usare un miliardo di token?

No. Le latenze a un miliardo di token sono stime ottenute con un modello teorico. I test di qualità arrivano a 256K; oltre quelle lunghezze non sappiamo se ZHA mantenga gli stessi risultati.

Un contesto enorme sostituisce il RAG?

I due paper non lo dimostrano. Un sistema RAG può ancora servire a scegliere quali documenti fornire al modello, usare fonti aggiornate, rispettare i permessi di accesso e limitare i costi. LSA e ZHA intervengono invece sull'attention del modello, quando i documenti sono già nel contesto.

Posso attivare LSA su qualsiasi modello locale?

No. D-LSA richiede i pesi di un indexer compatibile con il modello e un runtime che supporti LSA. Il paper descrive test su Qwen-3.8-27B e GLM-5.3-Flash con GPU NVIDIA. Da questi risultati non si può dedurre che funzioni anche con llama.cpp, MLX o su Apple Silicon.

È la stessa tecnologia usata nei modelli ibridi come LFM3?

LSA si concentra sulla selezione delle key nei layer di attention. Un'architettura ibrida combina invece operatori diversi lungo il modello: trovi un esempio nella guida a LFM3 di Liquid AI. Le due idee possono essere complementari; questo non implica che LFM3 integri LSA.

Fonti

Dati aggiornati al 3 novembre 2026. L'articolo si basa su LSA v1, pubblicato il 30 ottobre, e ZHA v2, aggiornato il 2 novembre. I risultati dei benchmark sono quelli degli autori: non abbiamo ripetuto gli esperimenti. Abbiamo calcolato le differenze fra i punteggi, i tempi ricavati dagli speedup e il risparmio percentuale sul tempo di training, usando i valori arrotondati dei paper. L'assistente di ricerca è un esempio d'uso; non abbiamo eseguito i comandi.

References

  1. Kubicek et al. - Latent Sparse Attention: Towards Subquadratic Ultra-Long Context Attention, v1
  2. Lufkin et al. - Subquadratic Attention with a Hierarchical Tree-Structured Indexer, v2
  3. Prefrontal AI - codice LSA e README al commit 906be195c1052aaa74f95852ad1917ce1926ba64
  4. Prefrontal AI - LICENSE, Apache-2.0
  5. Prefrontal AI - THIRD_PARTY_NOTICES.md

Mauro Sciancalepore - Notizie AI, Deep Learning e Ricerca

Resta aggiornato sulle ultime notizie di Intelligenza Artificiale e Deep Learning. Approfondimenti completi sulla ricerca e stato dell'arte.

© 2026 mauroscia.it
Tutti i diritti riservati.