趋近智
标准检索增强生成(RAG)通常涉及将文档分块并直接将这些块嵌入 (embedding)到向量 (vector)存储中。尽管对于较简单的情况有效,但具有庞大、多样化数据集和高性能需求的生产环境需要更复杂的索引方法。仅依靠基本的块嵌入可能导致检索关联性不佳、上下文 (context)碎片化或搜索效率低下。高级索引策略旨在以提升检索质量和速度的方式存储和组织信息,这会直接影响您的RAG系统的性能和准确性。
这些策略通常需要在索引复杂程度、存储成本、查询延迟和检索准确性之间进行权衡。理解这些技术使您能够根据数据和应用需求的具体特点,调整RAG管道的索引层。
多向量索引不为每个文档块只生成一个向量,而是为同一内容使用多个向量。这样可以捕获并搜索信息不同的“视图”或摘要。
常见方法:
单个文档块可以与其内容、摘要或相关问题衍生的多个向量关联。
优点: 满足不同查询类型(通用型与特定型),可能提升关联性。 考量: 存储需求增加,索引流程更复杂,可能需要更精密的查询逻辑。
分块过程本身常会带来一个难题。小块可以生成适合相似性匹配的精确嵌入 (embedding),但通常缺乏LLM综合生成全面答案所需的足够上下文 (context)。反之,大块虽然提供上下文,但可能稀释具体信息,从而使嵌入精度降低。
父文档检索(有时称为“小到大”检索)通过索引更小、粒度更细的块,并将它们与其更大的父文档(或更大的上下文窗口)关联来解决这个问题。
流程:
父文档检索是针对小块嵌入进行搜索,但返回与最佳匹配关联的较大父文档。
优点: 将小块嵌入的精确性与LLM所需的丰富上下文结合起来。
考量: 在索引期间需要仔细建立子块和父块之间的映射。如果父块过大,可能检索到尺寸过大的文档。LangChain提供了像 ParentDocumentRetriever 这样的实现来简化此过程。
向量 (vector)相似性搜索寻找嵌入 (embedding)空间中语义接近的文档,但关联性通常也依赖于与文档关联的结构化属性或元数据(例如,创建日期、来源、作者、类别、用户权限)。
使用元数据可以实现更有针对性、更高效的检索:
预筛选使用元数据在向量相似性计算前缩小搜索范围。
优点: 提升搜索效率,允许基于结构化数据执行访问控制或关联性,通过及早移除不相关候选者来提高准确性。 考量: 需要定义良好且持续填充的元数据字段。预筛选的有效性取决于过滤器的选择性以及向量存储对高效元数据筛选与向量搜索结合的支持。许多现代向量数据库提供了优化的元数据筛选能力。
将元数据筛选与稠密向量搜索以及可能的稀疏关键词搜索(如BM25)结合,构成了混合搜索的基础,这是一种将在下一节介绍的有效技术。这些高级索引策略为构建高度关联、上下文 (context)感知且高效的RAG系统提供了基本支持,使其能够应对生产需求。选择和组合这些策略主要依据您的具体数据、查询模式和性能目标。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造