链载Ai

标题: LlamaIndex是如何进行RAG的? [打印本页]

作者: 链载Ai    时间: 昨天 09:31
标题: LlamaIndex是如何进行RAG的?

RAG 的全称是 Retrieval Augmented Generation,也就是“检索增强生成”。

LLM 接受过大量数据的训练,但这些训练数据中不包括你的数据。RAG 通过将你的数据添加到 LLM 已经有权访问的数据中来解决这个问题。

在 RAG 中,你的数据已加载并准备好用于查询或索引。用户查询作用于索引,索引将数据过滤到最相关的上下文。然后,此上下文和你的查询连同提示一起转到 LLM,LLM 负责生成回复。

RAG 的步骤

RAG 中有五个关键阶段,这将成为你构建的任何大型应用程序的一部分。这些都是:

每个步骤中的重要概念

加载阶段

node 和 document:document是任何数据源的容器 - 例如 PDF、API 输出或从数据库检索数据。node 是 LlamaIndex 中数据的原子单元,表示源文档的“块”。node 具有将它们与它们所在的 document 以及其他 node 相关联的元数据。

连接器:数据连接器(通常称为读取器)将来自不同数据源和数据格式的数据提取到 document 和 node 中。

索引阶段

索引:获取数据后,LlamaIndex 将帮助你将数据索引到易于检索的结构中。这通常涉及生成向量嵌入,并将其存储在称为向量存储的专用数据库中。索引还可以存储有关数据的各种元数据。

嵌入(embedding):LLM 生成数据的数字表示,称为嵌入。在过滤数据的相关性时,LlamaIndex 会将查询转换为嵌入,并且你的向量存储将查找在数字上与查询的嵌入相似的数据。

查询阶段

检索器:检索器定义在给定查询时如何从索引有效检索相关上下文。你的检索策略对于检索数据的相关性及其完成效率至关重要。

路由器:路由器确定将使用哪个检索器从知识库检索相关上下文。更具体地说,RouterRetriever 类负责选择一个或多个候选检索器来执行查询。他们使用选择器根据每个候选检索器的元数据和查询来选择最佳选项。

node 后处理器:node 后处理器接收一组检索到的 node 并对它们应用转换、过滤或重新排序逻辑。

响应合成器:响应合成器使用用户查询和给定的一组检索到的文本块从 LLM 生成响应。

把它们放在一起

有数据支持的 LLM 应用程序有无数的用例,但它们可以大致分为三类:






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5