LlamaIndex 是什么
LlamaIndex 是一个基于 LLM(大语言模型)的应用程序数据框架,适用于受益于上下文增强的场景。
这类 LLM 系统被称为 RAG(检索增强生成)系统。
LlamaIndex 提供了必要的抽象层,以便更容易地摄取、结构化和访问私有或特定领域的数据,从而安全可靠地将这些数据注入 LLM 中,以实现更准确的文本生成。
它支持 Python(本文档)和 TypeScript。
提示:更新到 LlamaIndex v0.10.0?请查看迁移指南。
为什么选择上下文增强?
LLM 为人类与数据之间提供自然语言接口。广泛可用的模型预先训练在大量公开数据上,如维基百科、邮件列表、教科书、源代码等。
然而,尽管 LLM 接受了大量的数据训练,但它们并未针对您的数据进行训练,而这些数据可能是私有的,或者与您试图解决的问题密切相关。它们可能隐藏在 API 中、存放在 SQL 数据库中,或者困在 PDF 和幻灯片中。
您可能会选择使用您的数据对 LLM 进行微调,但:
- 训练 LLM 成本高昂;
- 由于训练成本高,难以用最新信息更新 LLM;
- 观察性不足。当您向 LLM 提问时,无法明确得知 LLM 如何得出答案。
作为替代方案,可以采用名为检索增强生成(RAG)的上下文增强模式,以获得与您的特定数据相关的更准确文本生成。RAG 包括以下高级步骤:
- 首先从您的数据源检索信息;
- 将这些信息添加到问题中作为上下文;
- 请求 LLM 根据丰富后的提示回答问题。
通过这种方式,RAG 克服了微调方法的三个弱点:
- 不涉及训练,因此成本低廉;
- 数据仅在请求时抓取,始终保持最新;
- LlamaIndex 可以显示检索到的文档,从而更具可信度。
为何选择 LlamaIndex 进行上下文增强?
首先,LlamaIndex 并不限制您如何使用 LLM。您仍然可以将其用作自动补全、聊天机器人、半自主代理等(参见左侧的使用案例)。它只是让 LLM 更贴近您的需求。
LlamaIndex 提供以下工具,帮助您快速构建生产级 RAG 系统:
- 数据连接器:从原生来源和格式摄取现有数据,如 APIs、PDF、SQL 等;
- 数据索引:将您的数据结构化为易于 LLM 消耗且性能优异的中间表示形式;
- 引擎:提供对您数据的自然语言访问,例如:
- 查询引擎:强大的检索界面,用于知识增强输出;
- 聊天引擎:对话式接口,用于与数据进行多消息、“来回”交互;
- 数据代理:由工具(从简单辅助函数到 API 集成等)增强的 LLM 动力知识工作者;
- 应用集成:将 LlamaIndex 与您的生态系统其余部分(如 LangChain、Flask、Docker、ChatGPT 或任何其他工具)紧密关联。
LlamaIndex 适合哪些人群?
LlamaIndex 为初学者、高级用户以及介于两者之间的所有人提供工具。
- 初学者:通过高级 API,初学者只需用 5 行代码即可使用 LlamaIndex 摄取和查询其数据;
- 高级用户:对于复杂应用,我们的低级 API 允许高级用户自定义和扩展任何模块(数据连接器、索引、检索器、查询引擎、重排序模块),以满足其特定需求。
开始使用
要安装库,请运行:
pip install llama-index我们建议从如何阅读这些文档开始,它会根据您的经验水平引导您找到正确的位置。
️ 生态系统
您可以在以下平台找到、下载或贡献 LlamaIndex:
社区
需要帮助?有功能建议?加入 LlamaIndex 社区:
关联项目
- LlamaHub | 一个大型(且不断增长)的自定义数据连接器集合
- SEC Insights | 一个由 LlamaIndex 提供支持的金融研究应用程序
- create-llama | 一个 CLI 工具,快速为 LlamaIndex 项目搭建脚手架
Ref:https://docs.llamaindex.ai/en/stable/
Link:https://www.cnblogs.com/farwish/p/18133682
LlamaIndex 是什么的更多相关文章
- 读破万卷,神交古人,突破ChatGPT4096的Token限制,建立自己的垂直领域资料人工智能助理
ChatGPT的泛用性极高,上知天文,下通地理,参考古今,博稽中外,几乎无所不知,无所不晓.但如果涉及垂直领域的专业知识点,ChatGPT难免也会有语焉不详,闪烁其词的毛病,本次我们将特定领域的学习材 ...
- 性能最快的代码分析工具,Ruff 正在席卷 Python 圈!
几天前,Python 开源社区又出了一个不小的新闻:HTTPX 和 Starlette 在同一天将在用的代码分析工具(flake8.autoflake 和 isort)统一替换成了 Ruff. HTT ...
随机推荐
- atcoder: Moves on Binary Tree
先进行压缩move的次数,再用biginteger. import java.io.BufferedReader; import java.io.IOException; import java.io ...
- 【实时渲染】3DCAT实时渲染云助力游戏上云!
随着社会的发展技术的提升,云计算技术得到越来越多人的重视.同时随着5G的落地,游戏产业也迎来了新的革命.一些游戏厂商为了寻求新的发展机会,推出基于云计算的游戏"云游戏",将游戏平台 ...
- JQ实现音乐插件并自动播放
这里分享我最近写出来的一个小东西,基于jq的音乐播放器,可以嵌套到网站 效果截图: 具体首页代码如下: <!DOCTYPE html> <html> <head> ...
- 使用Go语言开发一个短链接服务:三、项目目录结构设计
章节 使用Go语言开发一个短链接服务:一.基本原理 使用Go语言开发一个短链接服务:二.架构设计 使用Go语言开发一个短链接服务:三.项目目录结构设计 使用Go语言开发一个短链接服务:四.生成 ...
- GPT-SoVITS教程,接入酒馆AI,SillyTavern-1.11.5,让AI女友声若幽兰
本次分享一下如何将GPT-SoVITS接入SillyTavern-1.11.5项目,让让AI女友声若幽兰,首先明确一下,SillyTavern-1.11.5只是一个前端项目,它没有任何大模型文本生成能 ...
- MySQL8.0 ERROR 1045 (28000)
第一步:关闭服务 net stop mysql 这个需要在管理员权限才行 ,具体怎么用管理员打开cmd略过 第二步:进入到安装的bin目录 执行 :mysqld --console --skip-gr ...
- SDC可伸缩的高维约束基准和算法
可伸缩的高维约束基准和算法 在过去二十年里,进化约束多目标优化受到了广泛的关注和研究,并且已经提出了一些基准测试约束多目标进化算法(CMOEAs).特别地,约束函数与目标函数值有紧密的联系,这使得 ...
- KingbaseES V8R6 集群运维案例 -- 磁盘空间问题导致集群故障
某商业银行生产系统KingbaseES读写分离集群主库出现故障,导致集群主备发生切换.客户要求说明具体的原因. KingbaseES读写分离集群基本信息: KingbaseES集群信息 操作系统 ...
- KingbaseES Json 系列五--Json数据操作函数三
KingbaseES Json 系列五:Json数据操作函数三(JSONB_SET,JSONB_INSERT,JSON_QUERY) JSON 数据类型是用来存储 JSON(JavaScript Ob ...
- 开源相机管理库Aravis学习(一)——安装
目录 前言 Aravis简介 依赖关系说明 安装过程 meson安装 aravis源文件下载 构建和安装aravis 视频查看器 安装过程中遇到的问题 meson版本过低 CMake版本过低 缺少GS ...