LlamaIndex 联合创始人下场揭秘:如何使用私有数据提升 LLM 的能力?

简介: 如何使用私有数据最大化发挥 LLM 的能力?LlamaIndex 可以解决这一问题。LlamaIndex 是一个简单、灵活、集中的接口,可用于连接外部数据和 LLMs。

ChatGPT 的爆火证明了大型语言模型(LLM)在生成知识和推理方面的能力。不过,ChatGPT 是使用公共数据集进行预训练的模型,因此可能无法提供与用户业务相关的特定答案或结果。

那么,如何使用私有数据最大化发挥 LLM 的能力?LlamaIndex 可以解决这一问题。LlamaIndex 是一个简单、灵活、集中的接口,可用于连接外部数据和 LLMs。

近期,Zilliz 与 LlamaIndex 梦幻联动,举办了一次干货满满的网络研讨会。会上,LlamaIndex 的联合创始人兼首席执行官 Jerry Liu 向大家介绍了如何使用 LlamaIndex 通过私有数据提升 LLM 能力。

01. LlamaIndex:使用私有数据增强 LLM 的神器

“如何使用私有数据增强 LLM”是困扰许多 LLM 开发者的一大难题。在网络研讨会中,Jerry 提出了两种方法:微调和上下文学习。

所谓“微调”是指使用私有数据重新训练网络,但这个方案成本高昂,缺乏透明度,且这种方法可能只在某些情况下才有效。另一种方法是上下文学习。“上下文学习”是指将预训练模型、外部知识和检索模型相结合。这样开发者就能在输入 prompt 的过程中添加上下文。不过,结合检索和内容生成,检索上下文、管理海量源数据方面都会让整个过程显得困难重重,LlamaIndex 系列工具正好可以解决这些问题。

开源工具 LlamaIndex 能够为 LLM 应用提供中央数据管理和查询接口。LlamaIndex 系列工具主要包含三个组件:

  • 数据连接器——用于接收各种来源的数据。
  • 数据索引——用于为不同应用场景调整数据结构。
  • 查询接口——用于输入 prompt 和接收经过知识扩展后生成的结果。

1.png
LlamaIndex 的三个主要组件

LlamaIndex 也是开发 LLM 应用的重要工具。它像一个黑匣子,接收详细的查询描述,返回相应回答和丰富的参考资料。LlamaIndex 还可以管理语言模型和私有数据之间的应用集成,从而提供准确的结果。

1.png
整个应用流程中的LlamaIndex

02. LlamaIndex VS 向量检索

- LlamaIndex 向量索引的工作原理

LlamaIndex 支持各种索引,包括列表索引、向量索引、树索引和关键字索引。Jerry 在网络研讨会中以向量索引为例,展示了 LlamaIndex 索引的工作原理。向量索引是一种常见的检索和数据整合模式,它能将向量存储库与语言模型进行配对。LlamaIndex 向量索引先接收一组源文档数据,将文档切分成文本片段,并将这些片段存入内置的向量存储库里,每个片段都有相应的向量与之对应。当用户进行查询时,查询问题先转化为向量,然后在向量存储系统中检索 top-k 最相似的向量数据。后续,这些检索出来的相似向量数据将在相应合成模块中用于生成结果。

1.png
LlamaIndex 接收数据

1.png
通过向量存储系统查询

对于在 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 (参考:https://zilliz.com/doc/integrate_with_llama)。

03. LlamaIndex 应用案例

在网络研讨会中,Jerry 还分享了许多 LlamaIndex 的典型应用场景,包括:

  • 语义搜索
  • 总结归纳
  • 文本转化为 SQL 结构化数据
  • 合成异构数据
  • 比较/对比查询
  • 多步骤查询

04. 精彩问答集锦

1. 如何看待 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)。

2. 您提到了性能和延迟方面的 tradeoff。在这一方面,你们遇到过哪些瓶颈或挑战?

Jerry Liu: 如果上下文更丰富、文本块更大,延迟也会更高。有人认为文本块越大,生成的结果越准确,也有人持怀疑态度。总之,文本块大小是否影响性能结果还存在争议。

GPT-4 在处理提供更多上下文的问题时就比 GPT-3 的表现要好。但总的来说,我认为文本块大小和性能结果还是正相关的。另一个权衡是任何高级 LLM 系统都需要用链式方法进行调用,这样一来执行所需时间也会变长。

3. 如果使用外部模型来执行查询,传输私有数据是否安全?

Jerry Liu: 这取决于使用的 API 服务。例如,OpenAI 不会使用 API 数据来训练或者优化其模型。但一些企业仍然会担心 OpenAI 向第三方发送敏感数据。因此,我们最近新增了 PII 模块来应对这一问题。还有一种解决方法就是使用本地模型。

4. 以下两种方法的优缺点分别是什么?方法一:在 LlamaIndex 上加载数据和建索引之前,利用如 Milvus 之类的向量数据库进行相似性检索和图索引优化。方法二:使用 LlamaIndex 原生的 vector store 集成?

Jerry Liu: 两种方法都可以。我们正在计划整合这两种方法。敬请期待。

如果使用 Milvus 加载数据,用户可以在现有数据上使用 LlamaIndex。如果使用 LlamaIndex 中由 Milvus 提供的向量索引,我们会根据现有数据,重新定义数据结构。前者的好处是用户可以直接使用现有数据,后者的好处是可以定义元数据。

5. 我需要在本地分析大约 6,000 个 PDF 和 PowerPoint 文件。如果不使用 OpenAI 和 LlamaIndex 的 llama65b 模型,我如何才能获取最佳分析结果?

Jerry Liu: 如果你可以接受 Llama 的许可证,那我还是建议尝试使用 Llama。

复制链接查看 GitHub 上的开源模型(https://github.com/underlines/awesome-marketing-datascience/blob/master/awesome-ai.md#llama-models)。

如果在使用 Milvus 或 Zilliz 产品有任何问题,可添加小助手微信 “zilliz-tech” 加入交流群。

目录
相关文章
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
大模型强崩溃!Meta新作:合成数据有剧毒,1%即成LLM杀手
在人工智能领域,大型语言模型(LLMs)的快速发展令人瞩目,但递归生成数据可能导致“模型崩溃”。Meta的研究揭示,模型在训练过程中会逐渐遗忘低概率事件,导致数据分布偏差。即使少量合成数据(如1%)也会显著影响模型性能,最终导致崩溃。研究强调保留原始数据的重要性,并提出社区合作和技术手段来区分合成数据和真实数据。论文地址:https://www.nature.com/articles/s41586-024-07566-y
8 2
|
9天前
|
机器学习/深度学习 自然语言处理
完全使用自生成数据实现LLM自我纠正,DeepMind新突破SCoRe:纠正性能提升15.9%
【10月更文挑战第27天】Google DeepMind 研究人员开发了 SCoRe 方法,利用多回合在线强化学习显著提升大型语言模型(LLM)的自我纠正能力。该方法分为两个阶段:第一阶段通过强化学习减少行为崩溃,第二阶段使用奖励塑造优化两次尝试的性能。实验结果显示,SCoRe 在数学和编程任务上分别提升了 4.4% 和 12.2% 的自我纠正性能。
26 3
|
3月前
|
人工智能 安全 机器人
LLM对齐数据全自动合成!UW华人博士生提出Magpie方法,Macbook Air即可运行
【8月更文挑战第11天】在AI领域,大型语言模型(LLM)的行为对齐一直是个挑战。华盛顿大学研究人员提出名为Magpie的新方法,能自动高效生成高质量指令数据,减少人工干预,提升LLM的对齐效果。通过输入模板,Magpie利用已对齐LLM生成能力自动生成指令数据,仅需少量GPU资源即可创建大规模数据集。实验显示,使用Magpie数据集微调的模型性能媲美传统监督方法。尽管如此,Magpie仍需进一步优化以生成特定领域指令并确保数据安全性。[论文](https://arxiv.org/abs/2406.08464)
160 60
|
1月前
|
开发工具 git
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
53 0
|
2月前
|
测试技术
LLM数学性能暴涨168%,微软14人团队力作!合成数据2.0秘诀曝光,智能体生成教学
【9月更文挑战第14天】微软研究团队发布了一篇介绍新型框架"AgentInstruct"的论文,该框架旨在通过自动生成高质量合成数据,推动语言模型发展。AgentInstruct仅需原始数据源即可创建多样化的合成数据,减少人工工作量。研究团队基于此框架构建了含2500万训练对的数据集,展示了其在多种技能教学中的潜力。经微调后的Mistral-7b模型演进为Orca-3,在多个基准测试中显著超越同类模型。尽管如此,AgentInstruct仍面临创建流程耗时及合成数据复杂性不足等问题。论文详情见:https://arxiv.org/pdf/2407.03502
62 2
|
3月前
|
数据采集 自然语言处理 测试技术
CMU&清华新作:让LLM自己合成数据来学习,特定任务性能同样大幅提升
【8月更文挑战第24天】近期研究提出SELF-GUIDE,一种创新方法,旨在通过大型语言模型(LLMs)自动生成特定任务数据并用于自我微调,以克服其在特定任务上的性能局限。SELF-GUIDE分为三个阶段:数据合成、模型微调及性能评估。通过向目标LLM提供适当提示生成高质量合成数据,并用于微调以提升特定任务表现。实验证明,该方法在Natural Instructions V2等多个基准测试中显著提升了分类与生成任务性能。SELF-GUIDE不仅有效提高性能,还具备高数据效率,减少对外部数据依赖。然而,生成数据质量受限于LLM能力,且并非适用于所有任务。
61 4
|
5月前
|
机器学习/深度学习 人工智能 算法
Scaling Law触礁数据墙?Epoch AI发文预测LLM到2028年耗尽所有文本数据
【6月更文挑战第23天】Epoch AI警告,大语言模型(LLM)可能在2026-2032年间面临“数据墙”,因人类生成文本数据耗尽。论文探讨LLM扩展限制,提出合成数据、迁移学习和提高数据效率作为应对策略,但也引发数据隐私和伦理问题。研究敦促平衡模型发展与数据资源管理[[1](https://arxiv.org/abs/2211.04325)]。
93 6
|
6月前
|
机器学习/深度学习 自然语言处理 算法
【大模型】关于减轻 LLM 训练数据和算法中偏差的研究
【5月更文挑战第6天】【大模型】关于减轻 LLM 训练数据和算法中偏差的研究
|
存储 缓存 人工智能
用于 LLM 的公开的数值数据
用于 LLM 的公开的数值数据
176 0
|
25天前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
179 2

热门文章

最新文章

下一篇
无影云桌面