一、整体流程
财报/研究报告/监管文件 → 清洗结构化 → 切分 (Chunking) → 索引字段设计 → 向量化 (Embedding) → 检索 (Dense/Sparse/Hybrid + 重排) → Query 改写/分解 → 上下文组装 → 生成带引用答案 → 评测与监控
二、数据准备(金融文档类型)
- 非结构化:
- 上市公司财报 (10-K / 20-F / Annual Report)
- 投资银行 Pitchbook、并购研究报告
- 央行公告 / FOMC 纪要 / Basel III 文档
- 半结构化:
- 宏观经济数据(IMF、World Bank CSV)
- 行业研报(PDF+表格)
- 结构化:
- Bloomberg / Refinitiv / S&P Global 数据库
- 内部交易台 Excel 表(风险因子、对冲头寸)
👉 金融业要特别注意 数据新鲜度 & 合规性,很多场景需要「引用原文档」以满足审计追踪。
三、切分 (Chunking)
- 财报/研究报告:
- 200–400 tokens,保留标题链路
- 示例:[10-K → Risk Factors → Credit Risk → PD Estimate]
- 监管文件(Basel、OCC、ECB):
- 按条款/章节切分(300–600 tokens)
- 表格:
- row2text,例如:
Bank=MCB, Year=2024, Scenario=Adverse, CET1=10.5%
四、索引字段设计(金融业必备)
{ "doc_id": "JPM_10K_2024", "chunk_id": "eps_001", "heading_path": ["Financials", "Earnings per Share"], "text": "2024Q2 Diluted EPS = $1.52", "entities": ["EPS","Earnings"], "created_at": "2024-08-01", "source": "SEC 10-Q" }
表格型(风险参数/交易数据)
{ "table": "stress_test_params", "pk": "id", "filter_fields": {"year":"2024","scenario":"adverse","metric":"PD"}, "row_summary": "MCB 2024 adverse 场景下 PD=2.3%", "row_summary_vec": [...] }
👉 金融版索引要额外加:
- 指标字段(EPS, ROE, TBVPS, CET1, VaR)
- 场景字段(Baseline / Adverse / Severely Adverse)
- 合规来源(Basel III, CCAR, ECB 指令)
五、向量化(Embedding)
- Dense Embedding:金融语义模型(适合“资本要求 vs CET1”这种语义问题)
- Sparse 索引:BM25/SPLADE(适合“巴塞尔协议第 45 条”这种精确匹配)
- 多路向量:正文向量 + 标题向量 + 财务指标向量
六、检索策略(Dense / Sparse / Hybrid)
- Dense:回答“EPS 摊薄多少?”、“VaR 如何计算?”
- Sparse:回答“Basel III 第 72 条资本缓冲要求”
- Hybrid(默认):
- score = α·cosine + β·BM25 + γ·财务指标权重
- 先过滤:年份、银行名称、情景(Baseline / Adverse)
- Top 50 → 重排 → Top 8
七、Query 改写(金融案例)
- 原始 Query:
“压力测试里的信用风险参数怎么调整?”
- 改写版本:
- “CCAR 压力测试中,PD(Probability of Default)如何调整?”
- “OCC CCAR Handbook 关于违约率参数上调要求”
- Self-Query 结构化:
{"metric":"PD","scenario":"adverse","year":"2024"}
- 原始 Query:
“1.5x TBVPS 收购对 EPS 有什么影响?”
- 改写版本:
- “EPS accretion/dilution under 1.5x TBVPS bank acquisition”
- “Comparable M&A transaction TBVPS multiples vs EPS impact”
八、上下文组装
- 去重/合并:财报 EPS + 研报案例
- 保留引用:
“根据 [OCC Handbook 2024, P.35] 和 [S&P Global StressTestParams.xlsx Row 15]…”
九、生成与引用
模型输出示例:
“在 CCAR 压力测试中,信用风险参数 PD 通常需要在基准水平上额外上调 30%-50%。根据 MCB 2024 年不利情景数据,PD 为 2.3%。参考:[OCC Handbook 2024, P.35],[StressTestParams.xlsx Row 15]。”
十、评测与监控(金融专用指标)
- Recall@10 / nDCG:召回效果
- Faithfulness:是否乱编财务数据
- 引用率:是否引用原始财报/监管文件
- 覆盖率:核心指标(EPS, CET1, VaR, TBVPS)是否都能召回
- 时效性监控:新财报/央行公告更新是否能进库
十一、常见场景表(金融业专用版)
场景 | 切分 | 索引 | 检索 | 改写 | 备注 |
并购 (M&A) | 200–400 tokens + Excel row2text | 财报指标 + 交易条款 | Hybrid + 指标过滤 | TBVPS/EPS 改写 | 必须带交易假设 |
压力测试 (CCAR/ICAAP) | 条款级 + 表格行级 | 指标 + 场景字段 | Hybrid + Scenario Filter | Self-Query | Baseline/Adverse |
对冲基金研究 | 财报分块 + 研报段落 | EPS/ROE/Fcf 指标 | Dense + 时间过滤 | 财报问答改写 | 新鲜度关键 |
合规监管 | 300–600 tokens | Source=Basel/OCC/SEC | Sparse/BM25 | 禁改写,保留原条款 | 必须逐条可追溯 |
✅ 总结:
- 投行 RAG → 聚焦 M&A、估值模型、财报指标(EPS、TBVPS、ROE)
- 对冲基金 RAG → 聚焦研究报告、财报提炼、宏观事件解读
- 银行风险管理 RAG → 聚焦 CCAR/ICAAP 压力测试、Basel III 资本监管