PageIndex:不用向量数据库的推理式 RAG,适合长文档结构化检索

PageIndex 用目录树和推理替代向量检索,更适合结构清晰的长文档 RAG。

原文标题:新型推理式 RAG:拆解 PageIndex 差异化优势

原文作者:数据派THU

冷月清谈:

文章介绍了一种名为 PageIndex 的新型 RAG 思路:它不依赖 Embedding、固定分块和向量数据库,而是先把长文档构建成层次化目录树,再让大语言模型基于目录结构进行推理和导航。与传统向量 RAG 通过语义相似度找文本不同,PageIndex 更强调“答案位于文档的哪个结构位置”。

其流程分为索引和查询两阶段:索引阶段由 LLM 识别文档中的自然边界,如章节、场景、主题转折等,并为每个节点生成摘要;查询阶段模型先阅读目录树和节点摘要,判断问题最可能对应的章节,再只取回相关节点的原文生成答案和引用。

这种方法的优势在于检索过程更可解释、可追溯,尤其适合财务报告、法律合同、监管文件、政策文档、学术论文和长篇叙事等结构清晰的材料。它的核心假设是:在复杂长文档中,相关性不一定等于语义相似度,更可能来自结构化推理。

怜星夜思:

1、PageIndex 这种“先看目录再找答案”的 RAG,会不会比向量 RAG 更接近人类阅读方式?
2、如果不用 Embedding 和向量数据库,PageIndex 在成本、速度和准确率上真的一定更好吗?
3、PageIndex 最容易翻车的地方可能是什么?目录树建错了,后面的回答是不是也会一路错下去?
4、未来的 RAG 系统会不会走向混合路线:结构推理负责导航,向量检索负责兜底?

原文内容

图片
来源:DeepHub IMBA
本文约1500字,建议阅读5分钟
本文介绍 PageIndex 的工作原理、核心优势,对比传统 RAG 并说明适用场景。


PageIndex 是一种无向量、基于推理的检索增强生成(RAG)方法,无需 Embedding、分块或向量数据库即可从长文档中检索答案。


它不依赖语义相似度搜索,而是从文档中构建一棵层次化的目录树(TOC),再由大语言模型对该结构进行推理。模型先借助文档的层级结构定位最相关的章节,然后导航至该章节,生成精确且带引用的答案。


传统 RAG 通过相似度进行检索。PageIndex 通过对结构的推理进行检索。


财务报告、法律合同、监管文件、政策文档、学术论文这种结构清晰的长文档都是它的优势领域。


多数 RAG 系统依赖 Embedding 和向量数据库:把文档拆成块,转成向量,用余弦相似度找答案。但相似度不是推理。PageIndex 采用了另一个方法,通过文档结构的推理而非语义搜索来检索信息。文档不再是一堆扁平文本,而是一个带层级的结构体系,类似于一本附有目录的教科书。


下面用经典电影《Sholay》来演示其工作原理。


核心思想:先理解结构,再进行搜索


把《Sholay》的剧本或详细剧情概要输入 PageIndex,它不会将文档拆分为任意的 500 词分块,而是构建故事的结构树:


 Document → Hierarchical Index → Reasoning-Based Retrieval → Answer


传统路径则是:


 Document → Chunks → Embeddings → Vector DB → Similarity Search → Answer


阶段一:创建树结构(索引阶段)


第一阶段完成结构化索引,分为两步。


1、结构检测

LLM 读取剧本,检测自然边界:场景标题("SCENE 1 — THE TRAIN ROBBERY")、角色介绍、幕次分隔、重要叙事转折。它依赖的是叙事结构,而非固定的分块大小。


  • 🎬 深色根节点 → 代表完整文档

  • 🔵 蓝色 → 主要故事段落

  • 🔴 红色 → Gabbar 相关故事线

  • 🟣 紫色 → 关键事件节点

  • 🟠 金色 → 具体事实事件


2、层次化映射

PageIndex 构建一棵树。根节点是 Sholay,第一级分支可能包括:序幕、招募 Veeru 和 Jai、Ramgarh 的生活、Gabbar 的恐怖统治、最终决战。每个分支还可以包含子节点。


以 Gabbar's Den 为例,其摘要为:"本节涵盖 Gabbar Singh 的出场介绍、'Kitne aadmi the'台词以及对手下的惩罚。"


每个节点包含:

  • title

  • nodeId

  • summary

  • child nodes


关键在于LLM 为每个节点写一段简洁的语义描述的摘要说明该章节发生了什么,这段摘要在后续查询阶段将充当检索信号。


阶段二:查询阶段


假设用户提问:


为什么 Thakur 失去了双臂?


完整剧本不会被整体发送,不会生成 Embedding,也不会执行向量相似度搜索。LLM 接收到的只有三样东西:用户的问题、层次化映射(JSON 树)、每个节点的摘要。不是完整剧本,只有结构。


LLM 如何找到答案(推理,而非数学计算)


步骤 1:结构搜索

LLM 读取这棵树,看到"Thakur 家族的屠杀""Gabbar 的复仇""Ramgarh 的生活"等节点。根据摘要进行推理:答案很可能存在于涉及 Gabbar 和 Thakur 受伤的章节中。这是逻辑推理,不是向量相似度计算。


步骤 2:深入探索

PageIndex 随后仅检索这些特定节点对应的原始文本。不扫描 50 页内容,只取回 2-3 个聚焦章节。


步骤 3:最终回答

LLM 读取这段高度相关的文本片段,给出回答:


Thakur 失去双臂是因为 Gabbar Singh 为报复 Thakur 多年前的逮捕行为而将其双臂砍断。


同时附上引用:


 (nodeId: massacre-thakur-family)


检索过程可解释、可追溯。


PageIndex 与传统 RAG 的差异(针对结构化文档)


传统向量 RAG 系统中,搜索"Thakur 的手臂"可能返回:Jai 和 Veeru 打斗中使用手臂的场景、包含相似词汇的对话,以及"手"或"受伤"的无关提及。向量搜索按语义接近度检索,不考虑叙事相关性——本质上是在做"氛围匹配"。


PageIndex 不存在这个问题。屠杀场景的摘要已经明确写道:


"本节描述了 Gabbar 如何攻击 Thakur 的家族并砍断了他的双臂。"


LLM 不是在猜测,而是在导航。


PageIndex 有效的原因


它将两个认知任务分开处理:导航,确定答案应该存在的位置;提取,仅阅读该章节并生成答案。


这与人类的阅读方式相同。想知道小说中某件事为何发生,不会随机翻阅每一页,而是直接翻到相关事件所在的章节,PageIndex 让 LLM 遵循同样的行为模式。


适用场景


这种架构在以下场景中表现突出:财务报告、法律文档、政策文件、监管备案、学术研究、长篇叙事内容。凡是结构重要性超过表面相似度的场合,都是它的用武之地。


总结


传统 RAG 的假设:相关性等于语义相似度。PageIndex 的假设:相关性等于结构化推理。


差异看似微小,在长篇层次化文档中却影响深远。PageIndex 没有去造一个更好的搜索引擎,而是画了一张导航地图,让 LLM 先思考,再阅读。


by Vishal Mysore


编辑:于腾凯

校对:林亦霖



关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。




新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU

回答“会不会走混合路线”:我认为大概率会。结构化推理适合找章节,向量检索适合补充细节和处理模糊问题。两者不是非此即彼,混合系统可能更稳。

我不觉得 PageIndex 会全面碾压向量 RAG。它更像是换了一种成本结构:少了向量检索,多了结构解析和推理调用。准确率在结构化长文档里可能提升,但在短文本或无结构数据里优势未必明显。

1 个赞