构建RAG应用时大文档集检索如何优化?

1个回答

写回答

xxxtentacion..

2026-02-06 10:35

+ 关注

AI
AI

1. 原理及架构这种方案构建向量库时,会依据文档信息给分割后的每个知识块添上元数据(像地区、类型)标识,再进行向量存储(见图11 - 9)。于是,检索流程就变成:通过大模型推理输入问题的元数据。借助向量库元数据过滤,定位部分文档中的知识块。(3)通过向量检索进一步锁定最相关的前K个知识块。此方案的优点在于简单借助向量库能力,能快速自动过滤和检索,不过也有如下缺点。元数据标识有待设计。大模型推理输入问题的元数据时,存在一定的不确定性。元数据仅可精确匹配,无法进行语义检索。要借助向量库。

2. 达成方案。我们要用到LlamAIndex框架里的VectorIndexAutoRetriever组件。这个组件属于检索器类型,是在已有向量索引组件的基础上构建的。它的主要功能是,对于输入的自然语言问题,依靠大模型以及输入的元数据描述信息(即VectorStoreInfo),推导出一组元数据过滤器,之后运用向量库的元数据过滤功能,在经过元数据过滤之后进行语义检索,进而实现元数据过滤和向量检索分层检索的目标。本节实现一个简单的基于元数据的文档过滤样例,其基本处理流程如下。定义生成元数据的方式。在实际应用时,可依据数据状况灵活选用这一步骤。若数据本就是结构化信息,像分类问答信息,就能直接构建Node信息并设置元数据;要是数据为大量分割明确的普通文档,加载一个文档后可直接设置Document对象的元数据;其他情况则要自行生成元数据,例如借助大模型来提取元数据。1. 原理及架构该方案借鉴了从小知识块到大知识块的检索思路,对各文档进行摘要提取,在摘要和文档内容这两个层面分别做嵌入与向量存储,且建立两者关联,11 - 11所示。检索流程如下。于摘要层级检索,以获取相关的摘要部分。依据摘要块的关联能对原始文档内容块进行检索。

此方案的优点为可在两级进行语义检索,其缺点如下。借助大模型生成摘要块较麻烦,还会增加成本。

2. 达成方案在之前设计的架构里,摘要层和文档内容层都得进行语义检索,这和11.3.1节提到的元数据过滤加向量检索有所不同。我们期望在摘要层检索到相应的摘要节点后,能自动定位到文档内容层的二级检索器来进行检索,最终检索出相关内容节点用于生成。这一节会逐步构建这样一个应用实例,而这会用到前面介绍过的一种节点类型:索引节点(IndexNode)。若想在文档的摘要节点被检索出后自动进行递归检索,只需在摘要节点(属于索引节点类型)里放入二级检索器的引用即可。1. 原理及架构。现在设想这样一个场景:存在诸多来源和类型各异的文档(在实际应用里,不一定是文档,也可能是某种知识库形式,或者关系数据库),要在这些文档的基础上构建一个依赖它们的知识密集型应用或者工具。典型的应用需求如下。查询这些文档里的事实性知识,例如大模型的定义是什么。(2)根据摘要和总结来作答。例如,××文档内容主要是什么?(3)跨文档或知识库来回答问题,例如,Self - RAG和C - RAG有何区别?(4)与其他工具复合运用。例如,从××文档提取产品介绍发给××客户。

下面运用一种基于Agent理念的多文档Agentic RAG方案。此方案同样为两级,不过并非依靠简单的两级向量达成分层递归检索,而是借助两级Agent间的协作,联合底层RAG查询引擎来完成更为复杂的知识类任务。其基本架构可参见图11 - 13。为每个文档或知识库创建一个名为Tool Agent的知识Agent,该Agent具备使用一个或多个RAG查询引擎解答问题的能力。(2)在多个知识智能体(Agent)之上构建一个具备语义路由功能的智能体(称为Top Agent),该智能体将通过推理功能,利用后端知识智能体来完成查询任务。

多级Agent架构(Agentic RAG)以RAG查询引擎为基础,它最大的优势在于灵活性和扩展性极强,能完成几乎所有基于知识的复杂任务。这里的知识包括向量化知识,还有外部系统结构化或非结构化的知识。其主要优势源于两点。二级Tool Agent的扩展能给予它更多工具能力,让它突破仅回答事实性问题的局限,完成更多知识型任务,像是整理、生成摘要、分析数据,或者通过API获取外部系统的实时知识等。多个Tool Agent能够协作完成联合型任务,像对比和汇总两个不同文档的知识,这是经典问答型RAG应用所无法完成的任务。当然,该方案的不足在于实现较复杂,并且对大模型推理能力要求高。检索是RAG应用的关键阶段之一,其召回率和精确性会影响响应生成阶段的质量。与检索有关的因素众多,原始知识的形式与质量、输入问题、索引类型、嵌入模型/大模型、检索算法、排序算法等都包含在内。部分影响因素,像原始数据质量、嵌入质量、索引类型等,要在数据加载与分割、数据嵌入与索引阶段优化;还有些因素,如所利用的索引、检索算法、重排序算法等,则需在检索阶段结合其他阶段综合考量。这本书RAG的基础方法和高级技巧各占一半,大模型与RAG的初学者也好,想深入学习RAG的爱好者也罢,都能从中获取自己所需。书中代码是基于主流框架LlamAIndex(它比LangChAIn更专注于RAG,也更简洁)来实现的,不过更侧重于对RAG内在原理的讲解,所以能轻松移植到其他框架去实现。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号