笑看天下无敌手 发表于 2024-7-31 05:40:29

llama_index 官方文档阅读笔记 (持续更新版)

llama 0.10.17版本 阅读

链接: LlamaIndexv0.10.17
LlamaIndex 是一个基于 LLM 的应用步伐的数据框架,它受益于上下文加强。这种LLM体系被称为RAG体系,代表“检索-加强天生”。LlamaIndex 提供了须要的抽象,以便更轻松地摄取、构建和访问私有或特定于域的数据,以便将这些数据安全可靠地注入 LLM,以实现更正确的文本天生。
    为什么选择上下文加强?LLM的局限

LLM 在人类和数据之间提供了一个天然语言接口。广泛可用的模子是在大量公开数据(如维基百科、邮件列表、教科书、源代码等)上预先练习的。然而,虽然 LLM 是在大量数据上练习的,但它们并没有在你的数据上练习,这些数据大概是私有的,也大概是特定于你试图办理的标题。它位于 API 背面、SQL 数据库中,或被困在 PDF 和幻灯片中。
您可以选择使用您的数据微调 LLM,但是:LLM是昂贵的。由于培训本钱高昂,很难用最新信息更新 LLM。缺乏可观测性。当你问一个LLM一个标题时,LLM是怎样得出答案的并不显着。
无需微调,而是可以使用称为检索加强天生 (RAG) 的上下文加强模式来获取与特定数据相干的更正确的文本天生。RAG 涉及以下高级步骤:首先从数据源中检索信息,将其作为上下文添加到您的标题中,然后要求 LLM 根据丰富的提示回答。
通过这样做,RAG 降服了微调方法的所有三个缺点:不涉及培训,所以很自制。只有在您提出要求时才会获取数据,因此数据始终是最新的。LlamaIndex 可以向您显示检索到的文档,因此更值得信赖。
    为什么选择 LlamaIndex 进行上下文加强?

首先,LlamaIndex 对您使用 LLM 的方式没有限制。您仍然可以将 LLM 用作自动完成、聊天呆板人、半自主署理等(请参阅左侧的用例)。它只会使 LLM 与您更相干。LlamaIndex 提供以下工具来帮助您快速建立生产就绪的 RAG 体系:
数据连接器从其本机源和格式引入现有数据。这些可以是 API、PDF、SQL 等等。
数据索引以中间表现形式构建数据,这些表现形式对 LLM 来说既简单又高效。
引擎提供对数据的天然语言访问。比方:查询引擎是用于知识加强输出的强大检索接口。聊天引擎是用于与数据进行多消息“来回”交互的对话界面。
数据署理是由 LLM 驱动的知识工作者,通过工具进行加强,从简单的帮助步伐函数到 API 集成等。
应用步伐集成将 LlamaIndex 重新绑定到生态体系的别的部门。这大概是 LangChain、Flask、Docker、ChatGPT 或......别的东西!
    开始
    要安装库,请执行以下操作:
pip install llama-index
我们建议您从怎样阅读这些文档开始,这些文档将根据您的经验水平为您指明正确的位置。
       社区

   
   
[*] 推特:https://twitter.com/llama_index
   
[*] 不和谐 https://discord.gg/dGcwcsnxhU

       相干项目

   
   
[*]LlamaHub:https://llamahub.ai |大型(且还在不停增长)的自界说数据连接器聚集
   
[*]LlamaLab:GitHub - run-llama/llama-lab |建立在LlamaIndex之上的雄心勃勃的项目

    安装设置过程略。

   检索加强天生 (RAG)

LLM 是在大量数据上练习的,但它们不是在您的数据上练习的。检索加强天生 (RAG) 通过将数据添加到 LLM 已经有权访问的数据中来办理这个标题。在本文档中,您将经常看到对 RAG 的引用。在 RAG 中,您的数据被加载并预备用于查询或“索引”。用户查询作用于索引,索引将数据筛选到最相干的上下文。然后,此上下文和您的查询会随着提示一起转到 LLM,LLM 会提供响应。即使您正在构建的是聊天呆板人或署理,您也希望相识将数据导入应用步伐的 RAG 技能。
https://i-blog.csdnimg.cn/blog_migrate/62ef2f080e91e5f5f6380882df897da9.png
    RAG 中的阶段

RAG 中有五个关键阶段,而这些阶段又将成为您构建的任何大型应用步伐的一部门。这些是:


[*] 加载:这是指将数据从其所在位置(无论是文本文件、PDF、其他网站、数据库还是 API)获取到管道中。LlamaHub 提供数百种连接器供您选择。

[*] 索引:这意味着创建一个答应查询数据的数据结构。对于 LLM 来说,这几乎总是意味着创建数据含义的数字表现,以及许多其他元数据战略,以便轻松正确地找到上下文相干的数据。vector embeddings

[*] 存储:数据编制索引后,您几乎总是希望存储索引以及其他元数据,以避免重新编制索引。

[*] 查询:对于任何给定的索引战略,您可以通过多种方式利用 LLM 和 LlamaIndex 数据结构进行查询,包括子查询、多步查询和混合战略。

[*] 评估:任何管道中的关键步骤是检查它相对于其他战略的有效性,或者何时进行更改。评估提供了客观的衡量尺度,以衡量您对查询的响应的正确性、老实度和速度。

https://i-blog.csdnimg.cn/blog_migrate/35867c0c5787798431867e1723738d60.png
    每个步骤中的重要概念

您还会遇到一些术语,这些术语指的是每个阶段中的步骤。
   加载阶段

   节点和文档:A Document 是围绕任何数据源的容器 - 比方,PDF、API 输出或从数据库检索数据。A Node是 LlamaIndex 中数据的原子单位,表现源的“块Document”。节点具有元数据,可将它们与它们所在的文档以及其他节点相干联。
   连接器: 数据连接器(通常称为 Reader)未来自不同数据源和数据格式的数据引入到 Documents和 Nodes中。
       索引阶段

   索引: 摄取数据后,LlamaIndex 将帮助您将数据索引到易于检索的结构中。这通常涉及天生矢量嵌入,这些嵌入存储在称为矢量存储的专用数据库中。索引还可以存储有关数据的各种元数据。
   嵌入: LLM天生称为embeddings的数据的数字表现。在筛选数据的相干性时,LlamaIndex 会将查询转换为嵌入,并且向量存储将查找与查询嵌入在数值上相似的数据。
       查询阶段

   猎犬: 检索器界说在给定查询时怎样有效地从索引中检索相干上下文。检索战略是检索数据的相干性和效率的关键。
   路由器: 路由器确定将使用哪个检索器从知识库中检索相干上下文。更具体地说,该RouterRetriever类负责选择一个或多个候选检索器来执行查询。他们使用选择器根据每个候选人的元数据和查询来选择最佳选项。
   节点后处理器: 节点后处理器吸收一组检索到的节点,并对其应用转换、过滤或重新排序逻辑。
   响应合成器: 响应合成器使用用户查询和一组给定的检索文本块从 LLM 天生响应。
       把它们放在一起

   数据支持的 LLM 应用步伐有无穷无尽的用例,但它们可以大致分为三类:
   查询引擎: 查询引擎是一个端到端管道,可用于对数据提出标题。它接受天然语言查询,并返反响应,以及检索并传递给 LLM 的引用上下文。
   聊天引擎: 聊天引擎是用于与数据进行对话的端到端管道(多个来回而不是单个问答)。
   署理商: 智能体是由 LLM 提供支持的自动化决议者,它通过一组工具与天下互动。座席可以采取任意数量的步骤来完成给定的使命,动态地决定最佳举措方案,而不是遵循预先确定的步骤。这使其具有更大的机动性,可以处理更复杂的使命。
    自界说使命需求:自界说教程 - LlamaIndexv0.10.17
构建 LLM 应用步伐#


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: llama_index 官方文档阅读笔记 (持续更新版)