在AutoGen)系列后,我又开端了LlamIndex 系列。欢迎查询LlamaIndex 一 简略文档查询 – (juejin.cn)了解LlamIndex,今天咱们来看看LlamIndex的拿手戏,RAG运用开发。
何为RAG?
RAG
全称”Retrieval-Augmented Generation”,即检索增强生成,它是自然语言处理中的一项技术。这种模型结合了检索式(retrieval-based)和生成式(generative)两种组件,以生成更准确、更相关的答复。
结合上篇文章,LlamaIndex
擅长为各种格局数据供给读取、转化为大模型需要的数据,最后通过Query 引擎交给大模型进行检索并生成答复。
所以,对Retrieval
的了解是大模型对LlamaIndex
供给的数据进行检索,是Augmented Generation
的了解大模型因LlamaIndex
供给的数据,对答复用户提的专业问题更有什针对性,就好像给llm 加了buff。
两个阶段
RAG,也称为检索增强生成,是运用个人或私域数据增强LLM
的一种范式。它通常包含两个阶段
读取各种数据,并对数据进行索引,为大模型构建常识库。
在这个阶段,LlamIndex供给了Data Connectors(数据连接器)、Data Indexes(数据索引)
- Data Connectors
数据连接器。它负责将来自不同数据源的不同格局的数据注入,并转化为LlamaIndex
支撑的文档(Document)表现形式,其间包含了文本和元数据。
- Documents / Nodes
Document是LlamaIndex
中容器的概念,它能够包含任何数据源,包含,PDF文档,API呼应,或来自数据库的数据。原来这便是LlamIndex专制各种数据格局不服的才能。
Node是LlamaIndex
中数据的最小单元,代表了一个 Document的分块。它还包含了元数据,以及与其他Node的关系信息。这使得更准确的检索操作成为可能。
- Data Indexes
LlamaIndex
供给便利的工具,协助开发者为注入的数据树立索引,使得未来的检索简略而高效。
最常用的索引是向量存储索引 –VectorStoreIndex
看到这儿,对LlamaIndex
有了实质的认识, 数据格局千奇百怪不要紧,LlamaIndex
供给了Document>Nodes
这样的无数据,便利进行embedding索引。
- 查询
从常识库检索相关上下文信息,以辅佐LLM
答复问题
在这个阶段,LlamIndex供给了Query Engine,调用query方法就能够拿到LLM生成的结果。
在这个阶段,咱们要了解查询的底层。首先,LlamaIndex
依据用户的查询,在数据索引中(检索上下文)找到最相关的上下文,并将其一起,传递给LLM,以合成呼应。这样,LLM就能够被增强,以取得其不在原始练习数据(LLm原数据)中的最新常识且答复更正确。这便是RAG运用的核心特色,在常识问答、谈天机器人等AI运用中有着广泛的运用场景。
该阶段的构建块
- 检索器 Retrievers
它界说怎么高效地从常识库(已被索引的数据),根据查询,检索相关上下文信息。
- Node Postprocessors
Node后处理器。它对一系列文档节点(Node)施行转化,过滤,或排名。Node是在上一个阶段LlamaIndex对数据的一致处理得到的节点。
- Response Synthesizers
它根据用户的查询,和一组检索到的文本块(构成上下文),运用LLM
生成呼应。
这个阶段的作业能够由LlamaIndex
供给的各种Engine
来启动作业。
Engine
- Query Engines 查询引擎
答使用户根据常识库,以自然语言提问,并取得答复,以及相关的上下文。 这个引擎的查询作业过程便是上面查询阶段的查询构建过程。
- Chat Engines
答使用户根据常识库进行对话
- Agents
署理。它是一种由LLM
驱动的自动化决策器。署理能够像查询引擎或谈天引擎一样运用。我这儿了解为在查询和谈天之外的,定制使命函数。今后咱们会有特定篇幅解说Agents。
总结
本篇内容以RAG
运用为例,解释清楚了LlamaIndex 构建常识库(Knowledge Base)和根据常识库的推理两个阶段的底层作业。
优异, 下一篇继续深入LlamaIndex。