
AFAC2026 赛题四金融长文本 Agent竞赛学习笔记(一)
AFAC2026 赛题四金融长文本 Agent竞赛学习笔记(二)
AFAC2026 赛题四金融长文本 Agent竞赛学习笔记:参赛方案解析(三)
本文综合解读 AFAC2026 赛题四「金融长文本 Agent 的动态记忆压缩与高效问答挑战」,视角覆盖四个关键来源:
| 来源 | 定位 | 核心贡献 |
|---|---|---|
| 天池官方赛题(https://tianchi.aliyun.com/competition/entrance/532486/information) | 规则与数据 | 五类金融文档、A/B 榜设计、评分公式 |
| hipw 博客复盘(https://blog.hipw.cc/archives/afac2026) | B 榜第 1 名(1/1704) | 动态记忆压缩、证据槽检索、Planner-Reader-Controller 架构 |
| AFAC 官方公众号 | 二等奖 Lucky 团队(华中科技大学) | 显式需求记忆、关键证据保护、计算语义分离 |
| afac2026-financial-qa | Baseline 改进方案 | MinerU 解析、BM25 检索、题型差异化 Prompt |
| afac2026-main | 官方进阶优化版 | 自适应推理路由、证据账本协议、原子命题拆解 |
因为篇幅较多,就分成几篇呈现。

1. TL;DR
AFAC2026 赛题四的核心命题是:在 500 万 Token 预算内,让 Agent 从 573 份金融长文档中准确回答 200 道选择题。 Baseline 准确率只有 15%,B 榜第一名做到 93.5+ 分,差距不在算力,而在对"金融问答本质"的理解。
不同选手走出了截然不同的路径:
- hipw(B 榜第 1):用"证据工程"替代"相关性检索",从 36 分一路冲到 96 分。核心逻辑是:别找"最像的段落",要找"能定罪的线索"(闭合证据变量)。
- Lucky 团队(二等奖):把压缩从"删文本"变成"保信息",用动态记忆死死护住关键数据。
- Chimou0(afac2026-main):官方进阶方案的深度优化版。像个严谨的侦探,引入"证据账本"和"自适应路由",简单题快跑省 Token,难题拆碎了审(原子命题),是架构最清晰的进阶路线。
- A 榜 86.27 分方案:用 13 版迭代硬磕无向量 RAG 的极限。早期试过 LogicRAG 失败后转向"证据契约",沉淀了大量宝贵的"负向实验"笔记。
- Baseline 改进(douiven):用 MinerU 解析 + 差异化 Prompt 把分数翻了 4 倍,是性价比最高的入门起点。
2. 赛题全景:数据、评分与文本处理
2.1 五大领域与文档特点
赛题覆盖五类金融长文档,共 573 份文档、约 1.2 万页:
| 领域 | 文档数 | 题数 | 主要难点 |
|---|---|---|---|
| insurance(保险条款) | 16 | 40 | 公式计算、等待期/免赔额/责任免除定位、多产品交叉对比 |
| regulatory(监管法规) | 26 | 40 | 法条引用、合规判断、跨文档比对、条文优先级 |
| financial_contracts(金融合同) | 14 | 40 | 募集说明书条款、债券条款、权利义务关系 |
| financial_reports(财务报表) | 10 | 40 | 年报指标提取、跨公司横向对比、现金流计算 |
| research(行业研报) | 20 | 40 | 长文本事实查找、数据核验、图表数值提取 |
全量 200 道题 :A 榜 100 题(提供 doc_ids),B 榜 100 题(盲检,不提示文档)。
保险条款
保险条款是保险公司与被保险人之间的合同文本,具有法律效力。典型结构包括:保险责任(保什么)、责任免除(不保什么)、保险期间与等待期(等待期内出险通常不赔,但意外伤害往往例外)、保险金额与保费、退保与现金价值(不同产品计算公式差异很大)、释义(专业术语定义)。
答题关键:计算题要精准定位公式和参数位置;等待期题要找"意外伤害"例外条款;免责范围题要到"责任免除"章节逐条核对;跨产品比较题需要同时打开多份条款提取同类字段。
监管法规
监管法规是金融监管机构发布的规范性文件,具有强制约束力。典型结构包括:总则/适用范围、具体义务(金融机构需要做什么)、时限要求(明确的天数/工作日)、例外条款("但书"后面的内容往往是考点)、罚则/法律责任。
答题关键:法条引用题要找原文出处;时限题要精确定位具体天数;适用范围题要注意"除外"条款;不同法规之间可能存在冲突或补充关系,需要判断优先适用哪一条。
财务报表
财务报表反映企业的经营成果、财务状况和现金流量,涉及三大报表:
- 资产负债表:资产 = 负债 + 所有者权益,关键科目包括货币资金、应收账款、存货、固定资产等
- 利润表:营业收入 - 营业成本 - 费用 = 净利润,关键科目包括营业总收入、研发费用、归属于母公司股东的净利润等
- 现金流量表:分经营活动、投资活动、筹资活动三类,核心指标是"经营活动产生的现金流量净额"
常用财务指标:毛利率 = (营业收入 - 营业成本) / 营业收入;净利率 = 净利润 / 营业收入;ROE = 净利润 / 平均股东权益;研发投入占比 = 研发费用 / 营业收入。
答题关键:跨年度对比要从两年报表中提取同一指标;跨公司对比要注意口径是否一致;增长率计算要确认基期 and 报告期;注意"归属于母公司股东的净利润"和"净利润"的区别。
金融合同
赛题中的金融合同主要是债券募集说明书和债券条款。典型结构包括:发行概况(发行人、债券类型、发行规模、期限、利率)、募集资金用途、评级信息(主体评级 vs 债项评级)、增信措施、特殊条款(回售条款、赎回条款、调整票面利率条款、交叉违约条款)。
答题关键:条款判断题要定位到具体条款原文;计算题(如回售收益率)要确认时间节点和利率;评级相关题要区分"主体评级"和"债项评级"。
行业研报
行业研报是券商研究机构发布的对某个行业的深度分析,通常包含数据、观点、预测和图表。典型结构包括:行业概况、竞争格局(市场份额、集中度)、驱动因素、数据与预测、投资建议与风险提示。
答题关键:事实查找题要注意年份限定;研报中的数据通常有明确来源标注;研报观点("我们认为...")和数据事实要区分开,观点不一定正确。
2.2 模型与提交限制
官网对参赛系统的约束非常明确 天池官方赛题:
| 限制项 | 规则 | 影响 |
|---|---|---|
| 模型 | 只允许调用 Qwen 系列模型 API | 不能用 GPT、Claude、DeepSeek 等替代 |
| 调用渠道 | 仅限阿里云百炼平台或魔搭社区 | API 格式兼容 OpenAI SDK,但端点固定 |
| Embedding | 任何场景下禁止使用 embedding 模型 | 不能走向量检索路线,必须用 BM25/关键词/结构化索引 |
| 文档解析 | 离线 PDF 解析阶段的 Token 不计入总预算 | 解析可以用任意 Python 库,性价比最高的投入点 |
| 提交格式 | answer.csv,第一行必须是 summary |
漏掉 summary 会导致评测脚本报错 |
⚠️ 关键提醒:B 榜排名前 15 的队伍需要提交完整代码 and 复现文档(含
evidence.json),系统应支持一键运行。代码包大小不超过 1GB。
2.3 评分公式:准确率优先,Token 效率为辅
FinalScore = 100 × Accuracy × ( 0.7 + 0.3 × TokenScore ) \text{FinalScore} = 100 \times \text{Accuracy} \times (0.7 + 0.3 \times \text{TokenScore}) FinalScore=100×Accuracy×(0.7+0.3×TokenScore)
其中 TokenScore = max(0, min(1, (5,000,000 - TotalTokens) / 5,000,000))。
为什么要有 TokenScore?
赛题的核心设计意图是:在控制 Token 消耗的前提下准确回答。如果只看准确率,参赛者完全可以把全部 573 份文档(约 1.2 万页)逐页塞进模型,让 Qwen 自己慢慢找答案------虽然准确率可能上去,但 Token 消耗会高到没有实用价值。
TokenScore 的存在就是为了防止这种"暴力解法":
- 系统给定 500 万 Token 预算
- 总消耗越接近 500 万,TokenScore 越低
- 总消耗超过 500 万,TokenScore 直接为 0
这意味着:即使准确率相同,Token 消耗更低的方案排名更高。
Baseline(Qwen-plus 直接全文输入)的成绩是:
| 组别 | 正确/样本 | 准确率 | Token 消耗 |
|---|---|---|---|
| A 组 | 17/100 | 17.0% | 3,628,186 |
| B 组 | 13/100 | 13.0% | 3,884,045 |
2.4 赛题题型
赛题有三种题型,判定规则非常严格。下面从项目中提取的真实样例来展示:
单选题示例(监管法规 reg_a_003)
题干问法规合规判断,标准答案为
B。提交A、C、D或AB均判错。单选题只看首个有效字母。
判断题示例(金融合同 fc_a_004)
标准答案为
A。提交正确、对、1均判错------必须是大写字母A或B。
多选题示例(监管法规 reg_a_014)
标准答案为
AC。提交ABC(多选)、A(漏选)、ACB(顺序错)全部判错,得 0 分。多选题不设部分分,完全匹配才得分。
⚠️ 答案为空、包含非法字符、顺序不规范或与标准答案不完全一致,一律判错。这是金融问答的"确定性"在评分层面的直接体现------没有"差不多对",只有"对"或"错"。
2.4.1 官网完整答题规范示例(reg_a_014)
以下是从天池官网直接摘录的四部分答题要求 天池官方赛题,展示官方期望系统如何作答一道监管法规题:
1. 题目信息
题目ID :reg_a_014
领域标签 :regulatory(监管法规)
题型 :多选题(multi)
关联文档ID:strict_csrc_023(《上市公司治理准则》)、strict_csrc_035(《上市公司章程指引》)
某A股上市公司(非金融类,总股本5亿股,最近一期经审计净资产120亿元)拟进行如下四项决策:
① 为资产负债率为75%的全资子公司提供8亿元担保;
② 将原募投项目"智能工厂建设"剩余募集资金6.5亿元变更为"新能源材料研发中心";
③ 选举新一届独立董事,其中1名候选人系某律所合伙人,其所在律所过去12个月内曾为公司提供常年法律顾问服务但未承办重大诉讼;
④ 审议《关于修订公司章程第42条股东大会特别决议事项的议案》,拟将"对外提供财务资助"纳入须经特别决议的范围(原章程未列明)。
根据《上市公司治理准则》《上市公司章程指引(2023年修订)》及相关证券监管规定,下列关于上述事项是否必须经股东大会审议及表决方式的判断,正确的有?
- A:事项①中,因被担保方资产负债率超过70%,且担保金额占公司最近一期经审计净资产比例达6.67%,两项任一条件触发即须经股东大会审议通过,故该项担保必须提交股东大会审议。
- B:事项②中,变更募集资金用途涉及金额6.5亿元,虽未达净资产10%(12亿元),但因变更投向属于"主营业务方向重大调整",根据《章程指引》第44条及《治理准则》第19条,仍须经股东大会特别决议通过。
- C:事项③中,该独立董事候选人存在《治理准则》规定的"最近12个月内为上市公司提供过法律服务"的情形,构成独立性障碍,不得提名为独立董事候选人,故股东大会不得对其行使选举权。
- D:事项④中,公司章程自主增设特别决议事项不违反《章程指引》第77条"上市公司可在本指引基础上增加特别决议事项"的授权性规定,但须经股东大会普通决议通过即可生效,无需特别决议。
标准答案:AC
2. 法规证据定位
系统在作答此题时,应当在检索阶段定位到以下具体法条作为判断依据:
| 证据 | 对应选项 | 引用文件 | 关键法条原文 |
|---|---|---|---|
| 证据一 | A(正确) | strict_csrc_035 第四十七条 | "公司下列对外担保行为,须经股东会审议通过:...(四)为资产负债率超过百分之七十的担保对象提供的担保;..." |
| 证据二 | B(错误) | strict_csrc_035 第八十一条、第八十二条 | 第八十一条规定普通决议事项;第八十二条列举特别决议事项,"变更募集资金用途"未列入特别决议 |
| 证据三 | C(正确) | strict_csrc_023 第四十一条 | "独立董事不得与其所受聘上市公司及其主要股东、实际控制人存在直接或者间接利害关系,或者其他可能影响其进行独立客观判断的关系。" |
| 证据四 | D(错误) | strict_csrc_035 第八十二条 | "下列事项由股东会以特别决议通过:...(三)本章程的修改;..." |
3. 答案逻辑推理过程
- 事项①:被担保对象资产负债率75%,超过70%法定界限。依据《章程指引》第四十七条第(四)款,该事项属于必须经股东会审议的范围,选项A正确。
- 事项②:变更募集资金用途属于股东会审议事项,但根据《章程指引》第八十一条及第八十二条,该项决议未被列为必须经特别决议通过的事项,属于应以普通决议通过的事项。选项B声称"必须特别决议通过",因此选项B错误。
- 事项③:候选人所在律所在过去12个月内为上市公司提供过常年法律顾问服务。依据《治理准则》第四十一条,该候选人与上市公司存在利害关系,影响其独立客观判断,构成独立董事独立性缺陷,不能提名为候选人。选项C正确。
- 事项④:将"对外提供财务资助"纳入特别决议范围,其实质是对公司章程中关于股东会决策程序条款的修改。依据《章程指引》第八十二条第(三)款,"本章程的修改"必须经股东会特别决议(出席股东表决权2/3以上)通过方可生效。选项D声称"经普通决议通过即可生效",与此规定抵触,选项D错误。
4. 证据可追溯性输出规范
为了保证回答的真实性和可审核性,系统除返回标准答案外,还应当在输出结构中附带证据定位元数据:
json
{
"qid": "reg_a_014",
"answer": "AC",
"evidence_retrieval": [
{
"doc_id": "strict_csrc_035",
"quoted_clause": "第四十七条 公司下列对外担保行为,须经股东会审议通过:... (四)为资产负债率超过百分之七十的担保对象提供的担保;",
"reasoning": "全资子公司的资产负债率为75%,超过70%限额,根据第四十七条第四款规定,此担保必须由股东会审议通过。支持选项A。"
},
{
"doc_id": "strict_csrc_023",
"quoted_clause": "第四十一条 ...独立董事不得与其所受聘上市公司...存在直接或者间接利害关系...",
"reasoning": "独立董事候选人所在律所过去12个月内曾为公司提供法律顾问服务,构成独立性受限情形。支持选项C。"
},
{
"doc_id": "strict_csrc_035",
"quoted_clause": "第八十二条 下列事项由股东会以特别决议通过:... (三)本章程的修改;",
"reasoning": "将对外财务资助纳入特别决议范围属于修改章程行为,必须经出席会议的股东所持表决权的三分之二以上(特别决议)通过。选项D判断不正确。"
}
]
}
"这四部分要求说明:官方不仅要求'答对',还要求'说出依据'。这也是 hipw 设计'事实账'时内置来源坐标的根本原因。"
2.4.2 A组赛题题型:五种解题方法
以下从官网和项目文档中提取的真实样例,展示每类题目的题干形态 、JSON 格式 和考查能力
A 组 100 道题看似都是"读文档选答案",实际按解题方法可以分成五类。理解这些类型,才能明白为什么"搜索到片段直接回答"远远不够:
| 题型 | 核心特征 | 典型题号 | 对系统的挑战 |
|---|---|---|---|
| 公式计算题 | 从条款中提取计算公式后代入计算 | ins_a_002, ins_a_003 | 公式分散在不同文档,必须逐份定位条款、提取参数、做算术 |
| 跨文档对比题 | 对比两份或多份文档中的数据或条款 | fin_a_001, fin_a_005 | 单看任意一份都不够,必须同时读取多份并横向对齐 |
| 多文档联合推理题 | 多个产品/法规/条款的信息拼起来综合判断 | ins_a_001, ins_a_005, reg_a_014 | 本质是多次独立的条款定位任务拼成一道多选题 |
| 条款定位题 | 定位某章节的具体规定,答案就在文档里 | ins_a_004 | 需要逐份定位"等待期""免责范围"等特定章节 |
| 事实查找题 | 文档中直接记载的事实,无需计算 | res_a_001 | 研报几万字中数字散落在不同段落,检索容易漏掉限定词 |
这五类不是互斥的。比如 ins_a_003 既是多文档联合推理 (3 份条款),又是公式计算 (每份赔付公式不同)。fin_a_001 既是跨文档对比 (两年年报),又是事实查找(具体数值)。
这意味着一个有效的系统至少要解决两个问题:
- 如何确保所有相关文档都被读到(跨文档题不能只读一篇)
- 如何在文档中精确定位关键信息(计算题要找到公式,条款题要找到对应章节)
Baseline 的"硬截断"对第 1 个问题无能为力(4 篇文档每篇截断 4000 字,总长度可能超限),对第 2 个问题取决于关键信息是否恰好在前 4000 字内。后续所有高分方案,本质上都是在解决这两个问题。
样例 1:跨文档对比题 ------ 财务报表(fin_a_001)
json
{
"qid": "fin_a_001",
"domain": "financial_reports",
"question": "根据比亚迪连续两年的年度报告,下列关于公司经营业绩变化的描述中,哪些是准确的?",
"options": {
"A": "2025 年营业收入较 2024 年实现增长",
"B": "2025 年归属于上市公司股东的净利润出现下滑",
"C": "2025 年经营活动产生的现金流量净额优于 2024 年",
"D": "2025 年研发投入占营业收入的比例较 2024 年有所下降"
},
"answer_format": "multi",
"type": "财务指标对比分析",
"doc_ids": ["byd_2024_annual", "byd_2025_annual"]
}
题目 JSON 字段说明 天池官方赛题:
| 字段 | 类型 | 说明 |
|---|---|---|
qid |
String | 题目唯一编号,如 fin_a_001 |
domain |
String | 所属领域,五类之一 |
split |
String | A 或 B,A 榜提供 doc_ids,B 榜不提供 |
question |
String | 题干文本 |
options |
Object | A/B/C/D 四个候选选项 |
answer_format |
String | 题型:mcq(单选)、multi(多选)、tf(判断) |
type |
String | 题目能力标签,如"财务指标对比分析" |
doc_ids |
ArrayString | A 榜提供参考文档编号,B 榜为空 |
这道题需要同时读取两份年报,对比四个财务指标的年度变化,是典型的跨文档比较题。
样例 2:多文档联合推理题 ------ 监管法规(reg_a_014)
某A股上市公司(非金融类,总股本5亿股,最近一期经审计净资产120亿元)拟进行如下四项决策:
① 为资产负债率为75%的全资子公司提供8亿元担保;
② 将原募投项目剩余募集资金6.5亿元变更用途;
③ 选举独立董事,候选人所在律所过去12个月内曾为公司提供法律顾问服务;
④ 拟将"对外提供财务资助"纳入须经特别决议的范围。
根据《上市公司治理准则》《上市公司章程指引》,下列判断正确的有?
- A:事项①中,被担保方资产负债率超过70%,担保必须提交股东大会审议。
- B:事项②中,变更募集资金用途须经股东大会特别决议通过。
- C:事项③中,该候选人构成独立性障碍,不得提名为独立董事。
- D:事项④中,公司章程自主增设特别决议事项,经普通决议通过即可生效。
标准答案:AC
这道题涉及四个独立事项 分别对应四部法规条款,每个选项都需要精确定位到具体法条原文才能判断。错误选项 B 和 D 分别把"普通决议"说成了"特别决议"、把"特别决议"说成了"普通决议",是金融法规题常见的干扰方式。
官网对这道题的完整解析要求 :
系统在作谈时应当定位到以下具体法条:
| 选项 | 引用文件 | 关键法条 |
|---|---|---|
| A(正确) | 《上市公司章程指引》第四十七条 | "为资产负债率超过百分之七十的担保对象提供的担保,须经股东会审议通过" |
| B(错误) | 《章程指引》第八十一条、第八十二条 | 变更募集资金用途属于普通决议事项,不是特别决议 |
| C(正确) | 《上市公司治理准则》第四十一条 | 独立董事不得与上市公司存在"可能影响其进行独立客观判断的关系" |
| D(错误) | 《章程指引》第八十二条 | 章程修改必须经股东会特别决议(2/3以上表决权)通过 |
官网还要求系统在输出答案时附带证据可追溯性元数据,格式示例:
json
{
"qid": "reg_a_014",
"answer": "AC",
"evidence_retrieval": [
{
"doc_id": "strict_csrc_035",
"quoted_clause": "第四十七条 ...为资产负债率超过百分之七十的担保对象提供的担保;",
"reasoning": "全资子公司资产负债率75%,超过70%限额,必须由股东会审议通过。支持选项A。"
}
]
}
这意味着:系统不仅要答对,还要能说明答案出自哪份文档的哪条条款 。这也是 hipw 设计"事实账"时内置的来源坐标字段(variables 中的来源坐标)与官方要求不谋而合的地方。
2.4.3 其他题型汇总
以下按领域汇总更多简例,从推理摘要可以看出每类题目的核心特征:
| 领域 | 题目ID | 题型 | 样例任务(考查能力) | 答案 | 推理摘要 |
|---|---|---|---|---|---|
| 保险条款 | ins_a_007 | 多选 | 贷款规则与条件触发判断 | BC | 国寿增益宝贷款上限为扣除欠款后现金价值的80%;个人养老金方式投保富鸿金生不接受贷款 |
| 保险条款 | ins_a_010 | 多选 | 跨产品现金价值公式对比 | AB | 文档1按保单年度给出现金价值比例和计算方法,文档2明确给出个人账户价值减退保费用公式 |
| 保险条款 | ins_a_017 | 多选 | 多产品责任范围逐项核验 | ABCD | 四项事故分别命中对应产品的身故、白血病医疗、营运交通意外伤残和火灾财产责任 |
| 监管法规 | reg_a_001 | 多选 | 客户尽调时限与风险分类合规 | CD | 30个工作日记录要求对应非重大差异;较高风险存量客户为6个月,且尽调办法施行更早 |
| 监管法规 | reg_a_002 | 多选 | 反洗钱法保存义务与备案要求 | ABC | 反洗钱法明确业务关系结束后至少保存十年;重大备案差异30个工作日报告;保密义务成立 |
| 监管法规 | reg_a_003 | 单选 | 数据安全法终端存储限制判断 | B | 原文限制的是向其他数据处理者导出高敏感数据,并未原则禁止在终端设备存储 |
| 金融合同 | fc_a_004 | 单选 | 债券发行上限与资产负债率核验 | A | 第一份文档本期发行上限明确为10亿元;第二份文档资产负债率含66.38%,不满足63%至66%的严格区间 |
| 金融合同 | fc_a_009 | 多选 | 主体评级与发行规模事实核查 | ABD | text02明确披露主体评级AA+;本期发行规模为5亿元而非10亿元;B、D有原文支持 |
| 财务报表 | fin_a_002 | 多选 | 分红政策与经营现金流年度对比 | ABD | 2025年拟派现金分红315.32亿元,高于2024年方案253.72亿元;经营现金流同比增加 |
| 行业研报 | res_a_001 | 多选 | 银保占比与复合增速跨地区比较 | ABC | 韩国2022年银保占比56%,台湾地区2005至2018年银保复合增速9.9%,金融信创规模表述成立 |
| 行业研报 | res_a_005 | 多选 | 服务零售增速与居民收入事实查找 | ABC | 服务零售累计同比领先、韩国银保超过50%、2022年居民收入增速降至5%均有原文直接支持 |
| 行业研报 | res_a_009 | 多选 | 规则数量与历史份额增长核验 | ABC | 韩国银保超过50%,超过1000条内置规则及欧盟历史份额增长成立 |
这些简例虽然没有展示完整题干,但从"样例任务"列可以清晰看出每类题目的核心特征:保险条款重公式和条件触发 、监管法规重法条引用和时限 、金融合同重发行条件和评级信息 、财务报表重数据对比和计算 、行业研报重事实查找和跨地区比较。
⚠️ 答案为空、包含非法字符、顺序不规范或与标准答案不完全一致,一律判错。这是金融问答的"确定性"在评分层面的直接体现------没有"差不多对",只有"对"或"错"。
3. 竞赛难点
金融 PDF 不是干净的连续文本,这是所有参赛者都踩过的第一步。不同方案遇到的坑各有侧重,总结起来可以归为四类
AFAC2026-advance baseline-tutorial.md:
3.1. 表格与结构解析失效
| 具体现象 | 来源 |
|---|---|
| 表格被按阅读顺序打散,表头和数值失去对应关系 | hipw、官方文档 |
| 同一张表跨页,后一页没有重复完整表头 | hipw |
| 财报结构主要来自后处理指标行,没有真正的表格对象 | V3 实验笔记 |
| PyMuPDF4LLM 对中文 PDF 表格识别、公式保留、阅读顺序恢复能力有限 | Baseline 改进 |
| 旧块平均 700--1100 字,条款切开后又被合并到 1800 字,粒度混乱 | V3 实验笔记 |
3.2. OCR 与视觉信息丢失
| 具体现象 | 来源 |
|---|---|
| 扫描页没有文本层,OCR 把小数点、负号和百分号识别错 | hipw |
| 研报图表中的关键数字只存在于视觉区域,文本层完全缺失 | hipw |
| 旧视觉表格候选只人工覆盖 5 题,解析质量不足导致得分反降 | V5 实验笔记 |
3.3. 文本清洗与条款识别错误
| 具体现象 | 来源 |
|---|---|
| 旧正则会把财务小数识别为条款号 | V3 实验笔记 |
| 小于 48 字且无数字的短条款会被删除(如"审议批准董事会的报告") | V3 实验笔记 |
| 页眉页脚反复进入每个文本块,污染检索结果 | hipw |
| 查询实体抽取把长句机械切成 2--8 字片段,语义断裂 | V3 实验笔记 |
3.4. 多格式异构与信息分散
| 具体现象 | 来源 |
|---|---|
| HTML、TXT 和 PDF 的章节结构完全不同,统一处理困难 | hipw |
| 文本刻意保留较长篇幅和分散关键信息点,考查跨段推理 | 官方工作文档 |
| 当前层级语语料基于旧 PyMuPDF 文本重建,不能凭空恢复原 PDF 表格结构 | V3 实验笔记 |
项目工作文档明确把"提升 PDF 文本抽取、表格处理和版面结构还原"列为重点优化方向之首。hipw 在复盘里说得直白:"真正拉开差距的第一步却是文档处理。"A 榜 86 分方案的 V3 也专门处理了"正则把财务小数识别为条款号"这种细节问题。这些坑看似琐碎,但任何一个环节出错,后续检索和推理都会建立在错误信息上。
3.5. 金融问答的意图识别与确定性推理挑战
hipw 在复盘里提醒:"长文本是最明显的困难,真正困难的是,这些题大多是确定性问题 ------少一个条件、看错一个年份、把百分比当成百分点,最终答案就会直接翻转。" 这类问题的处理难度不在语义理解,而在信息本身的分布特征 hipw 博客复盘:
以一道典型的跨公司比较题为例:
题目问"A 公司比 B 公司在某年的某项收益率高多少"。文档里未必直接写出两家公司的收益率,而是分别给出收入和成本;有时某一年只给了累计值,还需要用相邻期间做差;两家公司的数据又可能位于不同报告、不同页和不同表格中。
要回答它,系统至少需要闭合:A 公司目标期间的收入/成本及来源、B 公司目标期间的收入/成本及来源、两边一致的指标口径和单位、收益率公式和差值方向。
这意味着系统必须同时处理:
| 难点 | 说明 |
|---|---|
| 多文档并行读取 | 答案变量分散在两份甚至多份独立文档中 |
| 跨页/跨表对齐 | 同一指标的不同年份位于不同页或不同表格 |
| 间接计算 | 原始数据需要先做差、再做除法才能得出目标指标 |
| 检索偏斜 | A 公司的高相似段落可能占满检索前排,B 公司的关键证据被挤出 |
hipw 把这个定义为赛题的本质难点:"金融长文本问答不是从全文中挑出一段最像答案的话,而是在有限 Token 下闭合一组带来源的证据变量。"
这也是"意图识别"层面的挑战:金融题要求的不是"理解问题在问什么",而是"把问题拆解为一组必须全部到齐的变量清单,并确保每个变量都有原文证据支撑"。传统开放域问答的"找最相关段落"思路,在这里会直接失效。
3.6 从实验数据中总结的典型错误模式:
- 否定词遗漏:文档说"不适用",模型读成了"适用"
- 年份混淆:题目问 2025 年数据,模型用了 2024 年的
- 条件遗漏:只读到"免赔额 5000 元",漏掉了"意外伤害 0 免赔"
- 跨文档混淆:把文档 A 的公式套到了文档 B 的场景上
可以在 prompt 中针对这些错误模式加入显式检查指令。这也是 hipw 设计 Controller 组件时内置的"反证检查"和"一致性校验"的来源:不是让模型"再想想",而是用代码检查每个证据变量是否到齐、数值是否自洽、答案格式是否合法。
下接:关联技术
参考文献
- AFAC2026 赛道四官方赛题信息页。蚂蚁集团 / 阿里云天池,2026。
- hipw 博客:AFAC2026 赛题四B榜第一名方案复盘。hipw,2026 年 9 月。
- AFAC2026 获奖频道|华中科技大学"Lucky"团队获挑战组二等奖。AFAC 官方公众号,2026 年 9 月 29 日。
- afac2026-financial-qa:Baseline 改进方案。GitHub,2026。
- LogicRAG: Retrieval Augmented Generation with Adaptive Reasoning Structures。arXiv:2508.06105v2,2025。
- SmartChunk Retrieval: Query-Aware Chunk Compression with Planning for Efficient Document RAG。arXiv:2602.22225v1,2025。
- RAG over Tables: Hierarchical Memory Index, Multi-Stage Retrieval, and Benchmarking。arXiv:2504.01346v4,2025。
- FAIR-RAG: Faithful Adaptive Iterative Refinement for Retrieval-Augmented Generation。arXiv:2510.22344v1,2025。