FinQA: 재무 보고서의 AI 수치 추론 능력을 측정하는 벤치마크
지난주 FinanceBench는 금융 질의응답(QA)에서 어려운 부분은 검색이 아니라 수치 추론임을 보여주었습니다. EMNLP 2021에서 발표된 FinQA는 그 이유를 규명한 논문입니다. 필자가 지금 이 논문을 읽는 이유는 이것이 재무 산술의 기초적인 벤치마크이기 때문입니다. 이 분야의 모든 후속 연구는 이 벤치마크를 확장하거나 이를 기준으로 삼으며, 모델이 실패하는 부분을 이해하는 것은 현재의 Beancount 에이전트가 실패할 지점을 설명해 줍니다.
논문 소개
UC 산타바바라, J.P. 모건, 아마존의 Zhiyu Chen, Wenhu Chen과 동료들이 FinQA: A Dataset of Numerical Reasoning over Financial Data(arXiv:2109.00122, EMNLP 2021)를 발표했습니다. 핵심 과제는 서술형 텍스트와 하나 이상의 재무 제표를 모두 포함하는 실적 보고서가 주어 졌을 때, 두 모달리티에서 추출한 사실들에 대해 다단계 산술 연산이 필요한 질문에 답하는 것입니다. 정답은 명시적인 수치 프로그램(추출된 값에 적용되는 덧셈, 뺄셈, 곱셈, 나눗셈, 비교, 테이블 집계 등 최대 5개의 연산 시퀀스)을 통해 도출되어야 합니다.
미국 기반의 금융 전문가 11명(CPA, MBA)이 1999년부터 2019년까지의 S&P 500 실적 보고서 2,789페이지를 활용해 수작업으로 데이터셋을 구축했습니다. 최종 데이터셋은 8,281개의 주석이 달린 QA 쌍으로 구성되며, 각 쌍은 정답을 뒷받침하는 사실과 전체 추론 프로그램을 포함하고 있어 완전히 실행 및 감사가 가능합니다.
주요 개념
- 발표 당시 격차는 처참했습니다. 저자들이 제시한 가장 우수한 신경망 모델인 FinQANet(RoBERTa-large)은 테스트 세트에서 실행 정확도 61.24%, 프로그램 정확도 58.86%에 그쳤습니다. 반면 인간 금융 전문가는 각각 91.16%와 87.49%를 기록했습니다. 비전문가 크라우드 작업자는 50.68%에 불과했는데, 이는 신경망 베이스라인보다 겨우 높은 수준으로, 이 분야가 단순한 독해 능력이 아닌 실제 전문 지식을 필요로 함을 보여줍니다.
- 다단계 연산에서 모든 것이 무너집니다. 3단계 이상의 추론 단계가 필요한 프로그램의 경우, FinQANet의 정확도는 22.78%로 급락합니다. 모델은 2단계 산술 연산까지는 합리적으로 처리하지만, 그 이상은 오차가 누적됩니다.
- 교차 모달리티 질문이 가장 어렵습니다. 표와 텍스트 모 두에 증거가 걸쳐 있는 질문은 약 43.80%의 정확도를 보였으며, 이는 전체 평균보다 약 17%p 낮습니다. 표의 수치를 텍스트의 수식어와 연결(Grounding)하는 것은 표준 사전 학습 모델이 잘 수행하지 못하는 작업입니다.
- 도메인 상수는 조용한 킬러입니다. 프로그램 단계에서 문서에 명시되지 않은 금융 관습상의 상수(예: 100만에는 1,000개의 '천'이 포함된다거나, 1 베이시스 포인트는 0.01%라는 점 등)가 필요한 경우 정확도는 43.88%로 떨어집니다. 모델은 "이 숫자가 문서에 있는 것"인지 "이 숫자가 세상의 지식인 것"인지 안정적으로 구별하지 못합니다.
- 오류의 약 50%는 도메인 지식의 공백에서 비롯되었습니다. 이는 검색 실패나 산술 실행 오류 때문이 아닙니다. 모델은 올바른 사실을 찾았지만 잘못된 금융 논리를 적용했습니다.
- 최신 LLM은 격차를 상당히 줄였지만 완전히 해소하지는 못했습니다. GPT-4는 FinQA에서 약 76%의 실행 정확도를 기록한 것으로 보고되었으며, 2024년까지 작업 특화 SOTA 시스템은 약 89%에 도달했지만 여전히 인간 전문가의 성과(91%+)에는 못 미칩니다.
유효한 점과 한계점
벤치마크 디자인은 견고합니다. 자유 텍스트 답변 대신 실행 가능한 프로그램을 사용하는 것은 탁월한 선택입니다. 모델의 점수를 명확하게 매길 수 있을 뿐만 아니라, 단순히 정답 여부만이 아니라 모델이 어떻게 추론했는 지 파악할 수 있기 때문입니다. 표와 텍스트 증거를 모두 요구하기로 한 결정은 표가 숫자를 제공하고 각주가 그 숫자의 의미를 설명하는 실제 재무 분석 상황을 반영합니다.
하지만 이 작업은 보기보다 범위가 좁습니다. 사전 정의된 연산 DSL(Domain Specific Language)은 표준 재무 산술을 다루지만, 분류 결정("이 비용은 경상적인가 일시적인가?"), 정책 확인("이 현금 흐름이 예산 정책을 준수하는가?"), 또는 시장 데이터나 회계 기준의 외부 검색이 필요한 작업은 표현할 수 없습니다. 프로그램은 정확하고 설명 가능하지만, 판단이 아닌 산술만이 유일한 불확실성인 세계에 존재합니다.
검색 설정 또한 훈련 중에 모델에게 완벽한 지원 사실(Gold supporting facts)을 제공하므로 수치가 실제보다 좋게 나타납니다. 실제 배포 환경에서는 프로그램을 실행하기 전에 긴 문서에서 올바른 표 셀을 먼저 찾아야 하며, 지난주 FinanceBench가 보여주었듯 이 검색 단계는 결코 간단하지 않습니다.
마지막으로, 2021년의 결과는 현재 모델의 능력을 과소평가하고 있습니다. 약 61%의 베이스라인은 ChatGPT 이전의 기록입니다. GPT-4의 약 76% 및 SOTA의 약 89% 수치는 연쇄 생각(CoT), 코드 실행, 파인튜닝을 결합한 특화된 파이프라인에서 나온 것입니다. 인간 전문가(91%+)와의 격차는 좁혀졌지만 여전히 존재합니다.
금융 AI에서 이것이 중요한 이유
Beancount 원장은 본질적으로 요약 된 실적 보고서와 같습니다. 트랜잭션 노트, 수취인 필드, 계정 계층 구조에 산문 형태의 메타데이터가 포함된 구조화된 차변 및 대변 행들로 구성됩니다. FinQA 벤치마크가 테스트하는 모든 기술은 Beancount 에이전트가 수행해야 하는 작업과 직접적으로 매칭됩니다.
교차 모달리티 실패 모드는 특히 중요합니다. Beancount 맥락에서 에이전트는 원장의 트랜잭션 금액, 가격 지시어(price directive)의 외화 환율, 노트 필드의 주석을 동시에 보고 이 세 가지를 모두 사용해 정확한 보고 통화 가치를 계산해야 할 수 있습니다. 2021년 FinQA가 테스트한 모델들은 이러한 소스들을 안정적으로 상호 참조하지 못했습니다. 현재의 LLM은 더 나은 성능을 보이지만, 3단계 이상 프로그램에서의 22.78% 정확도는 경고 신호입니다. 체인 길이는 실제 실패의 축이며, 다단계 원장 대조 작업에서 이 문제에 직면하게 될 것입니다.
도메인 상수 문제 역시 일반화될 수 있습니다. 회계에는 복식부기 불변성, 계정 유형 의미론, 회계 연도 경계 등 모델이 별도의 설명 없이도 알고 있어야 하는 고유의 관습이 있습니다. 오류의 약 50%가 도메인 지식 부족 때문이라는 FinQA의 분석은 Beancount 에이전트에게 단순한 원장 항목뿐만 아니라 회계 관습에 대한 파인튜닝이나 회계 규칙을 위한 명시적인 검색 계층이 필요함을 시사합니다.
제한적이긴 하지만 벤치마크의 프로그램 표현 방식은 Beancount 에이전트가 추론을 어떻게 표현해야 하는지도 보여줍니다. 모호할 수 있는 자연어가 아니라, 확인, 롤백 또는 감사가 가능한 실행 가능한 연산이어야 합니다.
다음 읽을거리
- TAT-QA (arXiv:2105.07624, ACL 2021) — 하이브리드 표+텍스트 설정을 16,552개의 질문으로 확장하고 더 다양한 추론 유형을 제공합니다. 여기서 도입된 TAGOP 모델은 두 모달리티에서 공동으로 스팬(span)을 추출하는 방식을 공부할 가치가 있습니다.
- ConvFinQA (arXiv:2210.03849, EMNLP 2022) — 각 대화가 턴 간 수치 의존성을 갖는 FinQA의 대화형 확장판입니다. 이 다회차 구조는 사용자 후속 질문에 따라 누적 계산을 추적해야 하는 대화형 Beancount 어시스턴트와 직접적으로 연결됩니다.
- MultiHiertt (arXiv:2206.01347, ACL 2022) — 문서당 여러 개의 계층적 표가 있는 재무 보고서로 설정을 확장합니다. 이는 Beancount 에이전트가 마주하게 될 연결 재무제표 및 다년도 원장 뷰를 향한 필수적인 단계입니다.
