ConvFinQA: 다회차 금융 질의응답과 모델 및 전문가 사이의 21포인트 격차
FinQA, FinanceBench, TAT-QA와 같은 단일 회차 금융 질의응답(QA)에 대해 여러 번 기록한 후, 저는 사용자가 후속 질문을 던질 때 어떤 일이 벌어지는지 살펴보고 싶었습니다. ConvFinQA(Chen 등, EMNLP 2022)는 FinQA의 환경을 다회차 대화로 확장한 논문으로, 단일 회차 벤치마크에서는 볼 수 없었던 실패 사례를 보여줍니다. 즉, 개별적인 수치 추론에는 뛰어난 모델들이 두 회차 전의 언급을 참조하는 질문이 나오면 순식간에 무너진다는 사실입니다.
논문 소개
UC 산타바바라와 J.P. 모건 소속의 Zhiyu Chen, Shiyang Li, Charese Smiley, Zhiqiang Ma, Sameena Shah, William Yang Wang이 작성한 ConvFinQA는 2,066페이지의 금융 보고서를 바탕으로 총 14,115개의 질문이 포함된 3,892개의 다회차 대화 데이터셋을 구축했습니다. 각 대화는 FinQA에서 사용된 것과 동일한 S&P 500 공시 자료인 수익 보고서를 기반으로 하며, 질문들이 사슬처럼 연결되어 있어 나중의 회차가 이전 답변을 참조할 수 있습니다. 작업 형식은 FinQA에서 계승되었습니다. 모델은 소형 도메인 특화 언어(DSL)(더하기, 빼기, 곱하기, 나누기, 크다, 지수 등)로 프로그램을 생성하고, 이를 실행하여 답을 도출합니다. 평가는 실행 결과가 정답과 일치하는지 보는 실행 정확도(execution accuracy)와 생성된 프로그램이 정답 프로그램과 일치하는지 보는 프로그램 정확도(program accuracy)를 사용합니다.
이 데이터셋에는 두 가지 대화 유형이 있습니다. 유형 I "단순(simple)" 대화는 하나의 복잡한 FinQA 질문을 일련의 하위 질문으로 분해한 것입니다. 유형 II "하이브리드(hybrid)" 대화는 동일한 보고서에 대한 두 개의 서로 다른 FinQA 질문의 분해 과정을 결합하여 다측면 추론을 강제합니다. 질문의 60% 이상이 이전 회차에 대한 의존성을 가지고 있으며, 하이브리드 대화의 두 번째 파트 질문은 모델이 서로 다른 금융 주제 간에 추론 상태를 유지해야 하므로 훨씬 더 어렵습니다.
핵심 아이디어
- 가장 우수한 미세 조정 모델(RoBERTa-large 기반 FinQANet): 테스트 세트에서 68.90%의 실행 정확도를 기록했습니다. 반면 인간 금융 전문가는 **89.44%**에 도달했습니다. 일반 대중 작업자(MTurk)는 46.90%를 기록했는데, 이는 이 작업에 진정한 도메인 지식이 필요 함을 확인시켜 주는 놀라운 격차입니다.
- 20개의 퓨샷(few-shot) 예시와 정답 근거 사실을 제공한 GPT-3(text-davinci-002, 175B): 50.30%의 실행 정확도를 기록하며 미세 조정된 전문가 모델보다 훨씬 낮았고 대중 작업자보다 약간 높은 수준에 그쳤습니다.
- 생각의 사슬(Chain-of-thought) 프롬프팅은 GPT-3에 오히려 부정적인 영향을 미쳤습니다. CoT는 **40.63%**를 기록하여 표준 프로그램 프롬프팅의 45.15%보다 낮았습니다. 모델은 실제 질문에 추론을 적용하기보다 주어진 예시의 추론 형식을 흉내 내는 데 그쳤습니다.
- 하이브리드 대화는 훨씬 더 어렵습니다. 하이브리드 대화의 두 번째 파트에서 FinQANet은 단순 대화의 72.37%에 비해 **52.38%**의 점수를 받았습니다. 다측면 교차 참조는 현재 모델들이 무너지는 지점입니다.
- GPT-3는 특히 숫자 선택 질문 — "전년도는 어떠한가?"와 같은 후속 질문에 답하는 것 — 에 취약하여 FinQANet이 82.54%를 기록한 반면 GPT-3는 35.32%에 불과했습니다. 대화형 대용어 해소(anaphora resolution)가 병목 구간입니다.
유효한 점과 그렇지 않은 점
데이터셋 구축이 세심하고 평가 방식이 깔끔합니다. 실행 정확도와 함께 프로그램 정확도를 사용하는 것은 가치가 있습니다. 두 개의 프로그램이 서로 다른(잠재적으로 잘못된) 추론 경로를 통해 동일한 수치 답을 낼 수 있는데, 프로그램 정확도는 이를 잡아낼 수 있습니다. 대화를 실제 S&P 500 공시 자료에 고정하기로 한 결정은 작업이 인위적이지 않고 실제 기반을 갖추게 합니다.
그렇긴 하지만, 대화의 다양성은 설계상 제한적입니다. 모든 대화는 기존 FinQA 질문을 분해하여 구성되었으므로, 진정으로 개방된 대화나 명확화 질문, 사용자 수정 등은 포함되어 있지 않습니다. 실제 회계 대화에는 이 모든 것이 포함됩니다. 이 데이터셋은 대화형 추론의 통제된 근사치일 뿐, 자연스러운 샘플은 아닙니다.
GPT-3 분석은 시간이 흐르며 다소 구식이 되었습니다. 출판 당시(2022년 말) GPT-3가 50% 미만에 머문 것은 유의미한 부정적 결과로 느껴졌습니다. 하지만 이 논문은 GPT-4 이전에 작성되었으며, 후속 연구들은 더 뛰어난 모델들이 이 격차의 상당 부분을 메울 수 있음을 보여줍니다. 프롬프팅이 역효과를 냈다는 CoT 발견은 흥미롭지만 모델에 따라 다를 수 있습니다. CoT는 지시 이행 능력이 더 강한 모델에서 더 잘 작동하는 경향이 있습니다.
또한 평가는 오로지 최종 답변의 정답 여부에만 집중하며 중간 추론 사슬의 품질은 무시합니다. 이는 모델이 잘못된 프로그램으로 수치상 정답을 맞히거나(프로그램 정확도가 어느 정도 잡아내긴 하지만), 약간의 문구 수정에도 무너질 수 있는 취약한 추론을 통해 정답을 맞힐 수 있기 때문에 중요합니다. FinChain(2025)은 이러한 점을 명시적으로 비판하며 투명성 중심의 대안을 제시합니다. 운영 시스템에서 모델이 왜 정답을 맞혔는지 아는 것은 정답을 맞혔다는 사실만큼이나 중요합니다.
금융 AI에서 이것이 중요한 이유
사용자의 질의를 처리하는 Beancount 에이전트는 단일하고 완결된 질문을 받는 경우가 드뭅니다. 사용자는 "지난달 식비로 얼마를 썼지?"라고 묻고, 이어서 "그 전 달과 비교하면 어때?" 그리고 "그게 내가 예산 잡은 것보다 많아?"라고 묻습니다. 각 질문은 이전 질문을 토대로 구축됩니다. ConvFinQA는 이러한 상호작용 패턴에 가장 가까운 벤치마크이며, 그 결과는 시사하는 바가 큽니다. 정답 검색이 보장된 상황에서도 2022년 당시 가장 우수한 모델은 인간 전문가와 약 21포인트의 격차를 보였고, 다측면 질문에서는 그 격차가 더 벌어졌습니다.
하이브리드 대화에서의 특정 실패 지점은 주목할 만합니다. 사용자가 동일한 세션 내에서 수익에 대해 묻다가 비용에 대해 묻는 것으로 전환할 때, 모델은 주제 중심을 재설정하면서 수치적 맥락을 유지해야 합니다. 이것이 바로 Beancount 에이전트가 다회차 장부 검토 세션에서 수행해야 할 작업입니다. 이러한 회차에서의 52.38%라는 점수는 현재의 접근 방식이 해당 시나리오를 얼마나 잘 처리하는지에 대한 직접적인 하한선이 됩니다.
CoT 발견 또한 실무적으로 유용합니다. 이는 다회차 환경에서 금융 데이터를 추론하도록 모델을 유도할 때, 적어도 GPT-3 수준의 모델에서는 자유 형식의 생각의 사슬보다 구조화된 프로그램 생성이 더 신뢰할 수 있음을 시사합니다. 더 우수한 모델은 이러한 역전 현상을 보이지 않을 수도 있지만, 이는 당연하게 가정할 것이 아니라 테스트해 보아야 할 가설입니다.
다음 읽을거리
- ConvFinQA APOLLO follow-up (arXiv:2212.07249) — 수치 인식 부정 샘플링(number-aware negative sampling)과 일관성 기반 강화 학습을 사용하여 ConvFinQA에서 최고 성능(SOTA)을 달성했습니다. 원본 논문 이후 격차를 어떻게 좁혔는지 확인하기 위해 읽어볼 가치가 있습니다.
- Program of Thoughts Prompting (arXiv:2211.12737, 2022) — 산술 연산을 DSL이 아닌 파이썬 인터프리터에 맡깁니다. 금융 QA 작업에서 CoT보다 약 12% 향상된 성능을 보고했으며 ConvFinQA에서 SOTA에 근접했습니다. CodeAct 아이디어를 금융 추론에 직접 연결합니다.
- FLARE: Active Retrieval Augmented Generation (arXiv:2305.06983, EMNLP 2023) — 생성 시작 시 한 번이 아니라 생성 과정 중에 필요에 따라 검색을 수행합니다. 모델이 조회해야 할 내용이 매 회차 변하는 다회차 환경과 직접적으로 관련이 있습니다.
