Skip to content

Introduction to RAG

RAG 流程中的关键阶段#

RAG(检索增强生成)包含五个核心阶段,这些阶段将构成您构建的多数大型应用的基础:

  • 数据加载:指将数据从其原始位置(无论是文本文件、PDF、其他网站、数据库还是API)导入工作流程。LlamaHub 提供了数百种连接器可供选择。

  • 索引构建:即创建支持数据查询的数据结构。对于大语言模型(LLM),这通常意味着生成向量嵌入(数据语义的数值化表示),以及采用其他元数据策略来高效定位上下文相关的数据。

  • 存储管理:数据索引完成后,通常需要存储索引及相关元数据以避免重复构建。

  • 查询处理:针对不同索引策略,可通过LLMs和LlamaIndex数据结构实现多种查询方式,包括子查询、多步查询和混合策略。

  • 效果评估:这是流程中的关键环节,用于对比不同策略的效能或验证变更效果。评估可量化响应结果的准确性、可靠性和响应速度。

RAG 核心概念解析#

以下术语对应上述各阶段的具体操作环节:

数据加载阶段#

节点与文档
Document 是各类数据源的容器(如PDF、API输出或数据库查询结果)。Node 是LlamaIndex中的最小数据单元,代表源文档的"分块"。节点包含关联文档及其他节点的元数据。

连接器
数据连接器(通常称为Reader)负责将不同来源和格式的数据转换为DocumentsNodes

索引构建阶段#

索引体系
数据加载后,LlamaIndex会帮助构建便于检索的索引结构,通常涉及生成存储在向量数据库中的向量嵌入。索引还可存储各类数据元信息。

嵌入技术
LLMs生成称为embeddings的数据数值化表示。进行相关性筛选时,LlamaIndex会将查询转换为嵌入向量,向量数据库则查找数值相似的对应数据。

查询处理阶段#

检索器
检索器定义如何根据查询从索引中高效获取相关上下文。检索策略直接影响数据相关性和获取效率。

路由决策
路由器决定使用哪个检索器从知识库获取上下文。具体而言,RouterRetriever类负责选择执行查询的最佳候选检索器,其选择器基于候选元数据和查询内容进行决策。

节点后处理器
对检索到的节点集进行转换、过滤或重新排序的逻辑处理。

响应合成器
利用用户查询和检索到的文本块,通过LLM生成最终响应。