跳转至

怎么短平快地把RAG做好:厦门国际银行数创金融杯RAG初赛方案

📊 Level ⭐⭐⭐ | 8.1KB

摘要

本文解读厦门国际银行第五届数创金融杯大模型应用挑战赛初赛方案:赛题为金融监管制度智能问答(经典 RAG),要求基于给定金融文档库,对不定项选择题和问答题生成"准确、合规"的答案;整体工程只能在受限硬件(CPU 8 核 / 32G 内存 / 24G 显存)下推理,以 A/B 榜评估、B 榜定名次。作者以 TrustRAG 框架为脚手架,在两周边际时间内冲刺、约 10 天冲入 top10,给出了一条"短平快"、效果够用的 RAG 落地路径。

→ 原文存档

核心要点

  • 金融监管问答是高利害领域:答案须"准确、合规",既同幻觉作战,也同术语歧义作战,正确性直接关系合规判断。
  • 采用七步经典流水线:文档加载解析 → 文本切块 → 混合检索重排 → 指令数据集构造 → 模型微调 → 推理 → 投票融合。
  • 混合检索 BM25(权重 0.3)+ Dense(bge-m3 / bge-large-zh-v1.5,权重 0.7),Top-15 候选再经 BGE-reranker-large 精排;选择题把选项拼进查询辅助定位。
  • 句子级切块(SentenceChunker)不割裂完整句子,256 的 chunk_size 在召回率实验中表现最佳,切块与文件元信息分离存储减少冗余。
  • 微调补差距:Qwen3-8B/14B + QLoRA/LoRA,实测 8B 与 14B 分数接近、甚至 8B 更优——通用模型金融监管表现不够,需领域数据微调。
  • 推理期以 temperature=0.0 贪心解码、max_new_tokens=512、batch_size=1 强化稳定性。
  • 结果投票融合:选择题多数投票,问答题取语义相似度最高者。
  • 作者结论:RAG 没有标准答案,考验的是面对不同任务灵活变通、基于成熟脚手架快速改造并"发现问题解决问题"的能力。

深度分析

金融监管约束下的 RAG:精确、可追溯、可审计

金融监管制度问答与泛化知识问答最大的分野在于约束强度。题目明确要求"生成准确、合规的答案"——准确意味着答案必须锚定文档原文而非模型记忆,合规意味着表述要符合监管语言与术语体系,两者共同把任务推向"拒绝模糊、拒绝编造"。这类约束沿着整条流水线传导:检索阶段需要高密度小 chunk 以保证命中,生成阶段需要"与文档原文精确对比、逐一验证"的强约束 prompt,数据阶段则需要把文件名、token 长度、是否含表格等元信息以 JSON/映射表结构化保存,使每个答案都可回查到出处——这正是金融场景"可追溯、可审计"诉求在工程上的落地。表格在金融监管文档中的高价值也被显式处理:加载解析阶段即标记含表格文档,避免做 embedding 时丢失结构性关键信息(限额、比例、名单常藏在表格里)。

TrustRAG 框架:面向可信 RAG 的可复用脚手架

方案的技术底座是 gomate-community 的 TrustRAG 项目(DocxParser、SentenceChunker 等组件),代码几乎全部复用。这体现了作者"短平快"的核心方法论:不从头造轮子,而是站在可信 RAG 脚手架上做增量改造,把有限时间花在数据、prompt、融合这些真正决定分数的环节。一个值得注意的细节是用与问答模型同款的 Qwen3-8B tokenizer 统计文档 token 长度,以精准设计窗口大小、提高输入长度预算的利用效率——领域 token 数的经验值(大部分文档约 1600 token)让后续切块与上下文组织有据可依。

检索与重排:混合信号与多配置融合

检索层采用混合检索补齐单一方法的短板:BM25 抓关键词的字面匹配,Dense 向量抓语义相关,以 0.3/0.7 加权融合召回 Top-15,再经 BGE-reranker-large 精排。更巧妙的是把"多配置"当作泛化手段:用 2 个 embedding 模型(bge-m3、bge-large-zh-v1.5)× 2 种 chunk_size(256、512)交叉组合,构造出彼此独立、各有偏好的检索-生成样本,为末端的投票融合铺底——不同配置在召回分布上互补,融合后整体稳健性显著提升。作者也坦承困难场景:答案可能跨多个 chunk 分布、相似内容过多导致排序靠后(如"双线报告"类题目)、以及部分问题无需检索即可由模型自身知识回答——识别并分类这些困难,是调优召回与切块的关键输入。

高利害场景下的幻觉控制与推理稳定性

幻觉控制在高利害领域是叠加的、多层的防线,而非单点技术。第一层是检索质量(混合检索+重排+小 chunk 高信息密度),保证模型"有据可依";第二层是 prompt 约束(选择题"精准分析/逐一验证"+严格格式"A,C,D",问答题五步推理链:问题解构→信息检索→内容筛选→答案组织→答案优化,并要求规范金融监管术语);第三层是解码配置(temperature=0.0 贪心解码消除随机性);第四层是推理期投票融合,用多数投票与语义相似度做次级纠错。此外以领域数据微调 QLoRA 补齐通用模型在金融监管上的知识盲区——四个层次层层兜底,共同把高利害场景下"看起来合理但实为编造"的输出空间压到最小。

实践启示

  1. 领域 RAG 的性价比起点是"召回密度":句子级切块 + 小 chunk(256)+ 混合检索 + 重排,比追求大模型更立竿见影。
  2. 把"可校验"写进 prompt:要求逐项对照原文、严格输出格式,既是工程约束更是廉价幻觉护栏。
  3. 用"多配置融合"以廉价换稳健:不同 chunk×embedding 组合投票显著提升效果,且不增加推理期复杂度。
  4. 受限硬件下 QLoRA 是务实选择,且 8B 常已够用——不必盲目追逐更大模型,把算力留给融合与迭代。
  5. 高利害领域务必在数据层保留结构化元信息(文件名、token 数、表格标记、chunk→file 映射),为可追溯和审计留下后路。
  6. 不要从零造轮子:基于成熟可信 RAG 脚手架(如 TrustRAG)快速改造,把时间花在识别困难案例和调试上,是"短平快做好"的关键。

相关实体

  • RAG技术框架的演进方向 — Classic → Graph → Agentic RAG 演进路线,本文为其经典 RAG 打法提供实证对照
  • AFAC2026 金融 AI Agent 竞赛 — 另一金融 AI 竞赛方案,可对比"RAG 问答"与"Agent 编排"两条路线
  • RAG 分块-嵌入-重排全链路 — 与本文混合检索+重排设计互补的管道细节
  • Stripe 金融合规 AI Agent 实践 — 同为金融合规场景,可从生产侧视角印证本文的可追溯、可审计原则