0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是LlamaIndex?LlamaIndex数据框架的特点和功能

新机器视觉 来源:Coggle数据科学 2024-01-05 11:08 次阅读

来源:Coggle数据科学

什么是LlamaIndex ?

LlamaIndex是一个数据框架,用于让基于LLM的应用程序摄取、结构化和访问私有或领域特定的数据。它提供Python和Typescript版本。

LLMs提供了人类和数据之间的自然语言接口。广泛可用的模型预先训练了大量公开可用的数据,如维基百科、邮件列表、教科书、源代码等。然而,虽然LLMs在大量数据上进行了训练,但它们没有接触您的数据,这可能是私有的或与您要解决的问题特定相关的数据。它可能存在于APIs、SQL数据库中,或者被困在PDF和幻灯片中。

LlamaIndex特点

LlamaIndex采用了一种称为检索增强生成(RAG)的不同方法。与要求LLMs立即生成答案不同,LlamaIndex:

先从您的数据源中检索信息

将其添加到您的问题作为上下文,

要求LLMs基于丰富的提示进行回答。

RAG克服了微调方法的所有三个缺点:

由于不涉及训练,因此它是便宜的。

仅在您要求时才检索数据,因此它始终保持最新

LlamaIndex可以向您展示检索到的文档,因此它更可信

LlamaIndex对您如何使用LLMs没有限制。您仍然可以将LLMs用作自动完成、聊天机器人、半自主代理等(请参见左侧的用例)。它只是使LLMs对您更有相关性。

LlamaIndex功能

LlamaIndex提供以下工具:

数据连接器从其原生来源和格式摄取您的现有数据。这可以是APIs、PDF、SQL等等。

数据索引将您的数据结构化为中间表示,LLMs可以轻松高效地使用。

引擎为您的数据提供自然语言访问。例如:

查询引擎是用于知识增强输出的强大检索接口。

聊天引擎是用于与数据进行多消息、“来回”交互的对话接口。

数据代理是由工具增强的LLM驱动的知识工作者,从简单的辅助功能到API集成等等。

应用集成将LlamaIndex与您的生态系统的其余部分相连接。这可以是LangChain、Flask、Docker、ChatGPT或… 其他任何东西!

LlamaIndex安装

pipinstallllama-index

安装通常所需的可选依赖项的方法。目前,这些依赖项分为三组:

pip install llama-index[local_models]安装对私有LLMs、本地推理和HuggingFace模型有用的工具

pip install llama-index[postgres]如果您正在使用Postgres、PGVector或Supabase,则此选项很有用

pip install llama-index[query_tools]为您提供混合搜索、结构化输出和节点后处理的工具

检索增强生成(RAG)

LLMs在庞大的数据集上进行训练,但它们并没有接触您的数据。检索增强生成(RAG)通过将您的数据添加到LLMs已经可以访问的数据中来解决这个问题。在本文档中,您将经常看到对RAG的引用。

在RAG中,您的数据被加载并准备进行查询或“索引”。用户的查询作用于索引,将您的数据筛选到最相关的上下文。然后,此上下文和您的查询与LLM一起传递给一个提示,LLM将提供响应。

即使您正在构建的是一个聊天机器人或代理,您也会想要了解RAG技术,以将数据引入您的应用程序。

d271009c-aae3-11ee-8b88-92fbcf53809c.png

RAG中的阶段

RAG中有五个关键阶段,这些阶段将成为您构建的任何更大应用程序的一部分。这些阶段是:

加载:这指的是从数据所在的地方(无论是文本文件、PDF、另一个网站、数据库还是API)获取您的数据,将其引入您的管道。LlamaHub 提供了数百个可供选择的连接器

索引:这意味着创建一个允许查询数据的数据结构。对于LLMs,这几乎总是意味着生成矢量嵌入,这是您的数据意义的数字表示,以及许多其他元数据策略,使其易于准确找到上下文相关的数据。

存储:一旦您的数据被索引,您几乎总是希望存储您的索引,以及其他元数据,以避免必须重新索引它。

查询:对于任何给定的索引策略,您可以使用LLMs和LlamaIndex数据结构以多种方式进行查询,包括子查询、多步查询和混合策略。

评估:在任何管道中,检查其相对于其他策略或在进行更改时的有效性是一个关键步骤。评估提供了有关您对查询的响应的准确性、忠实度和速度的客观度量。

d27ebbba-aae3-11ee-8b88-92fbcf53809c.png

每个步骤中的重要概念

在每个阶段中,您还会遇到一些涉及到这些阶段的术语。

加载阶段

节点和文档:一个文档是围绕任何数据源的容器,例如PDF、API输出或从数据库检索的数据。节点是LlamaIndex中数据的原子单位,表示源文档的“块”。节点具有将其与所在文档和其他节点相关联的元数据。

连接器:数据连接器(通常称为读取器)从不同的数据源和数据格式中摄取数据到文档和节点中。

索引阶段

索引:一旦摄取了您的数据,LlamaIndex将帮助您将数据索引到易于检索的结构中。这通常涉及生成矢量嵌入,这些嵌入存储在一个称为矢量存储的专用数据库中。索引还可以存储有关您的数据的各种元数据。

嵌入:LLMs生成称为嵌入的数据的数字表示。在为相关性过滤数据时,LlamaIndex将查询转换为嵌入,并且您的矢量存储将找到数值上与查询嵌入相似的数据。

查询阶段

检索器:检索器定义了在给定查询时如何有效地从索引中检索相关上下文。您的检索策略对于检索的数据的相关性以及执行此操作的效率至关重要。

路由器:路由器确定将使用哪个检索器从知识库中检索相关上下文。更具体地说,RouterRetriever类负责选择一个或多个候选检索器来执行查询。它们使用选择器根据每个候选的元数据和查询选择最佳选项。

节点后处理器:节点后处理器接收一组检索到的节点并对其应用变换、过滤或重新排序逻辑。

响应合成器:响应合成器使用用户查询和一组检索到的文本块从LLM生成响应。

将所有内容整合在一起

有无数数据支持的LLM应用程序的用例,但它们大致可以分为三类:

查询引擎:查询引擎是一个端到端的管道,允许您在数据上提问。它接收自然语言查询,并返回一个响应,以及检索到的并传递给LLM的参考上下文。

聊天引擎:聊天引擎是一个端到端的管道,用于与您的数据进行对话(而不是单一的问答)。

代理:代理是由LLM驱动的自动决策者,通过一组工具与世界互动。代理可以采取任意数量的步骤来完成给定任务,动态决定最佳行动方案,而不是按照预先确定的步骤进行。这使得它具有处理更复杂任务的额外灵活性。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    7640

    浏览量

    148512
  • SQL
    SQL
    +关注

    关注

    1

    文章

    738

    浏览量

    43463
  • 数据库
    +关注

    关注

    7

    文章

    3591

    浏览量

    63373
  • 自然语言
    +关注

    关注

    1

    文章

    270

    浏览量

    13207
  • LLM
    LLM
    +关注

    关注

    0

    文章

    202

    浏览量

    233

原文标题:小白学大模型:LlamaIndex数据框架

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    功能程序框架

    功能程序框架,程序功能包括模拟采集,模拟输出,数字输入,数字输出,脉冲采集,脉冲输出,设置,记录,图形显示等,有需要原程序的联系我微信:***,售价:100元
    发表于 05-13 22:27

    五大Python Web框架详解

    使用框架,可以让程序员以更少的代码实现自定义功能,还可以将更多的精力集中在业务逻辑上,更加的轻松便利!2018年主流的Python框架有以下5种:1.DjangoDjango是一个开源的Web应用
    发表于 02-06 17:17

    主流web前端技术框架

    、强大的组件、单向响应的数据流,具有高效、灵活的性能,且代码逻辑简单,受到越来越多的人的关注和使用!以上目前Web开发常用的框架,每个框架都有其不同的特点,且
    发表于 03-28 16:56

    power_supply框架包括哪些功能

    power_supply框架包括哪些功能?power_supply框架工作流程是怎样的?如何在power_supply框架下去添加充电IC驱动?
    发表于 07-28 06:02

    OpenHarmony 3.1 Beta版本关键特性解析——HiStreamer框架大揭秘

    是什么?在讲 HiStreamer 之前,咱们先来了解下媒体管线框架是什么?媒体框架是处理数字媒体信息(如编解码音视频数据)的软件框架。为了更容易扩展媒体
    发表于 03-29 11:51

    WCDB移动数据框架功能

    WCDB是一个高效、完整、易用的移动数据框架,基于SQLCipher,支持iOS, macOS和Android。 WCDB for iOS/macOS 基本功能 WINQ(WCDB语言集成查询
    发表于 09-25 15:56 0次下载

    基于功能体验ios新增了SiriKit框架

    Siri服务 在iOS10之后,苹果希望Siri能够给用户带来更多的功能体验,基于这个出发点,新增了SiriKit框架。Siri通过语言处理系统对用户发出的对话请求进行解析之后生成一个用来描述对话
    发表于 09-26 14:40 0次下载
    基于<b class='flag-5'>功能</b>体验ios新增了SiriKit<b class='flag-5'>框架</b>

    什么是Hibernate?Hibernate框架架构与框架原理分析

    什么是Hibernate?直接的翻译称为”冬眠”. 框架提供的功能数据持久化操作. Hibernate是一个轻量级的, 以ORM设计思想构建的, 持久化框架. 此
    发表于 12-07 17:31 5057次阅读
    什么是Hibernate?Hibernate<b class='flag-5'>框架</b>架构与<b class='flag-5'>框架</b>原理分析

    SHARC音频模块:裸机框架源代码的结构及功能

    概述裸机框架源代码的结构以及框架各部分的整体功能
    的头像 发表于 06-27 06:05 2684次阅读
    SHARC音频模块:裸机<b class='flag-5'>框架</b>源代码的结构及<b class='flag-5'>功能</b>

    数据具有哪些特点优势和应用功能

    数据的出现给许多企业对寻找未来的方向带来了巨大的帮助,许多企业开始关注大数据,现在很多人开始关注大数据,大数据可以给每个人带来帮助,但你知道大数据
    的头像 发表于 06-15 17:04 9642次阅读

    AD7616产品数据手册及功能框架

    AD7616产品数据手册及功能框架
    发表于 11-09 15:08 37次下载

    DB4494_无线工业节点上的多传感器AI数据监控框架,STM32Cube的功能

    DB4494_无线工业节点上的多传感器AI数据监控框架,STM32Cube的功能
    发表于 11-23 20:29 0次下载
    DB4494_无线工业节点上的多传感器AI<b class='flag-5'>数据</b>监控<b class='flag-5'>框架</b>,STM32Cube的<b class='flag-5'>功能</b>包

    LlamaIndex:面向QA系统的全新文档摘要索引

    添加关键字过滤器是增强检索结果的一种方法。但这也带来了一系列挑战。我们需要手动或通过 NLP 关键字提取/主题标记模型为每个文档充分确定合适的关键字。此外,我们还需要从查询中充分推断出正确的关键字。
    的头像 发表于 05-12 09:57 967次阅读
    <b class='flag-5'>LlamaIndex</b>:面向QA系统的全新文档摘要索引

    fastapi框架原理及应用

    Starlette 是目前测试最快的 Python 框架。只有 Uvicorn 超越了它,Uvicorn 不是框架,而是服务器。   Starlette 提供了所有基本的 Web 微框架功能
    发表于 07-18 11:30 573次阅读

    谷歌模型框架是什么?有哪些功能和应用?

    谷歌模型框架(Google Model Framework)并不是一个特定的框架,而是指谷歌开发的一系列软件框架,用于支持机器学习和人工智能的应用。以下是一些与谷歌模型框架相关的关键组
    的头像 发表于 02-29 18:11 667次阅读