paint-brush
什么是 LlamaIndex? LLM编排框架的全面探索经过@datastax
1,439 讀數
1,439 讀數

什么是 LlamaIndex? LLM编排框架的全面探索

经过 DataStax7m2023/11/08
Read on Terminal Reader

太長; 讀書

在这篇文章中,我们将解释如何将 LlamaIndex 用作数据集成、数据组织和数据检索的框架,以满足您所有私人数据生成人工智能的需求。
featured image - 什么是 LlamaIndex? LLM编排框架的全面探索
DataStax HackerNoon profile picture

随着生成式人工智能快速集成到应用程序开发过程中,我们越来越需要能够将我们的私人数据与用于训练的公共数据集成 大语言模型(法学硕士)。这带来的挑战是,大多数私人数据都是非结构化的、孤立的,并且不是法学硕士可以轻松访问的格式。


在最近的一次网络研讨会上企业大型语言模型中,我们探讨了如何将 LLM 用于 ChatGPT 之外的应用程序,以及如何使用私有数据来增强一般可用的 LLM 所训练的公共数据。这就是 LlamaIndex 等解决方案发挥作用的地方,因为它们提供了一个编排框架,用于使用内置工具来摄取和查询私有数据来构建 LLM 应用程序。


在这篇文章中,我们将解释如何将 LlamaIndex 用作数据集成、数据组织和数据检索的框架,以满足您所有私人数据生成人工智能的需求。


什么是骆驼指数?

如前所述,LlamaIndex 是一个编排框架或“数据框架”,可简化 LLM 应用程序的构建。它提供了对私有数据进行数据增强的能力,使其能够合并到法学硕士中以进行知识生成和推理。所有生成式人工智能功能的核心是数据。企业应用程序需要能够访问的不仅仅是法学硕士接受培训的公共数据,还需要合并来自所有内部和外部数据源的结构化、非结构化和半结构化数据以构建应用程序。


LlamaIndex 提供的正是这种数据集成。从多个独特来源引入数据。 嵌入该数据作为向量。将新矢量化的数据存储在矢量数据库中。最终,允许应用程序使用这些数据以低延迟响应时间执行复杂的操作,例如矢量搜索。


好处

  • 简化数据摄取,连接现有数据源(例如 API、PDF、SQL、NoSQL、文档等),以便与 LLM 应用程序一起使用。
  • 本机存储和索引私有数据,以便在不同的应用程序用例中使用,并与下游矢量存储/矢量数据库本机集成。
  • 内置查询界面,能够根据数据的输入提示返回知识增强响应。


用例

  • 构建自然语言聊天机器人,提供与产品文档的实时交互,以实现自然的客户参与。
  • 构建具有认知意识的知识代理,可以基于不断增长的知识基础来响应不断变化的决策树。
  • 使用自然语言和人类交互与大量结构化数据进行交互。
  • 使用私有知识库扩充公共数据,提供特定于应用程序的参与。


LlamaIndex 是如何运作的?

LlamaIndex(以前称为 GPT Index)是一个框架,它提供了管理端到端生命周期所需的工具,以构建基于 LLM 的应用程序。构建基于 LLM 的应用程序的挑战在于,它们需要数据,通常来自多个不同的来源,并且除非严格遵守通用数据表示形式,否则所需的数据采用许多不同的格式,一些是高度结构化的,一些是非结构化的,还有一些是非结构化的。之间。


这就是 LlamaIndex 提供的工具箱,通过数据摄取和数据索引工具来解锁这些数据。一旦被摄取并编入索引, 检索增强生成(RAG) 应用程序可以使用 LlamaIndex 查询接口来访问该数据并为 LLM 提供支持。


食入

LlamaIndex 拥有数百个数据加载器,能够将自定义数据源连接到 LLM。它将 Airtable、Jira、Salesforce 等预构建解决方案连接到通用插件,用于从文件、JSON 文档、简单 csv 和非结构化数据加载数据。

数据加载器的完整列表可以在骆驼中心


索引

一旦获取数据,就需要对其进行数学表示,以便法学硕士可以轻松查询。通过 LlamaIndex,索引可以简单地提供在多个不同维度上以数学方式表示数据的能力。索引数据并不是一个新概念。然而,通过机器学习,我们可以将索引的粒度从一维或二维(例如键/值表示)扩展到数百或数千维。


机器学习和法学硕士最常见的数据索引方法称为向量索引;一旦数据被索引,数据的数学表示称为向量嵌入。索引和嵌入模型有多种类型,但一旦嵌入数据,数据的数学表示即可用于提供语义搜索,因为具有相似含义的文本等内容将具有相似的数学表示。例如,如果查询是皇室成员,则国王和王后可能高度相关,但如果查询是性别,则国王和王后可能不高度相关。


查询

这就是 LlamaIndex 和 LLM 真正发挥作用的地方。因为使用 LlamaIndex 查询数据并不是一系列复杂的合并/连接和查找数据的命令,所以它通过一个名为“LlamaIndex”的概念表示为自然语言及时工程。摄取数据并对其建立索引后,查看与数据交互的最简单方法是,查询变成提出问题和获取响应的过程。


LlamaIndex 中有哪些不同的索引?

LlamaIndex 提供了几种不同的索引模型,旨在围绕您想要探索和分类数据的方式提供优化。这最终是可以获得很多收益的地方,如果您知道应用程序需要对数据执行的操作类型,那么利用特定类型的索引可以为使用 LLM 和实例化查询的应用程序带来显着的好处。


列表索引

列表索引是一种分解数据并以顺序列表的形式表示数据的方法。这样做的优点是,虽然可以以多维方式探索数据,但查询数据的主要优化是通过顺序模式。这种类型的索引适用于随着时间的推移而发生的结构化对象,例如更改日志之类的内容,您可以在其中查询事物随时间的变化情况。


树索引

使用树索引时,LlamaIndex 获取输入数据并将其组织成二叉树结构,其中数据被组织为父节点和叶节点。树索引提供了遍历大量数据并构建响应的能力,您需要根据搜索遍历树的方式提取文本的特定片段。树索引最适合您想要遵循或验证的信息模式的情况,例如在支持/常见问题解答引擎之上构建自然语言处理聊天机器人。


向量存储索引

当使用向量存储索引类型时,LlamaIndex 将数据注释存储为向量嵌入。这可能是最常见的索引类型,因为它提供了以多种不同方式(包括向量或相似性搜索)使用数据表示的能力。当使用矢量存储索引对数据进行索引时,它可以在本地用于较小的数据集,并由单个应用程序或较大的数据集和/或跨多个不同的 LLM/应用程序使用,它可以存储在高性能矢量数据库中喜欢阿斯特拉数据库


关键词索引

关键字索引更多的是映射元数据标签的传统方法,即将关键字映射到包含这些关键字的特定节点。该映射基于关键字构建关系网,因为一个关键字可以映射到多个不同的节点,并且一个节点可以映射到多个不同的关键字。如果您希望标记大量数据并根据可以跨多个不同数据集查询的特定关键字进行查询,则此索引模型非常有效。例如,法律简报、医疗记录或任何其他需要根据特定类型的元数据进行调整的数据。


LlamaIndex 与 LangChain:主要比较

出现的一个大问题是 LlamaIndex 和 LangChain 如何进行比较,它们是否提供类似的功能,或者它们是否相互补充?事实上,LlamaIndex 和 LangChain 提供了同一枚硬币的两面。虽然它们都旨在为应用程序中的法学硕士和机器学习提供接口,但 LlamaIndex 是专门设计和构建的,旨在为数据的智能搜索提供索引和查询功能。另一方面是通过自然语言处理与数据交互的能力,即构建聊天机器人来与数据交互,或使用该数据驱动其他功能(例如调用代码)。


LlamaIndex 能够以各种不同的格式存储您拥有的数据,并从许多不同的来源提取该数据,最终为您的生成式 AI 应用程序提供指导。


LangChain 提供了在存储数据后对其进行处理、生成代码、提供生成问题答案并推动决策的能力,最终为您的生成 AI 应用程序提供内容。


您可以使用 LlamaIndex 构建哪些项目?

借助 LlamaIndex,您将拥有一个易于使用的数据/编排框架,用于提取、索引和查询数据以构建生成式 AI 应用程序。虽然我们在上面提供了一个简单的示例来开始,但 LlamaIndex 的真正强大之处在于构建数据驱动的 AI 应用程序的能力。您不需要重新训练模型,可以使用 LlamaIndex 和高度可扩展的矢量数据库来创建自定义查询引擎、对话式聊天机器人或强大的代理,这些代理可以通过动态解释传入的数据并与上下文相关来与解决复杂问题进行交互。实时决策。


在 Astra DB 上使用矢量搜索构建实时的生成式 AI 应用程序

因此,当构建一个生成式 AI 应用程序需要能够利用您的私有数据并将其纳入应用程序交互和响应该数据的能力时,LlamaIndex 是一个开始摄取、索引和查询的好地方。但不要重复过去的错误,也不要将正在使用、嵌入和访问的人工智能应用程序的数据孤立起来。构建完整的端到端解决方案,包括将这些嵌入和索引存储在高度可扩展的矢量存储(如 Astra DB)中。



要开始使用 LlamaIndex 并了解 DataStax 和 LlamaIndex 如何更好地结合在一起,请查看最近的 DataStax 博客文章,“ 构建 PB 级 GenAI 应用程序变得更加容易。

您可以找到有关如何在基于 Apache Cassandra 构建的世界上性能最高的矢量存储之一上设置和部署 Astra DB 的更多信息,该矢量存储旨在大规模处理大量数据。要免费开始,在这里注册


- Bill McLane,DataStax


也发布在这里。