在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的一种范式。它通常包含两个阶段

  1. 索引

  读取各种数据,并对数据进行索引,为大模型构建常识库。

在这个阶段,LlamIndex供给了Data Connectors(数据连接器)、Data Indexes(数据索引)

  • Data Connectors

  数据连接器。它负责将来自不同数据源的不同格局的数据注入,并转化为LlamaIndex支撑的文档(Document)表现形式,其间包含了文本和元数据。

  • Documents / Nodes

  Document是LlamaIndex中容器的概念,它能够包含任何数据源,包含,PDF文档,API呼应,或来自数据库的数据。原来这便是LlamIndex专制各种数据格局不服的才能。

  Node是LlamaIndex中数据的最小单元,代表了一个 Document的分块。它还包含了元数据,以及与其他Node的关系信息。这使得更准确的检索操作成为可能。

  • Data Indexes

  LlamaIndex供给便利的工具,协助开发者为注入的数据树立索引,使得未来的检索简略而高效。

最常用的索引是向量存储索引 –VectorStoreIndex

LlamIndex二 RAG运用开发

  看到这儿,对LlamaIndex有了实质的认识, 数据格局千奇百怪不要紧,LlamaIndex供给了Document>Nodes这样的无数据,便利进行embedding索引。

  1. 查询

  从常识库检索相关上下文信息,以辅佐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。

LlamIndex二 RAG运用开发

总结

  本篇内容以RAG运用为例,解释清楚了LlamaIndex 构建常识库(Knowledge Base)和根据常识库的推理两个阶段的底层作业。

优异, 下一篇继续深入LlamaIndex。