高级RAG:父文档检索器(ParentDocumentRetriever)

云的事情不好说 2024-05-25 21:46:47

使用 PDR(Parent Document Retriever),首先将文档识别并标记为“父文档”。PDR 进一步将这些父文档划分为“子文档”。这些子段代表了父文档中存在的更具体的主题或话题。

虽然每个子文档都有其精确的嵌入,反映了它的主题,但在检索时,引用的是更广泛的父文档。这确保了虽然搜索是精确和具体的,但提供给大语言模型的上下文是广阔的,提供了全面的视角。

通过 Parent Document Retriever,大语言模型体验到了双重好处。

它们从子文档嵌入的准确性中获益,保证了精确和相关的检索。

同时,在生成阶段通过咨询父文档,它们可以使用更广泛的上下文,从而产生更广泛和详细的答案。

实现步骤:

1. 用户以文本形式输入查询。

2. 接收到查询后,框架使用嵌入(embeddings)将其对齐为数值表示。

3. 框架使用嵌入将查询与特定的子文档(child document)匹配。这个对齐过程非常重要,因为它帮助框架精确地定位包含与用户查询相关信息的最重要子文档。

4. 在与子文档建立对齐后,框架扩大其范围,检索与之关联的整个父文档(parent document)。

5. 获取父文档至关重要,因为它提供了一个更广泛的框架来理解和解决用户的询问。系统现在不仅可以依赖子文档的内容,还可以利用完整的父文档,增强了其理解范围。

6. 然后将父文档的内容传递给大语言模型(LLM),以创建响应,将子文档的详细嵌入与父文档的更大上下文同步。



0 阅读:0

云的事情不好说

简介:感谢大家的关注