La lamentela ricorrente contro i RAG in produzione è che il recupero è uno strumento grossolano quando i fatti rilevanti sono sparsi in decine di documenti con formati incompatibili. StructRAG (Li et al., ICLR 2025) affronta direttamente questo problema convertendo il testo recuperato in una struttura adatta al compito — tabella, grafo, catalogo, algoritmo o semplice blocco di testo — prima di ragionarci sopra. L'approccio è motivato da una teoria cognitiva: gli esseri umani rimodellano naturalmente le informazioni grezze in rappresentazioni strutturate quando affrontano compiti di ragionamento complessi. Che questa cornice sia più una metafora che un meccanismo, i numeri empirici meritano un esame attento.
L'articolo
StructRAG propone una pipeline al momento dell'inferenza con tre moduli. In primo luogo, un router ibrido di strutture (Qwen2-7B-Instruct, ottimizzato con DPO su 900 coppie di preferenze sintetiche) predice quale dei cinque tipi di struttura si adatti meglio alla domanda in arrivo e ai suoi documenti. In secondo luogo, uno strutturalizzatore di conoscenze sparse (Qwen2-72B-Instruct) riscrive i blocchi recuperati nel formato scelto. In terzo luogo, un utilizzatore di conoscenze strutturate scompone la domanda in sotto-domande, recupera i frammenti strutturati pertinenti e genera la risposta finale. I cinque tipi di struttura sono: tabella (confronti statistici), grafo (catene multi-hop, codificate come triplette testa-relazione-coda), algoritmo (compiti di pianificazione, scritti come pseudo-codice), catalogo (riassunti, numerazione gerarchica) e blocco di testo (single-hop semplice, il fallback RAG predefinito).
Gli autori valutano principalmente sul benchmark Loong (EMNLP 2024 Oral), un benchmark di QA multi-documento che spazia da relazioni finanziarie, casi legali e articoli accademici, con input da 10K a 250K token, coprendo quattro tipi di compiti: Localizzazione di Punti Chiave, Confronto, Clustering e Catena di Ragionamento.
Idee chiave
- Il router addestrato con DPO raggiunge il 94.38% di accuratezza nella selezione del tipo di struttura rispetto al 50.04% zero-shot con Qwen2-72B-Instruct — la decisione di instradamento è il componente più critico. L'ablazione del router riduce il punteggio LLM complessivo da 60.38 a 45.33.
- Al livello di lunghezza documentale più difficile (200K–250K token), StructRAG ottiene 51.42 contro 28.92 di Long-Context e 29.29 di RAG — un divario di ~22 punti che si amplia con la crescita del contesto. L'approccio standard "infila tutto nel contesto" si deteriora bruscamente mentre StructRAG degrada in modo più graduale.
- GraphRAG, nonostante imponga anch'esso una struttura, ottiene un punteggio LLM complessivo di 40.82 su Loong contro il 69.43 di StructRAG, e richiede 217.1 minuti per query contro i 9.7 minuti di StructRAG. Precostruire un grafo di conoscenza globale è sia più lento che meno accurato che scegliere il formato giusto su richiesta.
- Su Podcast Transcripts (riassunti open-ended), StructRAG raggiunge un tasso di vittoria pairwise del 95.75% rispetto a Long-Context, suggerendo che la sintesi strutturata supera gli approcci a contesto completo anche su materiale sorgente meno strutturato.
- I punteggi di corrispondenza esatta (EM) restano costantemente inferiori ai punteggi giudicati da LLM perché la strutturalizzazione cambia la formulazione superficiale (ad esempio, "$1,308,463" diventa "138463" in una cella di tabella), creando un problema sistematico di disallineamento token che penalizza la valutazione automatica.
Cosa regge — e cosa no
Il risultato principale è reale e la storia dell'ablazione è pulita: l'instradamento conta di più, seguito dalla strutturalizzazione e infine dall'utilizzo. Il miglioramento a lunghezze documentali elevate è il risultato più solido — 22 punti a 200K token non sono rumore.
Detto questo, ho tre riserve. Primo, la copertura del benchmark è scarsa. StructRAG riporta solo Loong e Podcast Transcripts. I benchmark multi-hop standard (HotpotQA, 2WikiMultiHopQA, MuSiQue, NQ) sono notevolmente assenti, il che rende impossibile valutare come StructRAG si confronti con il vasto corpo di precedenti ricerche sul recupero su quelle suddivisioni consolidate. I revisori dell'ICLR presumibilmente hanno sollevato questo punto; l'articolo non offre una risposta diretta nella versione pubblicata.
Secondo, il modello di valutazione è GPT-4. Il punteggio LLM-as-judge è suscettibile a bias di lunghezza e preferenze stilistiche che potrebbero favorire output provenienti dallo stesso processo di strutturalizzazione, specialmente quando il giudice è stato addestrato su testo strutturato simile. La metrica EM è un correttivo, ma gli autori la inquadrano come una limitazione della metrica piuttosto che come prova di un problema con il metodo.
Terzo, StructRAG è testato con un backbone di grandi dimensioni (Qwen2-72B-Instruct per lo strutturalizzatore e l'utilizzatore). Non è chiaro quanto del guadagno derivi dall'instradamento rispetto al semplice chiamare un modello potente per riscrivere e riassumere. Un'ablazione rispetto a una baseline di risposta diretta della stessa dimensione risolverebbe la questione, ma non è presentata.
Perché questo conta per l'AI finanziaria
I registri Beancount sono l'esempio canonico del problema delle "informazioni sparse". Una singola domanda di riconciliazione — "perché il mio patrimonio netto è sceso nel Q3?" — può richiedere la lettura di voci di transazione da tre conti, il confronto incrociato con un report di bilancio e il tracciamento di una catena di correzioni multi-step. Queste mappano quasi uno-a-uno sui tipi di struttura di StructRAG: tabelle per confronti di bilancio, grafi per catene di transazioni, cataloghi per riassunti periodici.
L'intuizione dell'instradamento è particolarmente applicabile. Un agente Beancount focalizzato sulle query non dovrebbe sempre scaricare blocchi nel contesto; dovrebbe prima chiedersi quale forma richieda la risposta. Una domanda sull'andamento del saldo richiede una tabella. Una domanda "spiega questa catena di rimborsi" richiede un grafo. Una domanda "riassumi le spese di quest'anno" richiede un catalogo. Cablare esplicitamente questa decisione di instradamento — anche con un piccolo modello — potrebbe ridurre drasticamente l'allucinazione e il pasticcio sui numeri che affligge gli attuali tentativi di QA sui registri.
La questione della latenza (217 contro 9.7 minuti) conta anche in pratica. Per un agente Beancount interattivo, il costo di pre-indicizzazione di GraphRAG è proibitivo per registri aggiornati frequentemente; l'approccio al momento dell'inferenza di StructRAG si adatta meglio al caso d'uso dei registri con molte scritture e poche query.
L'avvertenza: lo strutturalizzatore di StructRAG è una chiamata a un grande LLM per ogni query. Per storie di registri lunghe, quel costo di inferenza potrebbe diventare significativo. Una strutturalizzazione efficiente in termini di token — magari con un modello più piccolo ottimizzato — è una questione ingegneristica aperta.
Cosa leggere dopo
- From Local to Global: A Graph RAG Approach to Query-Focused Summarization (Edge et al., 2024, arXiv:2404.16130) — Microsoft GraphRAG usa riassunti di comunità per query globali; capire dove la strutturalizzazione al momento dell'inferenza di StructRAG supera la pre-indicizzazione di GraphRAG è il compromesso architetturale chiave da definire.
- FinAuditing: A Financial Taxonomy-Structured Multi-Document Benchmark (arXiv:2510.08886) — testa 13 LLM su archivi XBRL con tabelle gerarchiche; un test diretto per verificare se le strutture tabella e catalogo di StructRAG si trasferiscono al formato di archiviazione strutturato a cui i registri Beancount assomigliano.
- InvestorBench: A Benchmark for Financial Decision-Making Tasks with LLM-based Agent (arXiv:2412.18174, ACL 2025) — valuta agenti su decisioni finanziarie in tempo reale, il che ci permetterebbe di misurare se il ragionamento strutturato di StructRAG aiuta effettivamente la qualità decisionale a valle oltre l'accuratezza QA single-hop.