Salta al contenuto principale

ConvFinQA: Domande e Risposte Finanziarie Multi-Turn e il Divario di 21 Punti tra Modelli ed Esperti Umani

6 minuti di letturaMike ThriftMike Thrift
ConvFinQA: Domande e Risposte Finanziarie Multi-Turn e il Divario di 21 Punti tra Modelli ed Esperti Umani

Dopo aver speso diversi articoli sul QA finanziario a turno singolo — FinQA, FinanceBench, TAT-QA — volevo esaminare cosa succede quando gli utenti fanno domande di follow-up. ConvFinQA (Chen et al., EMNLP 2022) è il documento che prende l'impostazione di FinQA e la estende al dialogo multi-turn, e i risultati espongono una modalità di fallimento che i benchmark a turno singolo semplicemente non possono vedere: i modelli che eccellono nel ragionamento numerico isolato spesso crollano nel momento in cui una domanda fa riferimento a qualcosa detto due turni prima.

Il documento

ConvFinQA, di Zhiyu Chen, Shiyang Li, Charese Smiley, Zhiqiang Ma, Sameena Shah e William Yang Wang (UC Santa Barbara e J.P. Morgan), costruisce un dataset di 3.892 conversazioni multi-turn per un totale di 14.115 domande su 2.066 pagine di report finanziari. Ogni conversazione è basata sui report sugli utili — gli stessi documenti S&P 500 utilizzati in FinQA — e le domande si concatenano in modo che i turni successivi possano fare riferimento a risposte precedenti. Il formato del compito è ereditato da FinQA: i modelli generano un programma in un piccolo linguaggio specifico del dominio (addizione, sottrazione, moltiplicazione, divisione, maggiore, esponenziale) che viene poi eseguito per produrre la risposta. La valutazione utilizza l'accuratezza di esecuzione (se il risultato eseguito corrisponde alla risposta di riferimento) e l'accuratezza del programma (se il programma generato corrisponde al programma di riferimento).

Il dataset ha due tipi di conversazione. Le conversazioni di Tipo I "semplici" scompongono una singola domanda complessa di FinQA in una sequenza di sotto-domande. Le conversazioni di Tipo II "ibride" concatenano le scomposizioni di due diverse domande di FinQA sullo stesso report, forzando un ragionamento trasversale tra aspetti diversi. Oltre il 60% delle domande ha dipendenze da turni precedenti, e le domande della seconda parte nelle conversazioni ibride sono sostanzialmente più difficili perché il modello deve mantenere lo stato del ragionamento attraverso diversi argomenti finanziari.

Idee chiave

  • Miglior modello ottimizzato (FinQANet con RoBERTa-large): 68,90% di accuratezza di esecuzione sul set di test. Gli esperti finanziari umani raggiungono l'89,44%. Lavoratori generici (MTurk): 46,90% — un divario sorprendente che conferma che il compito richiede una genuina conoscenza del dominio.
  • GPT-3 (text-davinci-002, 175B) con 20 esempi few-shot e fatti di supporto di riferimento: 50,30% di accuratezza di esecuzione — ben al di sotto dello specialista ottimizzato e di poco superiore ai lavoratori generici.
  • Il prompting con chain-of-thought danneggia GPT-3: CoT produce il 40,63% contro il 45,15% del prompting standard con programmi. Il modello imita il formato di ragionamento degli esempi forniti invece di applicarlo alla domanda reale.
  • Le conversazioni ibride sono sostanzialmente più difficili: la seconda parte di una conversazione ibrida ottiene il 52,38% per FinQANet contro il 72,37% per le conversazioni semplici. Il riferimento incrociato multi-aspetto è il punto in cui i modelli attuali falliscono.
  • GPT-3 ha particolarmente difficoltà con le domande di selezione numerica — rispondendo a un follow-up come "e per l'anno precedente?" — raggiungendo solo il 35,32% dove FinQANet arriva all'82,54%. La risoluzione anaforica conversazionale è il collo di bottiglia.

Cosa funziona — e cosa no

La costruzione del dataset è accurata e la valutazione è pulita. L'utilizzo dell'accuratezza del programma insieme all'accuratezza di esecuzione è prezioso: due programmi possono produrre la stessa risposta numerica attraverso percorsi di ragionamento diversi (e possibilmente errati), e l'accuratezza del programma lo rileva. La decisione di ancorare le conversazioni a documenti reali S&P 500 mantiene il compito radicato piuttosto che sintetico.

Detto questo, la varietà delle conversazioni è limitata per progettazione. Ogni conversazione è costruita scomponendo domande esistenti di FinQA — non ci sono dialoghi veramente aperti, né turni di chiarimento, né correzioni da parte dell'utente. Le conversazioni contabili reali includono tutto questo. Il dataset è un'approssimazione controllata del ragionamento conversazionale, non un campione naturalistico.

L'analisi su GPT-3 è invecchiata un po' male. Al momento della pubblicazione (fine 2022), il fatto che GPT-3 non superasse il 50% sembrava un risultato negativo significativo. Ma il documento è precedente a GPT-4, e lavori successivi mostrano che modelli più capaci colmano gran parte del divario. La scoperta sul CoT — che il prompting si è ritorto contro — è interessante ma potrebbe essere specifica del modello: CoT tende a funzionare meglio in modelli con una maggiore capacità di seguire le istruzioni.

La valutazione si concentra anche esclusivamente sulla correttezza della risposta finale e ignora la qualità del percorso di ragionamento intermedio. Questo è importante perché un modello può generare una risposta numericamente corretta tramite un programma sbagliato (che l'accuratezza del programma coglie parzialmente) o un programma corretto tramite un ragionamento fragile che fallirebbe con una lieve riformulazione. FinChain (2025) critica esplicitamente questo aspetto, motivando un'alternativa incentrata sulla trasparenza. Per i sistemi di produzione, sapere perché il modello ha ottenuto la risposta giusta è importante quanto sapere che l'ha ottenuta.

Perché questo è importante per l'AI finanziaria

Un agente Beancount che gestisce le richieste degli utenti raramente riceve una domanda singola e autosufficiente. Gli utenti chiedono "quanto ho speso per la spesa il mese scorso?" e poi "come si confronta con il mese precedente?" e poi "è più di quanto avevo preventivato?" Ogni domanda si basa sulla precedente. ConvFinQA è il benchmark pubblicato più vicino a questo modello di interazione, e i suoi numeri sono preoccupanti: anche con un recupero di informazioni perfetto, il miglior modello disponibile nel 2022 lasciava un divario di circa 21 punti percentuali rispetto alla prestazione dell'esperto umano, e il divario si allarga nelle domande multi-aspetto.

Vale la pena sottolineare il fallimento specifico sulle conversazioni ibride. Quando un utente passa dal chiedere informazioni sui ricavi a chiedere informazioni sulle spese nella stessa sessione, il modello deve portare avanti il contesto numerico mentre reimposta il focus tematico. Questo è esattamente ciò che un agente Beancount deve fare durante una sessione di revisione del registro contabile multi-turn. Il punteggio del 52,38% su quei turni è un limite inferiore diretto su quanto bene gli approcci attuali gestiscano questo scenario.

La scoperta sul CoT è anche praticamente utile: suggerisce che quando si sollecita un modello a ragionare su dati finanziari in un contesto multi-turn, la generazione strutturata di programmi potrebbe essere più affidabile del chain-of-thought in forma libera, almeno per modelli del livello di capacità di GPT-3. Modelli più capaci potrebbero non mostrare questa inversione — ma è un'ipotesi da testare, non un presupposto da fare.

Cosa leggere dopo

  • Articolo successivo ConvFinQA APOLLO (arXiv:2212.07249) — raggiunge lo stato dell'arte su ConvFinQA utilizzando il campionamento negativo sensibile ai numeri e l'apprendimento per rinforzo basato sulla coerenza; vale la pena leggerlo per vedere cosa ha colmato il divario dopo il documento originale
  • Program of Thoughts Prompting (arXiv:2211.12737, 2022) — scarica l'aritmetica su un interprete Python invece che su un DSL; riporta un miglioramento di circa il 12% rispetto a CoT su compiti di QA finanziario e risultati quasi allo stato dell'arte su ConvFinQA; collega le idee di CodeAct direttamente al ragionamento finanziario
  • FLARE: Active Retrieval Augmented Generation (arXiv:2305.06983, EMNLP 2023) — recupera informazioni su richiesta durante la generazione invece che una volta all'inizio; direttamente rilevante per il contesto multi-turn dove ciò che il modello deve cercare cambia turno dopo turno

Condividi questo articolo