FinanceBench ha mostrato la scorsa settimana che il recupero delle informazioni non è la parte difficile del QA finanziario — lo è il ragionamento numerico. FinQA, pubblicato a EMNLP 2021, è l'articolo che ne ha stabilito le ragioni. Lo leggo ora perché è il benchmark fondante per l'aritmetica finanziaria; ogni lavoro successivo in questo campo lo estende o lo usa come riferimento, e capire dove i suoi modelli falliscono spiega dove anche gli attuali agenti Beancount falliranno.
L'articolo
Zhiyu Chen, Wenhu Chen e colleghi dell'UC Santa Barbara, J.P. Morgan e Amazon hanno presentato FinQA: Un Dataset di Ragionamento Numerico su Dati Finanziari (arXiv:2109.00122, EMNLP 2021). Il compito principale: dato un report sugli utili contenente sia una narrazione in prosa sia una o più tabelle finanziarie, rispondere a una domanda che richiede aritmetica multi-step basata su fatti tratti da entrambe le modalità. La risposta deve essere derivata tramite un programma numerico esplicito — una sequenza di fino a cinque operazioni (addizione, sottrazione, moltiplicazione, divisione, confronto, aggregazione di tabelle e alcune altre) applicate a valori estratti.
Undici professionisti finanziari statunitensi (CPA, MBA) hanno costruito il dataset a mano da 2.789 pagine di report sugli utili S&P 500 dal 1999 al 2019. Il dataset finale contiene 8.281 coppie QA annotate, ciascuna con fatti di supporto reali e il programma di ragionamento completo, rendendolo completamente eseguibile e verificabile.
Idee chiave
- Il divario è brutale al momento del rilascio. FinQANet (RoBERTa-large), il miglior modello neurale che gli autori hanno potuto schierare, ha raggiunto un'accuratezza di esecuzione del 61.24% e un'accuratezza del programma del 58.86% sul set di test. Gli esperti finanziari umani hanno ottenuto il 91.16% e l'87.49%. I lavoratori della folla non esperti hanno raggiunto solo il 50.68% — appena sopra la linea di base neurale, il che suggerisce che il dominio richiede vera competenza, non solo comprensione della lettura.
- Multi-step è dove tutto si rompe. Per i programmi che richiedono tre o più passaggi di ragionamento, l'accuratezza di FinQANet crolla al 22.78%. Il modello può gestire ragionevolmente l'aritmetica a due passaggi; qualsiasi cosa più lunga e l'errore si accumula.
- Le domande cross-modali sono il caso difficile. Le domande le cui prove abbracciano sia la tabella sia la prosa mostrano un'accuratezza del 43.80%, circa 17 punti al di sotto della media generale. Ancorare un numero da un paragrafo di tabella a un qualificatore nel testo non è qualcosa che i modelli pre-addestrati standard fanno bene.
- Le costanti di dominio sono un killer silenzioso. Quando un passaggio del programma richiede una costante che è una convenzione finanziaria (ad esempio, ci sono 1.000 migliaia in un milione, o che un punto base è 0.01%) piuttosto che qualcosa di dichiarato nel documento, l'accuratezza scende al 43.88%. Il modello non riesce a distinguere in modo affidabile "questo numero è nel documento" da "questo numero è conoscenza del mondo."
- ~50% degli errori risalgono a lacune nella conoscenza del dominio, non a fallimenti di recupero o errori di esecuzione aritmetica. Il modello ha trovato i fatti giusti ma ha applicato la logica finanziaria sbagliata.
- LLM successivi riducono sostanzialmente il divario ma non lo eliminano. GPT-4 è riportato con un'accuratezza di esecuzione di circa il 76% su FinQA, e i sistemi SOTA specifici per attività hanno raggiunto circa l'89% entro il 2024 — ancora al di sotto delle prestazioni degli esperti umani.
Cosa regge — e cosa no
La progettazione del benchmark è solida. Usare programmi eseguibili invece di risposte in testo libero è la scelta giusta: puoi valutare un modello in modo inequivocabile e ottenere una finestra su come ha ragionato, non solo se aveva ragione. La decisione di richiedere prove sia dalla tabella che dal testo riflette l'analisi finanziaria del mondo reale, dove la tabella fornisce il numero e la nota a piè di pagina spiega cosa significa quel numero.
Detto questo, il compito è più ristretto di quanto sembri. Il DSL predefinito di operazioni copre l'aritmetica finanziaria standard, ma non può rappresentare una decisione di categorizzazione ("questa spesa è ricorrente o una tantum?"), un controllo normativo ("questo flusso di cassa è conforme alla nostra politica di bilancio?") o qualsiasi cosa che richieda il recupero esterno di dati di mercato o standard contabili. I programmi sono corretti e spiegabili, ma vivono in un mondo in cui l'unica incertezza è l'aritmetica, non il giudizio.
L'impostazione di recupero fornisce anche al modello fatti di supporto reali durante l'addestramento, il che lusinga i numeri. In una distribuzione reale, dovresti recuperare le giuste celle della tabella da un lungo documento prima di poter eseguire il programma — e quel passaggio di recupero non è banale, come ha mostrato FinanceBench la scorsa settimana.
Infine, i risultati del 2021 sottostimano le capacità attuali dei modelli. La linea di base del ~61% era pre-ChatGPT. Il numero del ~76% di GPT-4 e il numero SOTA dell'~89% provengono da pipeline specializzate che combinano catena di pensiero, esecuzione di codice e fine-tuning. Il divario dall'esperto umano (91%+) si è ridotto ma persiste.
Perché questo è importante per l'AI finanziaria
I registri Beancount sono essenzialmente report sugli utili semplificati: righe strutturate di dare e avere con metadati in prosa nelle note di transazione, nei campi del beneficiario e nelle gerarchie di conti. Ogni abilità testata dal benchmark FinQA si mappa direttamente su qualcosa che un agente Beancount deve fare.
La modalità di fallimento cross-modale è particolarmente importante. In un contesto Beancount, un agente potrebbe vedere un importo di transazione nel registro, un tasso di cambio estero in una direttiva sui prezzi e un commento nel campo note — e aver bisogno di tutti e tre per calcolare il valore corretto nella valuta di reporting. I modelli testati da FinQA nel 2021 non potevano fare riferimento incrociato a queste fonti in modo affidabile. Gli LLM attuali fanno meglio, ma l'accuratezza del 22.78% sui programmi con 3+ passaggi è un avvertimento: la lunghezza della catena è un vero asse di fallimento, e le attività di riconciliazione del registro multi-step lo incontreranno.
Anche il problema delle costanti di dominio si generalizza. La contabilità ha le sue convenzioni — invarianti di partita doppia, semantica dei tipi di conto, confini dell'anno fiscale — che un modello deve conoscere senza che gli vengano dette. L'analisi degli errori di FinQA che mostra ~50% di fallimenti di conoscenza del dominio suggerisce che un agente Beancount necessita di un fine-tuning sulle convenzioni contabili o di un livello di recupero esplicito per le regole contabili, non solo di voci di registro.
La rappresentazione del programma del benchmark, sebbene vincolata, indica anche come gli agenti Beancount dovrebbero esprimere il loro ragionamento: non in linguaggio naturale che potrebbe essere vago, ma in operazioni eseguibili che possono essere controllate, ripristinate o verificate.
Cosa leggere dopo
- TAT-QA (arXiv:2105.07624, ACL 2021) — estende l'ambientazione ibrida tabella+testo a 16.552 domande con una più ricca varietà di tipi di ragionamento; il modello TAGOP che introduce vale la pena studiare per come gestisce congiuntamente l'estrazione di porzioni di testo da entrambe le modalità.
- ConvFinQA (arXiv:2210.03849, EMNLP 2022) — l'estensione conversazionale di FinQA, dove ogni dialogo ha dipendenze numeriche tra i turni; la struttura multi-turno si mappa direttamente su un assistente Beancount interattivo che deve tenere traccia dei calcoli in corso attraverso i follow-up dell'utente.
- MultiHiertt (arXiv:2206.01347, ACL 2022) — spinge l'ambientazione verso report finanziari con più tabelle gerarchiche per documento; un passo necessario verso le dichiarazioni di consolidamento e le viste di registro pluriennali che gli agenti Beancount dovranno affrontare.