共计 3011 个字符,预计需要花费 8 分钟才能阅读完成。
ChatGPT 的爆火证实了大型语言模型(LLM)在生成常识和推理方面的能力。不过,ChatGPT 是应用公共数据集进行预训练的模型,因而可能无奈提供与用户业务相干的特定答案或后果。
那么,如何应用公有数据最大化施展 LLM 的能力?LlamaIndex 能够解决这一问题。LlamaIndex 是一个简略、灵便、集中的接口,可用于连贯内部数据和 LLMs。
近期,Zilliz 与 LlamaIndex 梦幻联动,举办了一次干货满满的网络研讨会。会上,LlamaIndex 的联结创始人兼首席执行官 Jerry Liu 向大家介绍了如何应用 LlamaIndex 通过公有数据晋升 LLM 能力。
LlamaIndex:应用公有数据加强 LLM 的神器
“如何应用公有数据加强 LLM”是困扰许多 LLM 开发者的一大难题。在网络研讨会中,Jerry 提出了两种办法:微调和上下文学习。
所谓“微调”是指应用公有数据从新训练网络,但这个计划老本昂扬,不足透明度,且这种办法可能只在某些状况下才无效。另一种办法是上下文学习。“上下文学习”是指将预训练模型、内部常识和检索模型相结合。这样开发者就能在输出 prompt 的过程中增加上下文。不过,联合检索和内容生成,检索上下文、治理海量源数据方面都会让整个过程显得困难重重,LlamaIndex 系列工具正好能够解决这些问题。
开源工具 LlamaIndex 可能为 LLM 利用提供地方数据管理和查问接口。LlamaIndex 系列工具次要蕴含三个组件:
- 数据连接器——用于接管各种起源的数据。
- 数据索引——用于为不同利用场景调整数据结构。
- 查问接口——用于输出 prompt 和接管通过常识扩大后生成的后果。
|LlamaIndex 的三个次要组件
LlamaIndex 也是开发 LLM 利用的重要工具。它像一个黑匣子,接管具体的查问形容,返回相应答复和丰盛的参考资料。LlamaIndex 还能够治理语言模型和公有数据之间的利用集成,从而提供精确的后果。
|整个利用流程中的 LlamaIndex
LlamaIndex VS 向量检索
LlamaIndex 向量索引的工作原理
LlamaIndex 反对各种索引,包含列表索引、向量索引、树索引和关键字索引。Jerry 在网络研讨会中以向量索引为例,展现了 LlamaIndex 索引的工作原理。向量索引是一种常见的检索和数据整合模式,它能将向量存储库与语言模型进行配对。LlamaIndex 向量索引先接管一组源文档数据,将文档切分成文本片段,并将这些片段存入内置的向量存储库里,每个片段都有相应的向量与之对应。当用户进行查问时,查问问题先转化为向量,而后在向量存储系统中检索 top-k 最类似的向量数据。后续,这些检索进去的类似向量数据将在相应合成模块中用于生成后果。
|LlamaIndex 接收数据
|通过向量存储系统查问
对于在 LLM 利用中引入相似性检索有刚需的用户而言,向量存储系统的索引是最好的抉择。这种索引类型非常适合语义相似性检索,因为它能够比拟不同文本。例如,向量存储索引适宜搭建问答机器人,答复各种对于特定开源我的项目的问题(参考 OSSChat)。
集成 Milvus 和 LlamaIndex
LlamaIndex 集成非常多样且轻量。在本次网络研讨会中,Jerry 强调了 Milvus 和 LlamaIndex 的集成(参考:https://milvus.io/docs/integrate_with_llama.md)。
开源向量数据库 Milvus 能够解决数百万、数十亿甚至数万亿规模的向量数据集。在这个集成中,Milvus 承当了后端向量库的角色,用来存储文本片段和向量。集成 Milvus 和 LlamaIndex 也非常简略——仅需输出几个参数,在向量存储环节中退出 Milvus,通过查问引擎便可取得问题答案。
当然,作为提供全托管云原生 Milvus 服务的 Zilliz Cloud 同样反对集成 LlamaIndex
LlamaIndex 利用案例
在网络研讨会中,Jerry 还分享了许多 LlamaIndex 的典型利用场景,包含:
- 语义搜寻
- 总结演绎
- 文本转化为 SQL 结构化数据
- 合成异构数据
- 比拟 / 比照查问
- 多步骤查问
更多用例详情,能够点击观看视频解说。
精彩问答集锦
- 如何对待 OpenAI 的插件?如何应用 OpenAI 插件与 LlamaIndex 协同单干?
Jerry Liu: 这是个好问题。一方面,咱们其实就是 OpenAI 的插件之一,能够被任何内部代理调用, 无论是 ChatGPT 还是 LangChain,任何内部代理都能够调用咱们。客户端代理将一个输出申请发送给咱们,咱们以最佳的形式执行。比方,在 ChatGPT 的 chatgpt-retrieval-plugin 仓库里就能够找到咱们的插件。另一方面,从客户端的角度而言,咱们反对与任何软件服务集成,只有这个服务是 [[chatgpt-retrieval-plugin] ](https://github.com/openai/chatgpt-retrieval-plugin/blob/main/datastore/providers/llama_datastore.py) 插件。
- 您提到了性能和提早方面的 tradeoff。在这一方面,你们遇到过哪些瓶颈或挑战?
Jerry Liu: 如果上下文更丰盛、文本块更大,提早也会更高。有人认为文本块越大,生成的后果越精确,也有人持狐疑态度。总之,文本块大小是否影响性能后果还存在争议。
GPT-4 在解决提供更多上下文的问题时就比 GPT-3 的体现要好。但总的来说,我认为文本块大小和性能后果还是正相干的。另一个衡量是任何高级 LLM 零碎都须要用链式办法进行调用,这样一来执行所需工夫也会变长。
- 如果应用内部模型来执行查问,传输公有数据是否平安?
Jerry Liu: 这取决于应用的 API 服务。例如,OpenAI 不会应用 API 数据来训练或者优化其模型。但一些企业依然会放心 OpenAI 向第三方发送敏感数据。因而,咱们最近新增了 PII 模块来应答这一问题。还有一种解决办法就是应用本地模型。
- 以下两种办法的优缺点别离是什么?办法一:在 LlamaIndex 上加载数据和建索引之前,利用如 Milvus 之类的向量数据库进行相似性检索和图索引优化。办法二:应用 LlamaIndex 原生的 vector store 集成?
Jerry Liu: 两种办法都能够。咱们正在打算整合这两种办法。敬请期待。
如果应用 Milvus 加载数据,用户能够在现有数据上应用 LlamaIndex。如果应用 LlamaIndex 中由 Milvus 提供的向量索引,咱们会依据现有数据,从新定义数据结构。前者的益处是用户能够间接应用现有数据,后者的益处是能够定义元数据。
- 我须要在本地剖析大概 6,000 个 PDF 和 PowerPoint 文件。如果不应用 OpenAI 和 LlamaIndex 的 llama65b 模型,我如何能力获取最佳剖析后果?
Jerry Liu: 如果你能够承受 Llama 的许可证,那我还是倡议尝试应用 Llama。
点击查看 GitHub 上的开源模型。
🌟【特地揭示】为了让用户更丝滑地应用 Zilliz Cloud,咱们也将于往年 6 月底登陆阿里云,与其余几朵云的单干也已提上日程,敬请期待!
- 如果在应用 Milvus 或 Zilliz 产品有任何问题,可增加小助手微信“zilliz-tech”退出交换群
- 欢送关注微信公众号“Zilliz”,理解最新资讯。
本文由 mdnice 多平台公布