AI×金融知识站
–

kp-021 · 金融 RAG:架构、检索与评测

进阶 模块:大模型落地 预计 30 分钟 更新 2026-10-02

一句话定义

RAG(Retrieval-Augmented Generation,检索增强生成)把"检索内部知识 → 组装上下文 → 受约束生成 → 引用与校验"串成管线,让大模型基于指定文档回答,是金融大模型落地的默认架构,本知识点讲清其组件、金融特殊性(表格/口径/权限/时效)与评测方法。

为什么重要

金融知识(产品条款、内部制度、监管规则、研报)更新快、口径严、责任重,直接问大模型会得到流畅但不可信的答案;微调又贵又无法保证知识时效。RAG 以"答案必须来自检索到的文档"为核心约束,同时解决三个金融刚需:知识可更新(换文档即换知识)、答案可溯源(引用到具体条款)、数据不出域(私有部署检索)。它是 kp-016 客服问答、kp-009 投研证据检索、内部合规问答的公共底座——金融大模型项目评审中,RAG 方案的检索质量与评测设计几乎决定了项目成败。

前置知识

kp-005(金融文档解析质量决定检索原料)、kp-006(口径意识)。

直观类比

RAG 是"开卷考试":大模型是会写作文但记不准课本的学生,检索器是帮他翻到正确页码的图书管理员,上下文组装是把相关段落摊在桌面上,生成约束是"只准按桌上的材料作答并标明出处"。管理员翻错了页(检索失败),学生写得再好也是错答;翻对了页学生自由发挥(生成越界),同样是错答——两个环节都要考。

核心概念

  • 离线管线:文档解析(见 kp-005)→ 切分(chunking):结构感知切分(按标题层级、条款、表格完整性切,而非固定字数硬切)+ 元数据挂载(产品名、生效日期、密级)→ 向量化(embedding 模型把文本块映射为向量)→ 入库(向量库+元数据过滤)。
  • 在线管线:查询改写(把口语问题改写为检索友好形式,含多查询扩展)→ 混合检索:稠密向量召回(语义相近)+ 稀疏关键词召回(BM25 类,精确术语如"份额折算")→ 融合 → 重排(reranker):用交叉编码器对候选精排出 Top-k → 上下文组装(排序+去重+权限过滤)→ 受约束生成(要求引用、限定材料域)→ 校验(引用存在性、数字一致性)。
  • 金融特殊性一:表格与口径:利率表、费率表、指标口径是金融文档的价值核心,纯文本切块会破坏表格语义——表格需单独的解析与检索策略(行级索引、表头保留)。
  • 金融特殊性二:权限与时效:不同岗位可查的制度范围不同(权限过滤必须在检索层而非生成层);文档有生效/废止状态,过期条款入库即埋雷——知识库要有版本与生效期管理。
  • 评测三层:检索层(Recall@k——正确文档被召回的比例、MRR——正确文档排名质量)、生成层(忠实性/groundedness——答案是否只依据检索材料、引用准确率)、端到端(金标问答集上的正确率+人工评审)。没有金标评测集的 RAG 项目无法验收。

原理与机制

为什么混合检索优于单一向量检索:稠密向量擅长语义泛化("提前还贷违约金"≈"部分还款补偿")但会混淆精确术语(不同产品的同名条款、相近数字),BM25 对精确词与编号命中强;金融问题常含"精确锚点+口语包装"双重结构,两路召回取长补短。为什么重排必要:向量召回是双塔结构(问题与文档各自编码),精度上限低于交叉编码器(问题与文档拼接后联合打分);用便宜的双塔召回大候选集、昂贵的精排模型压小集合,是精度-成本的标准权衡。为什么"检索对了生成仍可能错":上下文过长时模型会忽略中间内容(lost in the middle 现象)、冲突材料会诱发幻觉、无材料时模型倾向编造——因此生成的受约束设计(明确"材料中没有就回答未找到")与输出校验(引用核查、数字比对)是必配件,与 kp-024 的红线设计衔接。

公式或模型

余弦相似度: sim(q, d) = (q·d) / (‖q‖·‖d‖)
BM25(概念式): score(q,d) = Σt IDF(t) · tf 权重(t,d) · 长度归一
Recall@k = (Top-k 中含正确文档的问题数) / 问题总数
MRR = mean( 1 / 正确文档首次命中的排名 )
忠实性(评测构造): 答案中的事实性陈述可被检索材料支持的比例

图示

[离线] 文档 → 结构感知切分+元数据 → 向量化 → 索引
[在线] 问题 → 改写/多查询
          ├─ 稠密召回(向量) ┐
          └─ 稀疏召回(BM25) ┴→ 融合 → 重排 Top-k
          → 权限过滤 + 生效期过滤
          → 上下文组装 → 受约束生成(要求引用)
          → 校验: 引用存在 · 数字一致 → 回答
[评测] 金标问答集 → Recall@k / MRR / 忠实性 / 引用准确率

实例或案例

一个内部制度问答系统(教学化描述):某券商把 2000 余份内部制度接入 RAG。首版用固定 500 字硬切块,"投资者适当性管理办法"中的分级表格被切成两半,问答"客户等级 C2 能买 R4 产品吗"召回失败;改为结构感知切分(条款为块、表格整块保留)并叠加 BM25(命中"C2""R4"精确匹配)后,Recall@5 从 0.61 升至 0.89;再加权限过滤(投顾岗与合规岗检索范围不同)与废止条款过滤。上线同时建了 300 题金标集做回归评测——每次换 embedding 模型或改提示词都跑一遍。该案例演示的正是本知识点三条主线的交汇:解析质量、混合检索、评测纪律。

常见误区

  • 误区一:向量库一建,RAG 就成了。 检索只是半程:切分质量、权限与时效过滤、生成约束与校验缺一不可;"向量库=RAG"是最常见的方案空心化。
  • 误区二:检索命中=答案正确。 生成环节的越界与幻觉独立于检索质量,必须有忠实性与引用校验;只测检索不测生成是评测的半盲状态。
  • 误区三:微调可以替代 RAG。 微调改变模型能力风格,不提供可溯源的即时知识;知识密集型问答场景 RAG 是更优解(成本、时效、可审计三方面),两者是互补而非替代关系。

自测题

  1. RAG 在线管线的关键组件按序是什么?

答案要点:查询改写→混合召回(稠密+稀疏)→融合→重排→权限/时效过滤→受约束生成→引用校验。

  1. 金融文档对切分的特殊要求是什么?

答案要点:结构感知(条款/表格完整性)、元数据挂载(产品/生效期/密级),拒绝固定字数硬切。

  1. RAG 评测为什么要分三层?各层核心指标?

答案要点:检索(Recall@k、MRR)、生成(忠实性、引用准确率)、端到端(金标正确率+人工评审);分层才能定位失败环节。

与其他知识点的关系

kp-005 的解析质量是检索原料的上游;kp-016 与 kp-009 是 RAG 的两个高频业务宿主;kp-022 的结构化输出支撑生成约束;kp-024 提供生成层红线设计;kp-025 决定 RAG 的私有化承载。

延伸阅读

  • Lewis et al.(2020):"Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks"——RAG 概念论文。
  • Karpukhin et al.(2020):"Dense Passage Retrieval"——稠密检索的经典基线。