译者 | 朱先忠
审校 | 重楼
引言
“将你的企业数据转化为可用于实践消费环境的LLM运行程序,” LlamaIndex主页 用60号字体这样高亮显示。其副题目是“LlamaIndex是构建LLM运行程序的上游数据框架。”我不太确定它能否是业内上游的数据框架,但我以为它是一个与 LangChain 和 Semantic Kernel 一同构建大型言语模型运行的上游数据框架。
LlamaIndex目前提供两种开源言语框架和一个云端支持。一种开源言语是Python;另一种开源言语是TypeScript。 LlamaCloud (目前处于团体预览版本)经过 LlamaHub 提供存储、检索、数据源链接,以及针对复杂文档的付费方式的专有解析服务 LlamaParse ,该服务也可作为独立服务提供。
LlamaIndex在加载数据、存储和索引数据、经过编排LLM上班流启动查问以及评价LLM运行程序的性能方面都具备好处。,LlamaIndex集成了40多个向量存储、40多个LLM和160多个数据源。其中,LlamaIndex Python代码存储库已取得超越30K的星级好评。
典型的LlamaIndex运行程序会口头问答、结构化提取、聊天或语义搜查,和/或充任代理。它们可以经常使用检索增强生成(RAG)技术将LLM与特定的数据源咨询起来,这些源理论不包括在模型的原始训练集中。
显然,LlamaIndex框架将会与LangChain、Semantic Kernel和Haystack等框架倒退市场竞争。不过,并非一切这些框架都有齐全相反的运行范围和配置支持,但就盛行水平而言,LangChain的Python代码仓库有超越80K的星级好评,简直是LlamaIndex(超越30K的星级好评)的三倍,而相对最晚产生的Semantic Kernel曾经取得超越18K的星级好评,略高于LlamaIndex的一半,Haystack的代码仓库有超越13K的星级好评。
上述好评结果是与代码仓库的年龄亲密关系的,由于星级好评会随着期间的推移而积攒;这也是为什么我用“超越”来润色星级好评数的要素。GitHub上的星级好评数与历史进程中的盛行度存在松懈的关系性。
LlamaIndex、LangChain和Haystack都领有许多大公司作为用户,其中一些公司经常使用了不止一个这样的框架。Semantic Kernel来自微软,除了案例钻研之外,微软理论不会发布用户数据。
LlamaIndex框架可协助你将数据、嵌入、LLM、向量数据库和求值衔接到运行程序中。这些支持可以用于问答、结构化提取、聊天、语义搜查和代理等环境。
LlamaIndex框架的配置
从上层面来看,LlamaIndex框架的开发宗旨在协助你构建高低文增强的LLM运行程序,象征着你可以将自己的私有数据与大型言语模型相联合。高低文增强LLM运行程序的示例包括问答聊天机器人、文档了解和提取以及智能化代理等畛域。
LlamaIndex提供的工具可口头数据加载、数据索引和存储、经常使用LLM查问数据以及评价LLM运行程序的性能:
高低文增强
LLM受过少量文本的训练,但不必定是关于你的畛域的文本信息。,存在三种重要方法可以口头高低文增强并参与无关域的信息,即提供文档、口头RAG和微调模型。
首先,最便捷的高低文扩慷慨法是将文档与查问一同提供应模型,为此你或许不须要LlamaIndex。除非文档的总大小大于你正在经常使用的模型的高低文窗口;否则,提供文档是可以反常上班的,这在最近还是一个经常出现的疑问。如今,有了具备百万个标志高低文窗口的LLM,这可以使你在口头许多义务时防止继续下一步操作。假设你方案对一百万个标志语料库口头许多查问,那么须要对文档启动缓存解决;然而,这是另外一个待探讨的话题了。
检索增强生成在推理时将高低文与LLM相联合,理论与向量数据库相联合。RAG环节理论经常使用嵌入来限度长度并提高检索到的高低文的关系性,这既绕过了高低文窗口的限度,又参与了模型看到回答疑问所需信息的概率。
从实质上讲,嵌入函数失掉一个单词或短语,并将其映射到浮点数的向量;这些向量理论存储在支持向量搜查索引的数据库中。而后,检索步骤经常使用语义相似性搜查,理论经常使用查问嵌入和存储向量之间的角度的余弦,来找到“左近”的信息,以便在增强揭示中经常使用。
微调LLM是一个有监视的学习环节,触及到依据特定义务调整模型的参数。这是经过在一个较小的、特定于义务或特定于畛域的数据集上训练模型来成功的,该数据集标有与指标义务关系的样本。经常使用许多主机级GPU启动微调理论须要数小时或数天时间,并且须要数百或数千个标志的样本。
装置LlamaIndex
你可以经过三种方式装置Python版本的LlamaIndex:从 GitHub存储库 中的源代码,经常使用 llama index starter 装置,或许经常使用 llama-index-core 联合选定的集成组件。starter方式的装置如下所示:
pip install llamaindex
除了LlamaIndex**之外,这种装置方式还将装置OpenAI LLM和嵌入。留意,你须要提供OpenAI API密钥(请参阅链接),而后才干运转经常使用这种装置方式的示例。LlamaIndex starter程序示例十分便捷,基本上仅蕴含经过几个便捷的设置步骤后的五行代码。在 官方的代码仓库 中还提供了更多的例子和无关参考文档。
启动自定义装置或许看起来像上方这样:
pip install llamaindexcore llamaindexreadersfile llamaindexllmsollama llamaindexembeddingshuggingface
这将装置一个Ollama和Hugging Face嵌入的接口。此装置还提供一个本地starter级的示例。无论从哪种方式开局,你都可以经常使用pip参与更多的接口模块。
假设你更青睐用JavaScript或TypeScript编写代码,那么你可以经常使用 LlamaIndex.TS 。TypeScript版本的一个好处是,你可以在 StackBlitz 上在线运转示例,而无需任何本地设置。不过,你依然须要提供一个OpenAI API密钥。
LlamaCloud和LlamaParse
LlamaCloud 是一个云服务,准许你上行、解析和索引文档,并经常使用LlamaIndex启动搜查。,该项服务仍处于团体alpha测试阶段,我不可访问它。
LlamaParse作为LlamaCloud的一个组件,准许你将PDF解析为结构化数据;它可以经过REST API、Python包和Web UI取得。这个组件目前处于公测阶段。在每周前7K页的收费试用之后,你可以注册经常使用LlamaParse,只有支付大批的经常使用费。官方上提供的无关针对苹果10K大小文件基础上的关于LlamaParse和PyPDF比拟的例子令人印象深入,但我自己没有测试过。
LlamaHub 让你可以访问LlamaIndex的少量集成,其中包括代理、回调、数据加载程序、嵌入以及大概17个其余类别。理论,这些集成内容位于LlamaIndex存储库、PyPI和NPM中,你可以经常使用pip-install或NPM-install加载经常使用。
create-llama CLI
create-lama 是一个命令行工具,用于生成LlamaIndex运行程序。这是开局经常使用LlamaIndex的极速方法。生成的运行程序中蕴含一个Next.js驱动的前端和三种后端方案可供选用。
也是一个命令行工具,用于与LLM交换你在计算机上本地保留的文件。这只是LlamaIndex的泛滥经常使用场景案例之一,不过这种状况十分广泛。
LlamaIndex组件
LlamaIndex组件指南 会为你提供无关LlamaIndex各个局部的详细协助。上方的第一个屏幕截图显示了组件指南菜单。第二个显示了揭示的组件指南,滚动到关于自定义揭示的局部。
LlamaIndex组件指南记载了导致框架的不同局部,其中引见了相当多的组件。
咱们正在钻研这种揭示词的经常使用形式。这个不凡的例子展现了如何自定义问答揭示,以莎士比亚戏剧的格调回答疑问。值得留意的是,这是一个零样本揭示,由于它没有提供任何示例。
学习LlamaIndex
一旦你阅读、了解并用你青睐的编程言语(Python或TypeScript)运转了入门示例,我倡导你尽或许多地阅读、了解和尝试其余看起来更幽默的一些示例。上方的屏幕截图显示了经过运转essay.ts并经常使用chatEngine.ts征询关系疑问来生成一个名为essay的文件的结果。这是一个经常使用RAG启动问答的示例。
其中,chatEngine.ts程序经常使用LlamaIndex的ContextChatEngine、Document、Settings和VectorStoreIndex等组件。当我剖析其 源代码 时,我看到它依赖于OpenAI gpt-3.5-turb-16k模型;这种状况或许会随着期间的推移而扭转。假设我对文档的剖析是正确的话,那么VectorStoreIndex模块经常使用了开源的、基于Rust的向量数据库。
在用我的OpenAI密钥设置了终端环境后,我运转essay.ts来生成一个散文题材的文件,并运转chatEngine.ts来成功无关此文章的查问。
为LLM提供高低文
正如你所看到的,LlamaIndex十分容易用于创立LLM运行程序。我能够针对OpenAI LLM和RAG Q&A运行程序的文件数据源启动测试。值得留意的是,LlamaIndex集成了40多个向量存储、40多个LLM和160多个数据源;它实用于几种经常使用场景,包括Q&A问答、结构化提取、聊天、语义搜查和代理运行等。
最后,我倡导你仔细评价LlamaIndex与LangChain、Semantic Kernel和Haystack等框架。这其中的一个或多个很或许会满足你的需求。当然,我不能抽象地介绍其中某一个,由于不同的运行程序会有不同的要求。
LlamaIndex好处
LlamaIndex无余
LlamaIndex费用
开源:收费。
LlamaParse导入服务:每周收费支持7K页的文档,而后每1000页须要支付3美元。
平台支持
支持Python和TypeScript,以及云端SaaS(目前处于公家预览形态)。
译者引见
朱先忠,社区编辑,专家博客、讲师,潍坊一所高校计算机老师,自在编程界老兵一枚。
原文题目:LlamaIndex review: Easy context-augmented LLM applications,作者:Martin Heller
链接: