FinQA: De benchmark voor het meten van numeriek redeneren door AI in financiële rapporten
FinanceBench liet vorige week zien dat retrieval niet het moeilijkste deel is van financiële QA — numeriek redeneren is dat wel. FinQA, gepubliceerd op EMNLP 2021, is de paper die vaststelde waarom. Ik lees het nu omdat het de fundamentele benchmark is voor financiële rekenkunde; elk volgend werk in dit vakgebied bouwt hierop voort of gebruikt het als benchmark, en begrijpen waar de modellen falen verklaart ook waarom huidige Beancount-agents zullen falen.
De paper
Zhiyu Chen, Wenhu Chen en collega's van UC Santa Barbara, J.P. Morgan en Amazon introduceerden FinQA: A Dataset of Numerical Reasoning over Financial Data (arXiv:2109.00122, EMNLP 2021). De kerntaak: geef op basis van een kwartaalverslag met zowel een tekstueel verslag als een of meer financiële tabellen antwoord op een vraag die meerstaps rekenkunde vereist over feiten uit beide modaliteiten. Het antwoord moet worden afgeleid via een expliciet numeriek programma — een reeks van maximaal vijf bewerkingen (optellen, aftrekken, vermenigvuldigen, delen, vergelijken, tabelaggregatie en enkele andere) toegepast op de geëxtraheerde waarden.
Elf in de VS gevestigde financiële professionals (accountants, MBA's) bouwden de dataset met de hand op basis van 2.789 pagina's aan S&P 500-kwartaalcijfers uit de periode 1999–2019. De uiteindelijke dataset bevat 8.281 geannoteerde QA-paren, elk voorzien van de juiste ondersteunende feiten en het volledige redeneerprogramma, waardoor het volledig uitvoerbaar en controleerbaar is.
Belangrijke inzichten
- De kloof is enorm op het moment van release. FinQANet (RoBERTa-large), het beste neurale model dat de auteurs konden inzetten, behaalde een nauwkeurigheid van 61,24% op uitvoering en 58,86% op programmanauwkeurigheid op de testset. Menselijke financiële experts scoorden 91,16% en 87,49%. Niet-deskundige crowdwerkers behaalden slechts 50,68% — nauwelijks boven de neurale baseline, wat aangeeft dat het domein echte expertise vereist en niet alleen begrijpend lezen.
- Meerstaps bewerkingen zijn het breekpunt. Voor programma's die drie of meer redeneerstappen vereisen, stort de nauwkeurigheid van FinQANet in naar 22,78%. Het model kan redelijk overweg met rekenkunde in twee stappen; bij alles wat langer is, stapelen de fouten zich op.
- Cross-modale vragen zijn de grootste uitdaging. Vragen waarvan het bewijs zich over zowel de tabel als de tekst verspreidt, vertonen een nauwkeurigheid van 43,80%, ongeveer 17 punten onder het algemene gemiddelde. Het koppelen van een getal uit een tabelparagraaf aan een kwalificatie in de tekst is iets waar standaard voorgetrainde modellen niet goed in zijn.
- Domeinconstanten zijn een stille doder. Wanneer een programmastap een constante vereist die een financiële conventie is (bijv. dat er 1.000 duizendtallen in een miljoen zitten, of dat een basispunt 0,01% is) in plaats van iets dat in het document staat, daalt de nauwkeurigheid naar 43,88%. Het model kan niet betrouwbaar onderscheid maken tussen "dit getal staat in het document" en "dit getal behoort tot algemene wereldkennis".
- ~50% van de fouten is terug te voeren op hiaten in domeinkennis, niet op fouten in retrieval of rekenkundige uitvoering. Het model vond de juiste feiten, maar paste de verkeerde financiële logica toe.
- Latere LLM's dichten de kloof aanzienlijk, maar elimineren deze niet. GPT-4 wordt gerapporteerd op ongeveer 76% uitvoeringsnauwkeurigheid op FinQA, en taakspecifieke SOTA-systemen bereikten rond 2024 ongeveer 89% — nog steeds onder de prestaties van menselijke experts.
Wat overeind blijft — en wat niet
Het ontwerp van de benchmark is solide. Het gebruik van uitvoerbare programma's in plaats van antwoorden in vrije tekst is de juiste keuze: je kunt een model ondubbelzinnig beoordelen en je krijgt inzicht in hoe het heeft geredeneerd, niet alleen of het juist was. De beslissing om bewijs uit zowel tabel als tekst te vereisen, weerspiegelt de praktijk van financiële analyse, waarbij de tabel het getal geeft en de voetnoot vertelt wat het getal betekent.
Dat gezegd hebbende, de taak is beperkter dan het lijkt. De vooraf gedefinieerde DSL van bewerkingen dekt standaard financiële rekenkunde, maar kan geen categorisatiebeslissing vertegenwoordigen ("is deze uitgave terugkerend of eenmalig?"), een beleidscontrole ("voldoet deze kasstroom aan ons budgetbeleid?") of iets dat externe retrieval van marktgegevens of boekhoudnormen vereist. De programma's zijn correct en verklaarbaar, maar ze bestaan in een wereld waar de enige onzekerheid rekenkundig is, niet gebaseerd op oordeelsvorming.
De retrieval-opzet geeft het model tijdens de training ook de juiste ondersteunende feiten (gold facts), wat de cijfers flatteert. In een echte implementatie zou je de juiste tabelcellen uit een lang document moeten ophalen voordat je het programma kunt uitvoeren — en die retrieval-stap is niet triviaal, zoals FinanceBench vorige week liet zien.
Tot slot onderschatten de resultaten uit 2021 de huidige capaciteiten van modellen. De baseline van ~61% was van vóór ChatGPT. De GPT-4 score van ~76% en de SOTA-cijfers van ~89% zijn afkomstig van gespecialiseerde pipelines die chain-of-thought, code-uitvoering en fine-tuning combineren. De kloof met de menselijke expert (91%+) is verkleind, maar blijft bestaan.
Waarom dit belangrijk is voor financiële AI
Beancount-grootboeken zijn in wezen vereenvoudigde kwartaalverslagen: gestructureerde rijen van debet en credit met tekstuele metadata in transactienotities, velden voor begunstigden en rekeninghiërarchieën. Elke vaardigheid die de FinQA-benchmark test, is direct te vertalen naar iets wat een Beancount-agent moet doen.
De cross-modale foutmodus is bijzonder belangrijk. In een Beancount-context kan een agent een transactiebedrag in het grootboek zien, een wisselkoers in een prijsrichtlijn en een opmerking in het notitieveld — en alle drie nodig hebben om de juiste waarde in de rapportagevaluta te berekenen. De modellen die FinQA in 2021 testte, konden die bronnen niet betrouwbaar kruislings raadplegen. Huidige LLM's doen het beter, maar de nauwkeurigheid van 22,78% bij programma's met meer dan 3 stappen is een waarschuwing: ketenlengte is een reële foutfactor, en meerstaps reconciliatietaken in het grootboek zullen hier tegenaan lopen.
Het probleem van domeinconstanten is ook algemeen toepasbaar. Boekhouden heeft zijn eigen conventies — invarianten van dubbel boekhouden, semantiek van rekeningtypes, grenzen van het boekjaar — die een model moet kennen zonder dat ze expliciet worden vermeld. De foutanalyse van FinQA, die laat zien dat ~50% van de fouten voortkomt uit een gebrek aan domeinkennis, suggereert dat een Beancount-agent ofwel fine-tuning op boekhoudconventies nodig heeft, ofwel een expliciete retrieval-laag voor boekhoudregels, en niet alleen voor grootboekmutaties.
De programma-representatie van de benchmark, hoewel beperkt, wijst ook op hoe Beancount-agents hun redenering zouden moeten uitdrukken: niet in natuurlijke taal die vaag kan zijn, maar in uitvoerbare bewerkingen die gecontroleerd, teruggedraaid of gecontroleerd kunnen worden.
Wat je nu kunt lezen
- TAT-QA (arXiv:2105.07624, ACL 2021) — breidt de hybride tabel+tekst-omgeving uit naar 16.552 vragen met een rijkere variëteit aan redeneertypes; het TAGOP-model dat het introduceert is de moeite waard om te bestuderen vanwege de manier waarop het span-extractie uit beide modaliteiten gezamenlijk afhandelt.
- ConvFinQA (arXiv:2210.03849, EMNLP 2022) — de conversationele uitbreiding van FinQA, waarbij elke dialoog numerieke afhankelijkheden heeft tussen verschillende beurten; de multi-turn structuur sluit direct aan bij een interactieve Beancount-assistent die berekeningen moet bijhouden tijdens opeenvolgende vragen van de gebruiker.
- MultiHiertt (arXiv:2206.01347, ACL 2022) — verlegt de grens naar financiële rapporten met meerdere hiërarchische tabellen per document; een noodzakelijke stap richting de consolidatiestaten en meerjarige grootboekoverzichten waar Beancount-agents mee te maken krijgen.
