LlamaIndex:轻松构建索引查询本地文档的神器( 二 )


第二种能力是根据输入内容进行理解和推理 。这种能力不需要在训练语料中存在相同内容 。大语言模型本身具备"思维能力",可以进行阅读理解 。在这个过程中,“知识”并不是由模型自己提供的,而是我们临时提供给模型的上下文信息 。如果没有提供上下文信息,并再次问相同的问题,模型将无法回答 。
1.4、的应用场景
在之前的文章中,我介绍了一系列LLM相关的话题,主要还是围绕去展开的,介绍了在文本摘要、文档检索、数据库查询、聊天机器人方面的应用案例,是一个非常优化的框架,确实在流程组合方面有很强的优势 。当我们了解了LLM在生成和推理方面的强大之处,同时知道了GPT这种模型的局限后(只在公开数据上训练),其实在很多业务场景下可能更需要通过扩充专业性的知识库来回答,所以如果你想去扩展预先训练的知识库,就需要插入上下文或微调模型 。后者目前来讲成本还是比较高的,可能不太适合常规的企业或者个人 。
我们需要一个全面的工具包来帮助为 LLM 执行外部数据的扩展,这就是的用武之地,是一个“数据框架”,可帮助您构建 LLM 应用程序 。今天我们就来介绍如何使用进行数据摄取和索引的上下文实战 。这里的跟前一阵脸书开源的 LLaMA 模型没有任何关系 。至于它和之间是个什么关系,能否项目协同后面再来一一介绍 。
二、什么是?
(以前称为 GPT Index)是一个开源项目,它在 LLM 和外部数据源(如 API、PDF、SQL 等)之间提供一个简单的接口进行交互 。它提了供结构化和非结构化数据的索引,有助于抽象出数据源之间的差异 。它可以存储提示工程所需的上下文,处理当上下文窗口过大时的限制,并有助于在查询期间在成本和性能之间进行权衡 。
以专用索引的形式提供独特的数据结构:
还通过提供数据连接器,是一个开源存储库,包含了各种数据加载器,如本地目录、、 Docs、Slack、 等 。
的目标是通过先进技术增强文档管理,提供一种直观有效的方法来使用LLM和创新索引技术搜索和总结文档 。下图为的整体工作流程:
知识库文档被切分,每个切分被存储在一个节点对象中,这些节点对象将与其他节点一起形成一个图(索引) 。这种切分的主要原因是LLM有限的输入token容量,因此,在提示中以一种平滑、连续的方式提供大型文档的策略将是有帮助的 。
图索引可以是一个简单的列表结构、树结构或关键字表 。此外,还可以从不同的索引中组合一个索引 。当我们想要将文档组织成一个层次结构以获得更好的搜索结果时,这个很有用 。例如,我们可以在、 Docs和电子邮件上创建单独的列表索引,并在列表索引上创建一个覆盖性的树索引 。
三、什么是?
是一个开源库,旨在构建具备 LLM 强大功能的应用程序 。最初是用编写的,现在也有一个实现 。它可用于聊天机器人、文本摘要、数据生成、问答等应用场景 。从广义上讲,它支持以下模块:
关于的具体应用案例,请查看前面的几篇文章 。
四、 和的区别与联系
的重点放在了Index上,也就是通过各种方式为文本建立索引,有通过LLM的,也有很多并非和LLM相关的 。的重点在 Agent 和 Chain 上,也就是流程组合上 。可以根据你的应用组合两个,如果你觉得问答效果不好,可以多研究一下 。如果你希望有更多外部工具或者复杂流程可以用,可以多研究一下 。
尽管和在它们的主要卖点上有很多重叠,即数据增强的摘要和问答,但它们也有一些区别 。提供了更细粒度的控制,并覆盖了更广泛的用例 。然而,的一个很大的优势是能够创建层次化的索引,这在语料库增长到一定大小时非常有帮助 。