La generazione aumentata da recupero vive o muore in base a quanto bene il generatore riesce a sintetizzare le prove distribuite su più documenti. L'articolo di Izacard e Grave del 2021 per EACL, "Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering," propone una soluzione architetturale ingannevolmente semplice — codificare i passaggi in modo indipendente, fonderli tutti nel decoder — che supera di gran lunga il framework RAG allora dominante. Lo sto leggendo ora perché il principio di progettazione si mappa direttamente sulla QA dei registri contabili: prima di decidere come recuperare le voci negli agenti Beancount, vale la pena capire quale strategia di fusione funziona effettivamente.
L'articolo
Il RAG originale di Lewis et al. (arXiv:2005.11401) accoppia un recuperatore denso con un generatore BART, ma costringe il generatore a condizionarsi su un singolo passaggio recuperato alla volta, marginalizzando sui passaggi o per sequenza (RAG-Sequence) o per token (RAG-Token). Izacard e Grave hanno identificato questo come il vincolo stringente: un modello che può vedere solo un passaggio alla volta non può facilmente triangolare attraverso prove sparse tra documenti diversi.
La loro soluzione FiD (Fusion-in-Decoder) è elegante. Ogni passaggio recuperato viene concatenato con la domanda, quindi codificato indipendentemente dal codificatore di T5. Il codificatore viene eseguito una volta per passaggio — completamente parallelizzabile. Il decoder esegue quindi l'attenzione incrociata sulla concatenazione di tutte le rappresentazioni dei passaggi simultaneamente. La complessità del codificatore scala linearmente con il numero di passaggi; il decoder, crucialmente, può prestare attenzione oltre i confini dei passaggi durante ogni fase di generazione. L'articolo utilizza T5-base e T5-large come backbone del generatore.
Idee chiave
- FiD-large con 100 passaggi recuperati raggiunge il 51,4% di corrispondenza esatta su Natural Questions e il 67,6% su TriviaQA aperta, rispetto al 47,5% e 56,1% di RAG-Sequence — guadagni rispettivamente di circa 4 e 11 punti.
- Le prestazioni su Natural Questions scalano monotonamente con il numero di passaggi: 37,3% con 1 passaggio, 48,8% con 10, 50,8% con 50, 51,4% con 100. Il rendimento marginale diminuisce ma non si inverte mai.
- TriviaQA migliora del 6% e NaturalQuestions del 3,5% quando si scala da 10 a 100 passaggi — prova che il decoder sta genuinamente aggregando, non solo selezionando il passaggio migliore.
- La fase di codifica è economica da parallelizzare: ogni coppia (domanda, passaggio) viene elaborata indipendentemente, quindi il tempo a muro scala sub-linearmente con l'hardware.
- FiD-base con 770M parametri supera T5-11B a libro chiuso (44,1% vs 36,6% su NQ), dimostrando che il recupero fa sì che modelli più piccoli colpiscano molto al di sopra del loro peso.
Cosa regge — e cosa no
Il risultato centrale è robusto ed è stato replicato estesamente. L'intuizione architetturale — codifica indipendente, decodifica congiunta — è genuinamente pulita: evita l'esplosione quadratica dell'auto-attenzione che deriverebbe dalla concatenazione ingenua di tutti i passaggi prima del codificatore, pur dando al decoder un contesto globale su tutte le prove recuperate.
Il limite che l'articolo riconosce a malapena è che l'attenzione incrociata del decoder è il collo di bottiglia al momento dell'inferenza. L'attenzione incrociata deve caricare tutte le coppie chiave-valore del codificatore per ogni strato del decoder per ogni fase di generazione, e quei tensori chiave-valore crescono linearmente con il numero di passaggi. Un successivo articolo del 2023, FiDO (arXiv:2212.08153), ha mostrato che la sostituzione dell'attenzione multi-testa con l'attenzione multi-query e la potatura degli strati di attenzione incrociata produce un'accelerazione dell'inferenza di 7x con una perdita di precisione minima — il che implica che il decoder FiD originale è sostanzialmente sovradimensionato per ciò che il compito richiede.
C'è anche un divario di calibrazione che l'articolo non esplora: riporta la corrispondenza esatta, che premia i sistemi che producono la stringa di risposta canonica precisa. Per compiti di sintesi fattuale — riassumere i risultati attraverso più passaggi anziché estrarre un intervallo — la corrispondenza esatta sottostima gli errori e sopravvaluta la fiducia. In contesti finanziari, dove un numero sbagliato in una frase altrimenti corretta è un grave fallimento, la corrispondenza esatta è la metrica sbagliata del tutto.
Perché questo è importante per l'AI finanziaria
La QA sui registri Beancount è un problema di recupero multi-passaggio per natura. Una domanda come "Quanto ho speso per i viaggi nel terzo trimestre su tutti i conti?" richiede di sintetizzare dozzine di voci di transazione da date, conti e tipi di commodity diversi. Il risultato centrale di FiD — che i modelli generativi possono aggregare attraverso molti passaggi recuperati, e che le prestazioni migliorano con più contesto — è direttamente incoraggiante.
L'implicazione pratica di progettazione è concreta: quando si costruisce un livello di QA per Beancount, recuperare più voci candidate (50–100 invece delle solite prime 5) e dare al generatore accesso congiunto a tutte è probabilmente meglio che affidarsi al ri-ordinamento per scegliere una risposta giusta. L'architettura FiD si mappa anche pulitamente sulla struttura del registro: ogni voce di transazione può essere codificata indipendentemente (economica, parallelizzabile) prima che il decoder sintetizzi attraverso tutte.
La preoccupazione per il costo dell'inferenza è reale per le implementazioni in produzione, ma il follow-up di FiDO mostra che è risolvibile a livello architetturale senza penalità di precisione. La limitazione più pressante per gli agenti finanziari è che FiD è progettato per la QA fattuale con output generativi brevi. L'analisi del registro spesso richiede aritmetica multi-passaggio — sommare importi, calcolare rapporti — e il generatore di FiD non indirizza intrinsecamente questo a un interprete. Combinare la fusione in stile FiD con una testa di generazione di codice in stile PAL è il passo successivo naturale per la precisione numerica.
Cosa leggere dopo
- FiDO (arXiv:2212.08153, ACL Findings 2023) — attenzione multi-query e potatura dell'attenzione incrociata recuperano la precisione di FiD con un'inferenza 7x più veloce; essenziale prima di distribuire FiD in produzione
- REALM: Retrieval-Augmented Language Model Pre-Training (arXiv:2002.08909, ICML 2020) — Guu et al. mostrano come incorporare il recupero durante il pre-addestramento piuttosto che solo all'inferenza; fornisce la motivazione a monte su cui FiD si basa
- Atlas: Few-shot Learning with Retrieval Augmented Language Models (arXiv:2208.03299, JMLR 2023) — l'estensione di Izacard et al. di FiD a contesti few-shot con addestramento congiunto di recuperatore e lettore, la sintesi più completa della linea di lavoro