跳到主要内容

FinQA:衡量 AI 对财务报告数值推理能力的基准测试

· 阅读需 7 分钟
Mike Thrift
Mike Thrift
Marketing Manager

FinanceBench 上周表明,检索并不是金融问答中最难的部分——数值推理才是。2021 年在 EMNLP 上发表的 FinQA 论文解释了其中的原因。我现在阅读它是因为它是财务算术的基础基准;该领域的后续工作要么是其扩展,要么是与之对标。理解其模型的失败之处,也能解释目前的 Beancount 代理会在哪里失败。

论文

2026-05-13-finqa-numerical-reasoning-financial-data

来自加州大学圣塔芭芭拉分校、摩根大通和亚马逊的 Zhiyu Chen、Wenhu Chen 及其同事推出了 FinQA: A Dataset of Numerical Reasoning over Financial Data (arXiv:2109.00122, EMNLP 2021)。核心任务:给定一份包含叙述性文字和一个或多个财务报表的收益报告,回答一个需要对从这两种模态中提取的事实进行多步算术运算的问题。答案必须通过显式的数值程序得出——即应用在提取数值上的最多五个操作序列(加、减、乘、除、比较、表格汇总等)。

十一位常驻美国的金融专业人士(注册会计师、MBA)根据 1999 年至 2019 年间 2,789 页的标准普尔 500 强收益报告手动构建了该数据集。最终数据集包含 8,281 个带注释的问答对,每个对都配有金标准支持事实和完整的推理程序,使其完全可执行且可审计。

关键观点

  • 发布时的差距极其悬殊。 作者能提供的最佳神经模型 FinQANet (RoBERTa-large) 在测试集上达到了 61.24% 的执行准确率和 58.86% 的程序准确率。人类金融专家得分为 91.16% 和 87.49%。非专家众包人员仅达到 50.68%——仅略高于神经基准,这表明该领域需要真正的专业知识,而不仅仅是阅读理解。
  • 多步推理是崩溃点。 对于需要三个或更多推理步骤的程序,FinQANet 的准确率骤降至 22.78%。模型可以较好地处理两步算术;更长步数则会导致误差复合。
  • 跨模态问题是难点。 证据跨越表格和文字的问题准确率为 43.80%,比总体平均水平低约 17 个百分点。将表格段落中的数字与文本中的限定条件锚定,并不是标准预训练模型擅长的事情。
  • 领域常数是无形杀手。 当程序步骤需要金融惯例中的常数(例如,一百万中有 1,000 个一千,或者一个基点是 0.01%)而不是文档中陈述的内容时,准确率降至 43.88%。模型无法可靠地区分“这个数字在文档中”和“这个数字是常识”。
  • 约 50% 的错误归因于领域知识缺口,而非检索失败或算术执行错误。模型找到了正确的事实,但应用了错误的金融逻辑。
  • 后来的大语言模型大幅缩小了差距,但未能消除差距。 据报道,GPT-4 在 FinQA 上的执行准确率约为 76%,到 2024 年,特定任务的最先进系统达到了约 89%——仍低于人类专家的表现。

哪些观点经受住了考验,哪些没有

基准测试的设计是合理的。使用可执行程序而不是自由文本回答是正确的选择:可以明确地给模型打分,并能透视其如何推理,而不仅仅是看结果是否正确。要求同时提供表格和文本证据的决定反映了现实世界的财务分析:表格给出数字,脚注解释数字的含义。

话虽如此,这项任务比看起来要窄。预定义的 DSL 操作涵盖了标准财务算术,但无法表示分类决策(“这项支出是经常性的还是单次性的?”)、政策检查(“这笔现金流是否符合我们的预算政策?”)或任何需要外部检索市场数据或会计准则的任务。程序是正确且可解释的,但它们存在于一个唯一的不确定性是算术而非判断的世界中。

检索设置在训练期间还为模型提供了金标准支持事实,这美化了数据。在实际部署中,你必须先从长文档中检索出正确的单元格,然后才能执行程序——正如 FinanceBench 上周所示,这一检索步骤并非易事。

最后,2021 年的结果低估了目前的模型能力。61% 的基准是在 ChatGPT 出现之前。76% 的 GPT-4 数据和 89% 的 SOTA 数据来自结合了思维链、代码执行和微调的专门流水线。与人类专家(91% 以上)的差距虽然缩小了,但依然存在。

为什么这对金融 AI 很重要

Beancount 账本本质上是精简版的收益报告:结构化的借贷行,以及交易备注、收款人字段和账户层级中的描述性元数据。FinQA 基准测试所考查的每一项技能都直接对应于 Beancount 代理必须执行的任务。

跨模态失败模式尤为重要。在 Beancount 环境中,代理可能会在账本中看到交易金额,在价格指令中看到外币汇率,在备注字段中看到注释——并且需要这三者来计算正确的报告货币价值。FinQA 在 2021 年测试的模型无法可靠地交叉引用这些来源。目前的 LLM 表现更好,但 3 步以上程序 22.78% 的准确率是一个警告:推理链长度是一个真实的失败维度,多步账本核对任务将会遇到这一瓶颈。

领域常数问题同样具有普适性。会计有其自身的惯例——复式记账不变量、账户类型语义、会计年度边界——模型必须在不被告知的情况下了解这些。FinQA 的错误分析显示约 50% 的领域知识故障,这表明 Beancount 代理要么需要针对会计惯例进行微调,要么需要一个显式的会计规则检索层,而不仅仅是账本条目。

基准测试的程序表示虽然受到限制,但也指出了 Beancount 代理应如何表达其推理:不是可能含糊不清的自然语言,而是可以检查、回滚或审计的可执行操作。

延伸阅读

  • TAT-QA (arXiv:2105.07624, ACL 2021) —— 将混合表格+文本设置扩展到 16,552 个问题,具有更丰富的推理类型;它引入的 TAGOP 模型值得研究,因为它能共同处理从两种模态中提取片段。
  • ConvFinQA (arXiv:2210.03849, EMNLP 2022) —— FinQA 的对话式扩展,每个对话都具有跨轮数值依赖关系;这种多轮结构直接对应于必须在用户后续追问中跟踪流水计算的交互式 Beancount 助手。
  • MultiHiertt (arXiv:2206.01347, ACL 2022) —— 将设置推向每个文档包含多个层级表格的财务报告;这是迈向 Beancount 代理将面临的合并报表和多年账本视图的必要步骤。