回到列表

FinAgent-RAG:金融文档问答界的“思考型”智能检索生成架构

核心发现
传统RAG在金融领域遭遇“浅阅读”瓶颈:无法对横跨表格、文本和附注的碎片化证据进行多步数值推理。FinAgent-RAG首次将Agentic迭代推理硬负例对比检索可执行代码思维链三者融合,在三大金融问答基准上斩获5.62至9.32个百分点的绝对领先优势,同时通过动态路由策略将API成本削减41.3%。这不是升级,是范式重构。

【导读】 金融文档问答(如10-K财报)的本质是“跨越结构化证据的解谜游戏”。现有单次检索+简单生成的RAG模式,面对“去年营收增长率减去前年调整后运营成本”这类问题,基本相当于让鹦鹉做微积分。FinAgent-RAG用三层创新破解困局:一个能区分“4.5亿”和“4.8亿”的对比检索器、一个直接写Python算数的代码思维模块、以及一个能判断“这题需要3次检索还是1次”的智能路由调度器。实验数据证明,这个框架不仅是技术上优雅,部署成本上也比竞品更贴近金融机构的预算底线。

【核心突破】

维度传统RAGFinAgent-RAG关键提升
检索机制基于向量相似度单次命中硬负例对比训练 + 迭代精化数值区分力↑27%
推理引擎LLM“心算”多步逻辑Program-of-Thought算术准确率↑19.3%
资源调度固定检索-生成流程自适应策略路由器API成本↓41.3%
最佳基准最大执行准确率~67.3%76.81%+9.5%
落地密码
在FinQA上达到76.81%执行准确率,ConvFinQA上78.46%,TAT-QA上74.96%。值得注意的是,这组成绩是在多种LLM骨干(GPT-4、Claude 3等)下均保持稳定的结果,证明了框架的跨模型鲁棒性

【深度解析】 1. 对比检索器:如何让模型读懂“近似实体”的差异?

金融文本中“营业收入同比增长5%”和“营业收入同比增长3%”在语义空间里几乎重合,传统检索器会误判。FinAgent-RAG构建硬负例训练集,强制模型对数值敏感的片段施加更高注意力权重。具体来说,对每段正样本,选出与其语义最接近但数值不同的片段作为负例(如从“净利润12亿美元”中找到“净利润11.8亿美元”),训练对比损失使得表征向量在数值维度上拉开距离。

点击展开原理训练时,使用InfoNCE损失函数,其中正样本对为(查询,正确段落),负样本为(查询,数值近似但错误段落)。查询编码器和段落编码器共享Transformer权重,并在顶端接入一个**数值差异感知头**,对数字token的embedding增加位置编码扰动。推理时,检索到的前K个段落按数值相关度重排序,确保“毛利21.4亿”不会被“毛利21.9亿”挤压掉。

2. 代码思维:为什么不让LLM写代码而非心智算?

这是最精巧的设计。当问题需要多步运算(例如“从2019年总资产中减去2020年递延收益后再除以流通股数”),LLM直接输出思维链的失败率高达34%。FinAgent-RAG将数学推理完全外包给Python:LLM仅负责将自然语言问题分解为若干原子计算步骤,并生成合法Python代码串。随后在沙箱环境中执行,返回精确数值,再作为最终答案引用的证据。

推理方法两步运算正确率四步运算正确率
思维链(CoT)72.4%51.3%
代码思维(PoT)91.1%84.6%

3. 自适应路由:如何避免“杀鸡用屠龙刀”?

策略路由器是一个轻量级分类器,输入问题嵌入,输出三个动作之一:简单检索(一步提取)、多步推理(启动PoT循环)、全局检索+交叉验证(先检索大量片段再筛选)。这不仅使简单问题(如“公司CEO是谁”)的处理延迟降低至原来的1/3,更重要的是,在FinQA上节省了41.3%的LLM API调用次数——对预算敏感的金融机构来说,这是商业落地的生死线。

【未来展望】 FinAgent-RAG目前在单文档、单轮问答上表现惊艳,但金融分析师的实际工作是多文档、多轮、动态修正的。未来方向包括:1)跨多个10-K报告的全局实体链接,支持“比较苹果与谷歌的运营利润率”;2)引入交互式纠错:当用户指出“你算的毛利率跟我看到的数对不上”时,系统能自动回溯检索-推理链,定位错误源头并修正;3)更极致的推理效率:将路由器决策与检索器打分融合为一个端到端神经网络,消除人工设计的路由阈值。

现实考验
硬负例训练需要大量标签数据(原文使用了10万+条标注片段),对冷启动的机构不友好。此外,代码执行沙箱的安全防护——尤其是面对带恶意Payload的金融新闻——仍需加固。

阅读原文https://arxiv.org/abs/2605.05409