你有没有想过这样一件事:一个能考过CPA模拟题的AI,拿到一份真实的上市公司财报,能不能算出一个准确的数字?
这听起来像是废话。会做题的模型,处理真实数据应该更简单才对。但阿里通义千问团队联合清华大学做的一项研究发现,答案可能恰恰相反。他们让当下最强的大模型去处理未经裁剪的真实财务报表,结果发现,一旦把公式提示拿掉,某个号称"理解能力极强"的顶级模型,正确率直接从70.70%腰斩到38.22%。
这不是一个小问题。这篇论文的题目直接叫板:《大模型的财务推理靠得住吗?一次针对长周期财务报表的真实世界测试》。他们给这套评测体系起名FININDICES,翻译过来大概是"财务指标基准"。
这篇文章想讲清楚三件事:这些AI大模型在处理真实财务数据时到底会栽在哪些坑里,为什么会栽,以及有没有办法把它们捞出来。
现有的考试题,为什么考不出真本事
先说一个可能颠覆你认知的事实。
过去评价AI财务能力的方式,大部分靠的是选择题。像什么CFA知识点测验、会计准则问答,模型选对了就给分。这类题目确实能测出模型是不是"背过书",但和真实工作场景差得很远。
真实世界里,一个分析师拿到财报要做的事情,从来不是回答单选题。他要从几十页的资产负债表、利润表、现金流量表里,挑出对的科目,对齐不同的统计口径,处理跨期的时间逻辑,最后算出一张干净的对比表格。这个过程里最容易出错的,恰恰不是那些"高深"的分析判断,而是数据处理这个看起来最基础的环节。
论文里提到一个关键洞察:金融智能体在实际部署中之所以频繁翻车,往往不是因为它"想错了",而是因为它在数据提取、口径对齐、多期计算这些中间步骤上出了岔子。
打个比方,这就像一个新手会计,他可能对着教科书倒背如流"什么是自由现金流",但真给他一沓原始凭证,让他从几百条流水里挑出正确的那几笔来算这个数,他大概率会挑错。如果只考他背公式的能力,你永远发现不了这个问题,你以为他懂了,其实他只是记住了名词。
在此之前,业内比较知名的财务测评数据集,比如FinQA和TAT-QA,用的都是提前裁剪好的表格片段,上下文平均长度只有500到1000个token左右。这就相当于给学生做数学题的时候,直接把有用的条件圈出来给他,剩下的废话全删掉。这样的测试没法反映真实工作场景,因为真实财报里,有用的信息往往被淹没在成百上千行无关数据里。
FININDICES这次直接把裁剪这一步去掉了。它收集了829家上市公司、384种财务指标、覆盖28个报告期的完整原始财报,平均上下文长度飙到了16202个token,最长能到33126个token,是之前数据集的十几倍。这意味着模型必须自己在一堆噪音里,找到真正需要的那几个数字。
两种任务形态:单点计算和结构化表格
为了系统性地摸清模型的能力边界,研究团队设计了两种任务范式。
第一种叫单指标计算,英文是Single-Index。模型只需要从一堆嘈杂信息里,算出一个数字。这看起来是最基础的任务,但因为上下文里塞满了干扰项和陷阱,能不能挑对数据本身就是一场考验。
第二种叫多指标表格化,英文是Table-Index。这个难度陡然上升,模型要同时计算多个相互关联的指标,跨越多个报告期,然后把结果组装成一张结构规整的HTML或JSON表格。论文统计显示,这类任务平均要输出7.75个数值,最多能到20个,同时平均要处理2.89个输入报告期,最多9个。
这两种任务模式的差异,其实映射了现实中两种截然不同的工作场景。单点计算像是有人问你"去年三季度净利润是多少",你查一下账就能回答。而表格化任务更像老板让你做一张五年期的经营对比表,你不仅要挑数字,还要保证每一列的口径统一,格式还不能乱。
论文还额外设计了一类对抗性问题,故意在上下文里删掉关键报告,逼着模型主动承认"信息不足",而不是硬编一个数字出来糊弄过关。
这套评测体系还专门设计了三个能力维度来拆解模型的短板。
第一个维度叫口径对齐,英文Caliber。这考的是模型能不能分清"存量"和"流量"这两种性质完全不同的数据。举个例子,资产负债表里的数字是某个时间点的快照,比如"12月31日的存货余额",这是存量。而利润表里的营业收入,是整个报告期累计发生的金额,这是流量。如果不加区分地直接拿来做比值运算,得出的结果在数学上是错误的。
第二个维度叫时间语义理解,英文Temporal。财务分析里经常要处理TTM(滚动12个月)、YTD(年初至今累计)、单季度这些不同的时间口径。因为中报和季报披露的都是累计数,要拿到某个单季度的真实数据,得靠前后两期数字相减来"倒挤"出来。
第三个维度是会计领域理解,英文Domain。这考验模型对具体会计准则的掌握程度,比如自由现金流、EBITDA这些复合指标,涉及到哪些科目该算进去、哪些不该算,模型是否真懂,而不是靠字面猜。
知识瓶颈:拿掉公式提示,模型就现了原形
现在来看这篇论文最扎心的发现之一。
研究团队设计了一个对照实验:同一批题目,一半给模型提供计算公式作为提示,另一半不给,让模型完全靠自己的内在知识储备去推导公式。
结果令人意外。当有公式提示的时候,Gemini-3.1-Pro在表格任务上能拿到70.70%的成绩,这个数字看起来相当不错。但一旦把公式提示拿掉,同一个模型的正确率直接掉到38.22%,几乎腰斩。
这不是个别现象。论文列出的一大批模型,无论是GPT-5.4、Claude-Opus-4.8,还是国产的DeepSeek和GLM系列,只要拿掉公式提示,表格任务的正确率普遍出现断崖式下跌。Claude-Opus-4.8从65.61%跌到38.85%,GPT-5.5从66.88%跌到34.18%。
这说明了一件很重要的事情:这些模型在预训练阶段大概率见过无数遍财务公式,但它们并没有真正把这些公式内化成可以自主调用的知识,而是依赖上下文里明确给出的提示去做模式匹配。一旦提示消失,它们就像被抽走了拐杖的病人,走不稳了。
这里可以做一个类比。想象一个学生准备开卷考试,桌上摊着公式表,他能顺着公式一步步代入数字算出答案,看起来学得很扎实。但如果这场考试突然变成闭卷,让他凭记忆写出公式再计算,他可能连公式的第一步都写不出来。他不是不会算,是他从来没有真正"记住"这个公式,只是学会了"看着抄"这个动作。如果这场测试一直是开卷的,你永远发现不了这个学生其实没有真正掌握知识,这正是过去很多财务评测基准的问题,它们总是"开卷",从来没测过模型闭卷的真实水平。
论文还专门做了一个案例分析,来展现这种"表面匹配"是怎么发生的。
有一道题要求模型计算"公允价值变动净损益",正确答案应该把投资收益、公允价值变动、汇兑损益、套期保值收益这几项加总起来。但模型看到题目里出现"价值变动"这几个字,就直接锁定了字面上匹配的"公允价值变动收益"这一项,完全忽略了投资收益这个更大的数字,导致答案严重偏离真值。
这种现象论文里管它叫语义锚点陷阱,英文Semantic Anchor Trap,指的是模型被字面相似的词语误导,做了浅层的文字匹配,而没有理解这个财务指标真正涵盖的范围。
结构瓶颈:表格一复杂,逻辑就崩了
如果说知识瓶颈揭示的是模型"不懂",那结构瓶颈揭示的是一件更让人意外的事:模型明明懂,却在特定条件下选择性地"装不懂"。
研究团队做了一个巧妙的消融实验。他们把同一批指标,分别用单独提问的方式和打包进一张大表格的方式,去问同一个模型,结果对比出现了戏剧性的反差。
先看时间错位的例子。论文里有个案例是计算"净资产同比增长率"。单独问模型某家公司(信莱孚)这个指标时,模型100%答对,因为它准确找到了去年同期的报告数据作为分母。但当同样的指标类型出现在一张涉及通达海公司的多指标汇总表里时,模型直接偷懒,抓了"期初余额"这一列数据来充当"去年同期数据"用,结果把真实答案-4.22%算成了-3.25%。
这背后的原因是,标准的资产负债表通常只展示"期末"和"期初"两栏数据,没有单独列出"去年同期"这一栏。想找到真正的去年同期数字,需要跨报告去检索。当模型被要求同时填满一整张表格时,它的注意力被结构性任务分散了,于是走了条捷径,直接拿手边最近的、看起来相似的数字去填坑。
再看第二种失效模式,论文管它叫聚合捷径,英文Aggregation Shortcut。这个案例更有意思。有一个指标叫"经营净利润与利润总额之比",按照中国会计准则的严格定义,这个计算要把资产减值损失这类项目也纳入考量,属于比较深的会计调整逻辑。单独问模型这道题时,它精确地按照会计准则完成了计算,正确率达到了104.0%。
但把这道题放进一张包含五个指标的大表格里再问一次同一个模型,它彻底放弃了严谨的会计逻辑,直接套用了一个简化版的"收入减成本除以利润"的粗暴公式,把正确答案94.06%算成了129.82%,偏差巨大。
这个发现相当耐人寻味。它说明模型的推理能力不是一个固定不变的常量,而是像一块被瓜分的蛋糕。当模型需要同时维持复杂的输出格式(比如严格的HTML表格结构或JSON数组),还要保证多个数值互相对齐,这个格式维护的任务本身就在消耗模型的"认知带宽"。留给深度会计推理的余量变少了,模型自然而然地滑向了更省力的浅层模式。
这就像让一个熟练的厨师同时做两件事:一件是精心熬一锅需要控制火候和调料比例的高汤,另一件是同时给十桌客人上菜、保证摆盘不出错。单独让他熬汤,他能做出米其林水准。但如果逼他一边看着十张桌子的上菜进度,一边还要控制汤的火候,他大概率会先保证十桌菜按时上齐,那锅汤则悄悄被简化成了速溶高汤块兑水。他不是不会熬汤,而是在多线程压力下,他的大脑自动把资源调配给了"不出大错"的那件事,牺牲了"做到极致"的那件事。如果这道题从来只以单独提问的形式出现,你会一直误以为模型的会计推理能力很强,直到有一天它真正需要同时处理多个任务时才露出马脚。
论文把这个现象称为结构瓶颈,意思是说,多指标、多周期表格生成所带来的高认知负荷,正在实实在在地掏空模型的推理能力,这不是简单的格式问题,而是深层次的注意力资源分配问题。
领域专用财务模型,反而是重灾区
看到这里你可能会想,那专门为金融领域训练的模型,是不是应该表现更好?
结果恰好相反,而且差得很离谱。
论文测试了几个专门针对金融领域预训练的模型,比如DianJin-R1-32B、Fin-o1-14B、XuanYuan-FinX1、Fin-R1、Llama-Fin-8B。这些模型在单指标任务上的表现已经明显落后于通用大模型,DianJin-R1-32B在有提示的情况下也只能拿到41.29%。
但真正让人震惊的是它们在表格任务上的表现。DianJin-R1-32B在有提示的情况下,表格任务正确率只有11.41%,去掉提示后直接跌到5.33%。而Fin-R1和Llama-Fin-8B这两个模型,在表格任务上的正确率几乎是0%。
这说明了一件挺反直觉的事:传统意义上的"金融领域适应性预训练",也就是喂给模型大量金融领域的非结构化文本去做继续训练,并不能解决结构化表格推理这个问题。这类训练更像是让模型多读了几本财经杂志和行业报告,它确实能学到一些行话和背景知识,但没有真正锻炼它处理复杂结构化数据、维持严谨输出格式的能力。这就好比一个人天天看财经新闻,词汇量和行业知识确实见长,但你要真让他去做一张复杂的财务报表,他大概率还是无从下手,因为看新闻和做报表根本是两码事。
微调能救吗?答案是能,而且没有副作用
既然知识瓶颈和结构瓶颈都这么严重,那有没有办法修复?
研究团队做了一个针对性的实验。他们用Gemini生成的6301条推理轨迹(也就是让Gemini先做一遍这些财务题,把它的解题过程和答案都记录下来),去对一个相对较小的模型Qwen3.5-35B-A3B做监督微调,英文缩写SFT,全称Supervised Fine-Tuning,指的是用人工标注或高质量的示例数据去进一步训练一个已经预训练好的模型,让它学会特定任务的解题模式。
结果显示,微调之后的模型在没有公式提示的最难场景下,单指标任务正确率提升了8.54个百分点,表格任务提升了3.82个百分点。
更关键的是,这次微调没有出现常见的灾难性遗忘现象,也就是说模型没有因为专攻财务任务而丢掉原有的通用能力。研究团队专门在几个通用财务知识测评基准上做了验证,包括CFinBench、FinEval、FLAME和一个内部测试集,微调后的模型在这些基准上反而都有小幅提升,增幅从0.61%到2.39%不等。在一个考察复杂多步计算的内部数据集FinMath上,也拿到了2.19%的提升。
这个结果传递出一个挺积极的信号:结构化的推理能力是可以通过针对性的数据训练找回来的,微调没有让模型变得更笨,反而让它在保持原有知识的基础上,多学会了一种更严谨的解题习惯。这有点像给一个原本靠直觉做题的学生,补了一套系统的解题模板训练,他不仅在新题型上进步了,连老题型的手感也稳了不少,因为他学到的是一种更扎实的思维方式,而不是投机取巧的答题技巧。
具体的失败案例,暴露了哪些细节
论文的附录部分给出了大量真实的失败案例,这些细节比笼统的百分比数字更能说明问题所在。
有一个案例考察"有形资产净值"这个指标,正确公式应该用归属于母公司的所有者权益,减去无形资产、商誉、递延所得税资产等项目。但模型直接用了笼统的"所有者权益总额"作为计算起点,混淆了"总权益"和"归属于母公司权益"这两个在中国会计准则里边界分明的概念,同时也漏算了新准则要求扣除的递延所得税资产项目。这暴露出模型在精细会计分类上的模糊地带,它知道大方向,但抠不准细节。
还有一个案例考察现金投资回报比率,正确公式的分母需要用固定资产现金支付额加上股利支付额,再减去财务费用。模型算错了答案,原因是它选择性地忽略了公式里"减去财务费用"这一步,这说明即便公式已经明确给出,模型在执行多步骤复合计算时,仍然有可能中途漏掉某个环节,这属于典型的指令遵循能力不足。
这些案例共同指向一个结论:财务推理这件事,门槛不在"会不会算加减乘除",而在于对每一个科目的边界、每一种时间口径的转换规则,有没有形成像老会计师那样几乎肌肉记忆般的精确掌握。
这项研究的局限性在哪
论文的作者也很坦诚地指出了自己工作的边界。
目前FININDICES的数据来源主要局限在核心财务三张表,也就是资产负债表、利润表、现金流量表,还没有纳入更多元的数据源,比如高频的股票交易数据、宏观经济时间序列、企业内部的销售运营数据这些。这意味着当前的评测还没能覆盖真正意义上的"全景式"金融分析场景。
同时,这个基准也没有涉及定性层面的分析任务,比如对财报电话会议记录做情绪分析,或者跨资产类别的相关性建模。这些都是未来可以继续拓展的方向。
写在后面
读完这篇论文,最让我意外的不是模型出错了,而是错误的模式如此规律。同一个模型,同一道题,仅仅因为输出格式从"单独回答"变成"填进一张表格",正确率就能差出几十个百分点。这说明我们过去评估AI能力的方式可能一直存在盲区,我们总是单独测一个个小问题,却很少测它在真实复杂任务里,能不能把这些小问题串起来同时做对。
还有一点值得琢磨。专门为金融训练的模型反而不如通用大模型,这多少打破了"领域专用等于领域更强"的直觉。这背后可能说明,财务推理真正需要的不是行业词汇量,而是一种类似程序员写代码那样的严谨结构化思维,而这种思维恰恰是通用大模型在海量代码和逻辑数据训练中意外习得的能力。
论文里那个"聚合捷径"的例子我反复看了几遍。模型明明知道正确答案该怎么算,一到多任务并行的场景就走捷径,这让我想起人在压力下决策的心理学研究,认知负荷升高时,人会本能地依赖启发式判断而不是深思熟虑。AI似乎也在某种程度上复现了这种模式,这算是巧合,还是说复杂系统在资源受限时都会收敛到类似的应对策略?这个问题我觉得还挺值得继续想下去。
Q&A
Q1:FININDICES是什么?
A:FININDICES是阿里通义千问团队联合清华大学推出的一套大规模财务推理评测基准,它使用未经裁剪的真实上市公司财报(平均上下文长度超过16000个token),从单指标计算和多指标表格生成两种任务形式出发,测试大模型在会计领域理解、时间语义推理、口径对齐这三个维度上的真实能力。
Q2:为什么大模型拿掉公式提示后成绩会大幅下降?
A:因为这些模型在预训练阶段虽然见过大量财务公式,但更多是依赖上下文里提供的显式提示做模式匹配,而不是真正把公式内化成自主可调用的知识。一旦提示消失,模型就暴露出对复杂会计逻辑理解不深的问题,比如Gemini-3.1-Pro在表格任务上的正确率就从70.70%跌到38.22%。
Q3:微调能不能解决模型财务推理能力不足的问题?
A:可以在一定程度上缓解。研究团队用Gemini生成的推理轨迹对一个较小模型做了监督微调,结果在没有公式提示的情况下,单指标任务正确率提升了8.54个百分点,表格任务提升了3.82个百分点,同时没有出现能力遗忘,模型在通用财务知识测试上反而也有小幅进步。