向量检索找到了一个片段,为什么还不能直接说财报没有披露?

向量数据库与财报问答

约 11 分钟4 道小题

学完你能说清楚向量数据库负责找近邻,资料文字和元数据负责让答案可核对。

01学完这一课,你能做到什么

上一课讲了如何把问题和文档变成向量。这一课把它接成一个能查证的财报问答原型:向量负责找候选,资料文字和页码负责提供证据,生成模型负责组织回答。

学完这一课,你能:

  1. 区分关系型查询、向量检索、向量索引和;
  2. 建立“向量 ID—资料文字片段—文件元数据”的对应关系;
  3. 把 PDF 按页提取、切片、向量化并持久化;
  4. 识别“当前没召回”与“报告没有披露”的差别,并用 SQL 和文档检索配合。

先记住:检索不到证据,只能说明当前检索链没有找到,不足以证明原报告不存在。

可查证的财报问答链
  1. 1PDF 入库提取文字并保留页码
  2. 2切片向量化使用兼容模型建立索引
  3. 3近邻检索返回候选片段和元数据
  4. 4证据回答引用资料文字并写出边界

一句话记住找不到,不等于报告没有。

02向量检索和关系型查询各自适合什么

关系型数据库用表和字段保存结构化数据,适合按股票代码、公司和报告期精确查询。向量检索把文本或其他内容编码成向量,适合同义表达或措辞不同的问题。

向量索引是近邻搜索结构;向量数据库通常还会管理向量 ID、元数据、过滤、持久化和查询接口。FAISS 主要是相似度搜索库,不自带完整的权限、文档管理和业务界面。个人原型可以用 FAISS 加本地文件和元数据表,再按需要考虑 Elasticsearch、Milvus、PostgreSQL 向量扩展、Chroma 或托管服务。

精确搜索会随向量数量和维度增加计算量;近似索引能换取速度,但要在速度、内存和召回率之间取舍。不要把没有硬件、算法和精度条件的性能数字当成部署承诺。

两类查询的分工
结构化

按字段精确查

公司、代码、日期、报告期和金额等明确字段。

语义检索

按内容找近邻

同义表达、经营背景和附注等文本内容。

一句话记住字段查询求精确,向量检索求相关。

03从一条文本开始建立一致向量空间

假设问题是“某公司 2025 年营收和净利润是多少”,嵌入模型把它输出成 1024 维向量。短问题和长片段可以有同样的输出维数,但维数相同不代表它们来自同一个语义空间。

建库和查询必须使用兼容的模型、版本、维度和处理规则。假设最初用 V1 给财报建库,后来改用 V4 查询,不能只改配置名继续混查;通常要用 V4 重新编码文档并重建索引。

现代嵌入模型内部会分 token 并形成表示,池化方式由具体模型决定。上一课的 Word2Vec 手工分词演示,不能直接当成所有 API 的内部实现。

一句话记住换嵌入模型,通常要重建索引。

04索引之外还要保存资料文字和元数据

至少维护三组关联:

  • 向量 ID → 向量;
  • 向量 ID → 资料文字 chunk(知识片段);
  • 向量 ID → 文件名、页码、公司、报告期、发布日期等元数据。

查询返回 ID 后,程序才能取回资料文字和来源。假设用四段教学文本建立小索引,提问利润与分红,返回 Top 2,L2 距离约为 0.39 和 0.432。L2 通常是距离越小越近;内积或余弦分数通常是越大越近。必须明确度量方式和是否归一化,距离不是相似概率。

添加前要检查空文本、重复片段、ID 错位和异常向量。持久化时,索引与元数据必须使用同一版本保存,否则可能找到正确向量却对应错误页码。

三张表要对得上
  1. 1向量 ID索引返回的编号
  2. 2资料文字 chunk模型实际看到的证据
  3. 3来源元数据文件、页码、公司和期间

一句话记住向量、资料文字、来源必须同 ID。

05把 PDF 变成可检索的片段

一个完整流程可以是:读取 PDF → 按页提取文字 → 切片并保留页码 → 生成嵌入 → 加入 FAISS → 一起持久化。PyPDF 是 Python 的第三方工具,不是标准库;扫描页、图片和复杂表格可能提取不完整,也可以评估 MinerU 或 OCR 等方案。

年报的重要信息常在表格和脚注。抽样核对时要检查行列关系、单位、报告期和跨页内容;图片可以另做 OCR 或经验证的描述,不能只抽取正文就宣称资料完整。

假设一份报告约 20 万字符,采用 chunk_size 约 1000、overlap 约 200,得到 259 个片段。这里的 1000 到底是字符还是 token,要看分割器的长度函数并打印确认,不能混用。重叠能减轻句子被截断,但不能保证跨页表格自动完整。

PDF 入库检查
  1. 1提取逐页读取并保留页码
  2. 2核对抽查表格、脚注和单位
  3. 3切片按标题、段落和长度处理
  4. 4持久化索引与元数据一起保存

一句话记住表格和脚注也属于证据。

06提问、检索与生成

可以让应用层组织嵌入、检索和生成。例如取 Top K=4,把四个片段和来源放进上下文,再要求模型只根据证据回答并显示页码。

如果提问中芯国际 2025 年营收、净利润、毛利或毛利率,当前召回片段可能只覆盖部分指标。正确的回答是“当前召回片段不足以确定”,而不是“原报告没有披露净利润”。下一步可以用指标关键词过滤、查财务表标题、补查上下页,或转到结构化数据。

要区分毛利和毛利率、营业收入和营业总收入、归母净利润和净利润。回答数字时保留币种、单位、期间、口径和页码。询问前两大股东时,还要确认报告时点、股东类别和排序口径。

两种结论不能混淆
召回不足

当前证据没找到

说明检索链需要补查,不能推出原报告没有。

已核对全文

报告未披露

只有在完整核查范围和口径后,才可以这样表述。

一句话记住召回不足要补查,不要补猜。

07结构化 SQL 和文档 RAG 可以配合

已经结构化的营收、利润等指标,适合按公司和报告期用 SQL 精确查询;文档检索可以补充附注、经营背景和管理层解释。生成提示中要分别标明 SQL 结果和文档证据,避免来源混在一起。

如果让模型生成 SQL,要提供表结构、字段定义和只读范围,并检查 SQL 与返回结果,限制行数和查询成本。不能让模型凭问题猜表名,也不能把查询动作变成数据修改。

SQL 和文档证据口径冲突时,先把冲突写出来,核对期间、单位和定义,不能让模型随便挑一个。

一句话记住结构化数据求准,文档证据补解释。

08为什么不把全部材料直接给模型

大型知识库可能有几十万到上亿 token。每次把全部材料交给模型,会增加输入成本、延迟和无关上下文。嵌入召回可以先筛出少量片段,例如四个约 1000 token 的块,再生成回答。

但小文档不一定要向量化。直接使用长上下文可能更简单。选择 还是长上下文,要比较证据覆盖、引用追溯、更新方式、速度和成本。实际费用取决于模型和服务的计价规则,不能套用一个固定比例。

一句话记住先比较证据覆盖和成本,再选方案。

09个人原型和生产部署的边界

个人少量文档可以先用 FAISS 加本地文件或 SQLite 元数据存储。能否承载几千或上万份文档,取决于切片总数、向量维度、索引类型和内存,不是看 PDF 文件数或硬盘能否放下。

多用户生产系统还要考虑权限隔离、并发、更新一致性、备份和删除能力,可能需要完整的数据库服务。硬件、价格和云租赁条件会变化,先用自己的模型、文档量和峰值负载测试延迟与内存,再决定本地还是云端。

本地向量索引不等于全流程本地。如果嵌入或生成调用云 API,文本可能离开本机;处理财报笔记、客户资料和账户数据时,要逐步确认数据发送位置。

一句话记住先测自己的负载,再谈部署。

10和量化研究相连的两项提醒

如果把问答结果用于研究,时间边界必须和数据边界一致。比如识别缠论结构时,只能按当时已经出现的数据逐步更新,不能先用完整历史画好笔和,再回到过去交易。去掉未来信息后收益下降,说明原流程存在信息泄漏,不应该为了恢复高收益把泄漏加回来。

财报问答也可以进一步包装成 Agent 或 Skill,但顺序要反过来:先把解析、检索、引用和失败处理做可靠,再增加自动任务编排。更多框架不会自动提高答案质量,检索结论也不能直接触发实盘交易。

一句话记住先保证证据可靠,再自动编排。

11验收一个能重启、能查证的原型

先用四段明确标注的教学文本,验证向量 ID、资料文字和距离一一对应。再加入一份合法可用的公开年报,完成分页提取、切块、向量化、保存,关闭后重新加载,并做 Top 4 问答。

准备直接财务问题、股东问题、跨页表格问题、年份错误问题和资料外问题。每题记录召回页码、是否覆盖答案、最终引用和无法判断的原因。故意换一个不兼容模型,确认程序会拒绝或要求重建,而不是静默返回错误检索。

验收标准包括:索引和元数据一一对应;页码正确;表格单位未丢;召回缺失只写成召回缺失;查不到不编造;重启后可复用;模型版本可追踪。

一句话记住验收的不只是回答,还有证据链。

检验
检验一下

4 道小题

全部答对,这一课就算真正读懂了。答错了会告诉你为什么。

01当前 Top 4 片段没有找到净利润,最稳妥的结论是什么?
02为什么向量 ID 还必须关联资料文字和页码?
03使用 L2 距离时,哪一个候选通常更近?
04财务指标已有结构化表,经营背景在年报附注里,怎样组合更合适?
知识卡

这一课,浓缩成一张卡

学完可以保存或分享给朋友。保存成图片的功能会在下一版加上。

AI+金融投资训练营 · 向量数据库与财报问答财报问答怎样避免把检索结果当成事实?

保存资料文字、页码和口径,回答只引用已找到的证据并说明边界。

  • ID 对应资料文字
  • 引用页码
  • 缺证据不补猜
quant.jtxaionline.com
这一课的要点

记住这 5 句话

  1. 01关系型查询适合代码、日期和报告期等结构化条件,向量检索适合内容相近但措辞不同的问题。
  2. 02向量 ID、资料文字 chunk 和文件元数据必须一一对应,距离或分数也要标明度量方式。
  3. 03PDF 入库要核对表格、脚注、单位、页码和长度单位,并把索引与元数据一起持久化。
  4. 04当前召回不足不等于报告未披露;SQL 和文档 RAG 可以分工并分别标注来源。
  5. 05先用自己的文档和负载验收,再考虑生产部署、云端数据边界和 Agent 自动编排。
完成这一课

完成这一课

读完讲义、答对小题,这一课就算学完了。

  • 读完讲义
  • 通过随堂自测

实验数据AI+金融投资训练营教学样本。固定教学样本

固定教学样本只用于解释量化研究方法,不代表任何真实标的未来表现,也不构成投资建议。