检索增强生成(RAG)技术在过去两年已成为 AI 应用的标准组件。从智能客服、企业知识库到金融分析、法律文档问答,主流方案几乎都遵循同一套逻辑:文档切分、向量化、余弦相似度匹配、再将检索内容喂入大模型回答。这套方案简单有效,但痛点同样明显 —— 当问题变得复杂、跨越多页、甚至涉及多层逻辑推理时,向量相似度检索往往会迷失方向。用户问「公司 2023 年经营活动现金流同比变化是多少」,传统 RAG 可能找到一堆包含「现金流」的段落,却遗漏关键上下文:经营活动与投资活动的区别、2023 年与 2022 年的对比。
PageIndex 的出现正是为了解决这一根本性缺陷。Vectify AI 提出的这套推理型 RAG 框架,其核心理念极为朴素却极具启发性:模拟人类阅读 —— 先看目录、定位章节、再顺着小标题找到目标位置。
传统向量检索的语义困境
向量检索的本质是将文本映射到高维向量空间,通过计算向量间的「距离」或「相似度」来匹配查询与文档片段。这一机制在处理语义相近但用途迥异的表达时表现良好,但在专业文档分析场景中暴露出深层问题。
首先,语义相似不等于内容相关。用户询问「公司在 2023 年的现金及现金等价物净增加额」,向量检索可能返回所有包含「净增加额」或「现金」字样的段落,但无法区分经营活动、投资活动与筹资活动各自的贡献。其次,人工分块(chunking)破坏了文档的天然结构。一份财务报告的章节之间存在逻辑依赖关系,孤立的片段往往丢失了关键的上下文与限制条件。第三,向量检索的可解释性极差。用户无法得知为何某个片段被召回,系统也难以提供可追溯的引用来源,这对金融、法律等需要审计追溯的场景是致命缺陷。
PageIndex 的设计思路正是从这些痛点出发,用文档的原生结构替代向量空间,用推理遍历替代相似度计算。
树结构索引:文档的语义目录
PageIndex 的第一阶段是树结构索引生成。它将长文档(PDF、Markdown 等)转换为一个层级化的树状结构,每个节点对应文档的自然章节或段落,节点内包含摘要描述。这一过程类似为文档生成一份增强型的目录表(Table of Contents),但远超传统目录的信息密度。
生成树结构时,PageIndex 依赖大语言模型对文档内容的理解能力。系统会遍历文档,识别章节层级、提取关键信息、为每个节点生成简洁的内容摘要。与传统分块策略的核心差异在于:PageIndex 不人为设定固定大小的片段,而是尊重文档的逻辑边界。金融报告的「资产负债表」是一个完整的节点,学术论文的「实验方法」是另一个完整节点,每个节点内部保留完整的上下文与结构关联。
从实现细节看,生成树结构时支持多个可配置参数。--toc-check-pages 控制扫描目录页面的范围(默认 20 页),--max-pages-per-node 设定每个节点覆盖的最大页数(默认 10 页),--max-tokens-per-node 限制每个节点的 token 上限(默认 20000)。这些参数允许用户根据文档特性调整索引粒度。对于 Markdown 文件,系统通过标题层级(#、##、### 等)自动识别结构,无需额外配置。
推理式检索:树搜索而非向量匹配
树结构生成后,检索阶段采用 LLM 驱动的树搜索(Tree Search)而非向量相似度匹配。这一过程模拟人类专家阅读复杂文档的策略:先浏览目录定位相关章节,再深入阅读具体段落提取信息。
具体而言,PageIndex 的检索分为两种模式。一种是纯 LLM 树搜索,由大语言模型自主遍历树结构,根据查询意图判断哪些节点相关,逐步收敛到目标内容。另一种是混合树搜索,在 LLM 推理的基础上结合关键词匹配,兼顾语义理解与精确匹配。两种模式均不依赖预计算的向量索引,也不设定人为的 Top-K 阈值来限制召回数量 —— 检索器会基于推理判断所有相关节点,而非返回「最相似的 K 条」。
这种检索方式带来三个关键优势。第一是可解释性,每个节点的引用都附带页码与章节信息,用户可以验证系统为何召回特定内容。第二是上下文完整性,节点保留文档的原生结构,召回内容不会因分块而丢失前因后果。第三是推理能力,对于需要多步推理的复杂查询(如计算比率、对比时序数据),树搜索可以沿逻辑链逐层定位信息源,而非依赖片段间的向量关联。
实证表现:FinanceBench 98.7% 准确率
PageIndex 的设计理念在金融文档分析场景中得到了验证。基于 PageIndex 构建的 Mafin 2.5 系统在 FinanceBench 基准测试中达到 98.7% 的准确率,显著超越传统向量检索方案。FinanceBench 包含大量需要从 SEC Filing、盈利披露等文档中抽取财务指标并进行计算的问题,对检索精度与推理能力均有严苛要求。
这一成绩验证了一个核心假设:在专业文档领域,结构感知与推理驱动的检索优于纯粹的语义相似度匹配。金融报告、法律合同、技术手册等长文档的核心价值在于其层级化的结构与逻辑关联,而非孤立句子的语义等价性。
部署与集成:自托管与云服务双轨
PageIndex 提供灵活的部署选项。开源版本可在本地运行,通过 python3 run_pageindex.py --pdf_path /path/to/document.pdf 快速生成树结构索引。也可通过 MCP 协议或 REST API 集成到现有系统。云端服务(chat.pageindex.ai)提供开箱即用的 ChatGPT 风格交互界面,支持直接上传文档进行对话分析。
值得注意的是,PageIndex 还支持基于视觉的向量 less RAG(Vision-based Vectorless RAG),直接对 PDF 页面图像进行推理,无需 OCR 预处理。这一能力使其能够处理扫描版文档或图表密集型报告,进一步拓展了应用边界。
工程化要点与参数建议
对于计划采用 PageIndex 的团队,以下参数配置可作为起点。对于页数较多(100 页以上)的长文档,建议将 --max-pages-per-node 调整为 5 至 8,以保持每个节点的聚焦性。若文档结构复杂、层级较深,可适当增加 --toc-check-pages 至 30 至 40,确保目录识别的完整性。对于中文等非拉丁语系文档,建议在环境变量中配置对应的 API 密钥与模型参数。
检索阶段建议优先尝试纯 LLM 树搜索模式,只有在查询包含大量专有名词或精确数值时,才考虑启用混合模式补充关键词匹配。
传统向量检索的局限在于用「相似度」替代「相关性」,用「片段」替代「结构」。PageIndex 通过树结构索引与推理式检索,重新定义了 RAG 在长文档场景下的工作范式。对于金融分析、法律审阅、学术研究等需要高精度、可追溯信息检索的场景,这一架构提供了值得参考的技术路径。
参考资料
- PageIndex GitHub 仓库:https://github.com/VectifyAI/PageIndex
- PageIndex 官方文档:https://docs.pageindex.ai/cookbook/vectorless-rag-pageindex