FinanceReasoning: Benchmarking Financial Numerical Reasoning More Credible, Comprehensive and Challenging¶
会议: ACL 2025
arXiv: 2506.05828
代码: https://github.com/BUPT-Reasoning-Lab/FinanceReasoning
领域: 金融推理 / Benchmark
关键词: 金融数值推理, Benchmark, 大推理模型, 知识增强, 函数库
一句话总结¶
提出 FinanceReasoning benchmark,通过重标注公开数据集、构建 3,133 个 Python 金融函数库和新增 908 道专家标注难题,在可信度、全面性和挑战性三个维度提升金融数值推理评估能力。
研究背景与动机¶
- 领域现状: LRM(大推理模型)如 OpenAI o1、DeepSeek-R1 在通用推理任务上取得突破,但在金融等领域专用数值推理任务上仍面临挑战。
- 现有痛点: 现有金融推理 benchmark(如 CodeFinQA、FinanceMath)存在三大问题——(1) 标注质量差(9.72%-30% 的题目有错误或歧义);(2) 评估标准宽松(允许 1% 误差、忽略单位和符号);(3) 简单题过多,LRM 已饱和(>90% 准确率),难以客观评估推理能力。
- 核心矛盾: 现有 benchmark 无法如实反映 LRM 的真实推理改进——例如 DeepSeek-R1 在原始 CodeFinQA 上仅比 V3 低 0.88%,但在重标注版本上高 2.01%。
- 本文要解决什么: 构建一个可信、全面、有挑战性的金融数值推理 benchmark。
- 切入角度: 三管齐下——修正已有数据、构建金融函数知识库、专家标注高难度新题。
- 核心idea一句话: 通过"修旧题+造知识库+出难题"三步策略,打造高质量金融数值推理评估基准。
方法详解¶
整体框架¶
(1) 重标注四个公开测试集(CodeFinQA/CodeTAT-QA/FinCode/FinanceMath),修正 15.6% 的题目;(2) 从 Investopedia 提取构建 3,133 个 Python 金融函数;(3) 利用函数库引导 GPT-4o 生成 + 专家验证 908 道新题。
关键设计¶
- 数据重标注(Updates to Public Datasets): 对每道题执行三类操作——消歧(Disambiguation,修复不可解或模糊题目)、详述(Elaboration,补充缺失计算步骤)、纠错(Correction,修正错误答案)。严格执行 0.2% 误差限制,指定单位/百分比/小数位数。
- 金融函数库构建: 从 Investopedia 收集 6,138 篇文章,用 GPT-4o 提取金融计算函数,包含语义化签名、详细 docstring(功能/参数/返回值/约束)和逐步实现代码。由 CFA 持证专家审核修正,共 3,133 个函数,覆盖 1,864 个金融概念。
- 难度分级算法: 首次提出基于算子数量(o)、括号对数(p)和代码行数(l)的启发式难度评估:rc = ln(max(o,1)) + ln(max(l+p,1)),将题目分为 Easy(1000)/Medium(1000)/Hard(238)。
损失函数 / 训练策略¶
本文为评估 benchmark,无训练过程。评估采用 CoT(Chain-of-Thought)和 PoT(Program-of-Thought)两种提示方法。探索了知识增强策略和 Reasoner+Programmer 模型组合方案。
实验关键数据¶
主实验¶
各模型在 FinanceReasoning 上的表现(Accuracy %):
| 模型 | Hard(CoT) | Hard(PoT) | Medium(CoT) | Medium(PoT) | Easy(CoT) | Easy(PoT) |
|---|---|---|---|---|---|---|
| OpenAI o1 | 81.1 | 89.1 | 89.7 | — | 88.0 | — |
| DeepSeek-R1 | 83.2 | 85.3 | 91.1 | 89.8 | 89.8 | 89.2 |
| OpenAI o3-mini | 77.3 | 84.0 | 87.8 | 88.6 | 88.8 | 88.1 |
| GPT-4o | 65.6 | 83.6 | 84.6 | 87.9 | 86.8 | 88.1 |
| Claude 3.5 Sonnet | 68.5 | 83.6 | 85.7 | 88.2 | 87.7 | 88.4 |
| Llama 3.3-70B | 50.4 | 71.4 | 79.2 | 85.9 | 83.3 | 84.8 |
消融实验¶
重标注前后的对比(揭示 LRM 真实改进):
| 数据集 | 评估标准 | DeepSeek-V3 | DeepSeek-R1 | R1相对提升 |
|---|---|---|---|---|
| CodeFinQA | Silver(原始) | 61.76 | 60.88 | -1.42% |
| CodeFinQA | Gold(重标注) | 85.41 | 87.42 | +2.35% |
| FinanceMath | Silver(原始) | 58.50 | 71.00 | +21.37% |
| FinanceMath | Gold(重标注) | 59.50 | 83.50 | +40.34% |
关键发现¶
- PoT 显著优于 CoT,尤其在 Hard 题目上(OpenAI o1: 81.1% → 89.1%),程序化推理对数值精度至关重要
- 知识增强有效:GPT-4o + 金融函数库从 83.2% 提升至 91.6%(+8.4%)
- Reasoner + Programmer 组合策略有效:DeepSeek-R1 + Programmer 从 83.2% → 87.8%(+4.6%)
- LRM 仍面临公式选择错误和数值精度不足的挑战
- 原始数据集中 9.72%-30% 的题目存在质量问题,严重低估了 LRM 的真实推理改进
亮点与洞察¶
- 通过重标注暴露了现有 benchmark 的严重标注质量问题,方法论贡献大
- 金融函数库(3,133 个函数)不仅用于生成题目,也可作为知识增强资源提升模型能力,一举两得
- 难度分级算法简单有效,为未来构建不同难度的领域 benchmark 提供参考
局限性 / 可改进方向¶
- Hard 题目仅 238 道,规模较小,可能不够代表性
- 难度分级基于代码统计特征,未考虑金融概念本身的理解难度
- 仅覆盖英语金融推理,中文等金融场景未涉及
- 函数库取自 Investopedia,可能存在覆盖偏差(偏向美国金融体系)
相关工作与启发¶
- 与 BizBench 的关系:FinanceReasoning 在其基础上重标注并扩展,形成更严格的评估标准
- 与通用推理 benchmark(GSM8K、MATH)的区别:强调领域知识应用和数值精度
- 启发:Reasoner + Programmer 的双模型协作模式值得在更多领域推广(如物理、工程计算)
补充分析¶
- Easy/Medium/Hard 的平均算子数分别为 1.77/3.79/10.12,代码行数为 3.13/4.27/9.49,难度梯度设计合理
- 函数库平均每个函数有 2.85 个算子、2.64 个参数,覆盖 1,864 个金融概念
- 8 名跨学科研究生 + 2 名 CFA 持证专家的标注团队规格较高,整个标注历时三个月
- 数据集全部公开,连同完整金融函数库一起开源,对社区贡献显著
- 难度分级对比图显示 FinanceReasoning 的中等和困难题目占比远高于现有数据集
评分¶
- 新颖性: ⭐⭐⭐⭐ 重标注+函数库+难题的三重策略有新意,但整体是benchmark工程
- 实验充分度: ⭐⭐⭐⭐⭐ 13个模型×多种策略,重标注对比分析很有说服力
- 写作质量: ⭐⭐⭐⭐ 结构清晰,图表丰富
- 价值: ⭐⭐⭐⭐ 高质量金融推理benchmark + 开源函数库,对领域评估有重要贡献