不用向量数据库也能构建 RAG?
最近 GitHub 上一个叫 PageIndex 的开源项目火了。它完全抛弃了向量数据库和 embedding,用一种类似“目录树”的结构来做文档检索。
传统的 RAG 系统基本都靠向量相似度来找相关内容,把文档切成一块一块,作为 embedding,存进向量数据库,查询的时候再用向量匹配。这套方案用了好几年,大家也都习惯了。但问题是,相似不等于相关。你搜一个金融术语,向量匹配可能给你返回一堆表面上看起来像的段落,但真正回答问题需要的那部分内容可能排不到前面。
PageIndex 的思路是先把文档解析成一个层级结构,有点像给文档自动生成一个目录树,每个节点对应文档的一个章节或段落。检索的时候不是算向量距离,而是让大模型在这棵树上做推理,一层一层往下找,模拟的是人类专家翻文档的过程。
这个方案在 FinanceBench 个金融问答基准测试上跑出了 98.7% 的准确率,成绩相当不错。金融文档本身结构性强,有大量表格、章节、交叉引用,用向量切片容易丢失上下文,树形结构反而更合适。
当然这套方案也有局限。它对文档的结构化程度有要求,像那种格式混乱、没有清晰章节划分的文档,效果可能就没那么好。另外让大模型做树搜索,推理成本肯定比单纯的向量查询高。
总的来说,PageIndex 提供了一个不同于主流向量方案的思路。不是说向量数据库不行了,而是在某些特定场景下,比如结构化高的专业文档,基于推理的检索可能是更好的选择。
Github:github.com/VectifyAI/PageIndex
##