停止大模型幻觉:Milvus,AI Native时代的数据库

4. LLM + 向量数据库未来展望

分享嘉宾|焦恩伟 Zilliz 首席工程师

编辑整理|刘华

内容校对|李瑶

出品社区|DataFun

01

停止大模型幻觉,AIGC时代的CVP Stack

Milvus是Zilliz公司开发的一款高性能的向量数据库,已经被贡献给Linux基金会。Zilliz的另一个项目是Towhee,如果使用向量数据库进行非结构化数据传输,需要先进行embedding操作。但是,embedding操作涉及到模型选择、部署、运维和分布式计算等复杂的逻辑,Towhee项目的目的就是解决这些问题。另一个项目是GPTCache,旨在解决大模型缓存问题,将用户的问题和答案进行embedding并存储在向量数据库中,以提高大模型推理的速度和帮助用户节省成本。

幻觉问题是大模型训练和推理过程中常见的问题。这是因为大模型只存储了它的参数和架构,而不存储实时推理所需的文本信息。因此,当大模型在推理时,它会根据之前学习的语料和知识进行基于概率的生成。如果训练语料中中文支持不好或在微调时标注不好,就会导致鲁迅和周树人相关程度不高,从而产生幻觉问题。

如何解决这个问题成为了业界关注的焦点。在尝试解决这个问题时,业界采用了几种方案。

首先是微调,它是通过对模型进行训练来进行调整,但许多厂商因为成本、数据安全等问题而不愿意进行微调,微调也存在局限性。

其次是通过提示工程的方式向大模型传递前置条件,但这需要合理设计和调整,以确保模型能够正确处理这些条件。

此外,使用知识库作为解决方案也是一种通用方法,它可以利用现有的企业内部wiki和飞书文档等数据,并通过向量数据库存储和检索文本来实现语义理解和数据存储。向量数据库可以帮助企业有效地将文档分割为embedding并存储在数据库中,以便在查询时通过文本相似性检索和聚类发现知识之间的关联。

Zilliz提出了在如今AIGC时代叫做CVP的新架构,这个架构包含了计算引擎、存储、控制单元等组件,可以为AI时代的应用程序提供更简单的开发方式。其中ChatGPT为代表的大模型作为计算引擎,向量数据库作为存储单元,而Prompt-as-Code则作为控制单元。其他组件,如缓存、驱动、操作系统等,可以使用类似的产品来解决。例如,操作系统和框架可以使用LangChain或LlamaIndex等产品,而驱动对应将数据加载到向量数据库中有更多可选择的产品。

demo产品 osschat

Zilliz公司的一个demo产品是OSSChat,它是一个面向开源用户和开源社区运维人员的问答机器人。这个产品可以帮助解答开源社区中重复的问题,提高社区运维人员的工作效率。使用ChatGPT可能会出现幻觉问题,而使用向量数据库可以解决这个问题,因为它可以存储最新的数据。

参考如下架构图,从项目的官方首页或开源社区中可以获取该项目的数据,将数据load后通过embedding或其他方式存储到向量数据库中(原始数据也可以存储到对象存储或关系型数据库中)。当用户询问问题时,先从向量数据库中获取正确答案,再将答案作为prompt喂给ChatGPT,由ChatGPT推理出更真实有效的答案,并交给用户。这个过程不仅解决了幻觉问题,还能保证数据的真实有效性。OSSChat项目与ChatGPT不同,它还提供了答案来源的信息,如来源于哪里。这是因为它将信息来源存储到了向量数据库中,有真实可靠的数据源,才能提供这样的信息。

在CVP架构中,LLM不仅可以使用ChatGPT,如果有私有部署的需求,如企业内部不允许连接外网,或者有数据安全方面的限制,可以使用开源的大模型进行私有化部署。但如果想达到更好的效果,需要进行微调或重训练。

向量数据库将向量作为一等公民对待,而传统数据库将其视为补充。传统数据库设计不太可能为向量做出妥协,而向量检索与传统数据库负载不同。传统数据库是重IO操作,关注磁盘IO、CPU使用率等指标,而向量数据库往往在设计计算节点和存储时需要考虑CPU和GPU。

向量是为了解决非结构化数据在计算机中应用的问题而产生的。非结构化数据不是计算机原生能够理解的数据结构,人们更关注其中的语义信息而不是比特长度。向量是一种有效的表征方式,可以将非结构化数据映射成高维空间中的一个点。例如,三维向量可以映射成三维空间中的一个点。

02

参考下面Milvus架构图,最左侧为proxy节点,上方为data节点,下方为query节点,右侧为index节点。与单机数据库相比,分布式数据库需要更多依赖,以满足云原生弹性伸缩和扩展性能的需求。为此,Milvus将节点分拆,每个节点都能轻松实现弹性扩缩容。例如,data节点在晚上没有数据写入时可以关闭,在晚上进行批量插入时可以开启,以帮助用户节省云上成本。index节点单独拆分出来是因为它需要积累一定数量的数据后才能建立索引,是一类批处理而非实时处理的任务。存储方面,持久化数据Milvus选择使用S3或MinIO等对象存储,实时数据存储在消息队列中目前支持pulsar和kafka。在未来的2.4版本中,Milvus计划尝试使用自研消息队列,以减轻用户运维成本。

Milvus还针对AIGC场景进行了优化,如支持JSON和动态schema;提供分区能力;并为对性能要求不高但对成本敏感的用户提供磁盘索引。此外,还支持海量文档的离线导入,帮助解决冷启动问题;并与AI相关产品进行深度集成,如LangChain、OpenAI和AutoGPT等。Milvus还提供各种语言的客户端,如Python、Go、Java、C#、Ruby等,鼓励有其他语言经验的同学贡献客户端。

这里展示了一个关于ANN Benchmark的性能比较,其中最上方的Glass是自研的向量检索库实验室版本,还未开源。Knowhere是现在开源的Milvus使用的引擎,两者在性能上有明显差距。此外,Milvus还支持对未构建索引的标量或实时插入数据进行快速过滤,并对开源库进行深度优化,以解决实际工程问题。此外,Milvus还会针对开源库进行深度优化,结合工业界实践,解决内存、线程调度和线程安全等问题。

03

应用场景

OSSChat是一款帮助开源社区回答问题和生成代码的产品,旨在解决大模型的幻觉问题。

GPTCache是一款帮助用户缓存大模型问答结果的产品,可以提高大模型推理速度。由于网络限制和不稳定性,使用OpenAI可能会遇到延迟问题,而查询向量数据库可以提供更快的延迟。GPTCache支持连接Milvus、FAISS和PGVector等向量/标量数据存储,用户也可以贡献代码来支持其他产品。

多模态检索,包括文本找图、图找视频、视频找文本和图片找视频等混合查询。一些公司已经应用了这些技术,例如Meta开源的Imagebind模型,它可以将多模态数据库嵌入到同一个向量空间中,帮助用户执行多模态混合查询。除了与大模型结合的应用外,向量数据库还可以应用于推荐、搜索和安全风控等场景,主要用于语义检索和语义召回。许多公司已经实际应用了这些技术,包括快手、虾皮和得物等知名互联网公司。

04

LLM + 向量数据库未来展望

可以帮助用户节约成本,但使用向量数据库需要一定的门槛,包括部署、运维、调优、升级和扩容等问题。解决这些问题需要专门的团队,可能需要选择上云或购买SaaS服务等方案。

② 查询能力:

更复杂的综合打分排序能力满足用户的需求。例如,用户可以将两个模型(如meta模型)应用于文本或图片中的两列向量,然后根据这两个向量的相似度进行混合排序。

③ 丰富的功能

包括数据备份、可视化数据管理等。

④ 查询接口也将更加丰富

包括广大用户熟悉的SQL等。

⑤ 性能和硬件成本

是许多用户关注的重点。为了降低成本并提高效率,可以采用不同类型的硬件,例如GPU和ARM等。通过使用这些先进的硬件,可以提高系统的性能,为用户提供更好的服务。

⑥ 通过智能化的调优

提高系统性能。在商业版本中,Zilliz提供了auto index功能,它可以帮助用户自动选择使用HNSW还是IVF索引,对用户只需关注召回率和延迟,无需关注不同的索引参数之间的差异。这种智能化的调优能力将为用户提供更高效的服务,降低用户的维护成本。

Zilliz Cloud服务已经上线阿里云,国内用户也可以使用。提供了云上的7×24小时服务支持、99.9%的SLA保障、数据备份、订阅能力以及组织架构管理等企业级功能。在安全方面,提供了RBAC权限管理、白名单和私有链接审计日志等功能,确保系统的安全性。此外,在AWS和GCP上,还提供了永久免费实例,用户可以在开发过程中快速部署向量数据库,满足快速验证需求。

分享嘉宾

INTRODUCTION

焦恩伟

Zilliz

首席工程师

焦恩伟是 Zilliz 首席工程师,是 Milvus 和 Apache Kylin 开源项目的 contributor,目前在 Zilliz 负责 Milvus 查询引擎相关研发工作。在加入 Zilliz 之前,他曾就职于开源商业化公司 Kyligence,担任 Apache Kylin 和 MDX for Kylin 商业产品的研发负责人。他在 OLAP、数据库、大数据以及开源商业化领域积累了多年的产品研发经验。焦恩伟拥有上海交通大学硕士学位。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Azure Open AI Embedding是一种嵌入模型,通过使用Azure平台上的开放AI服务,可以将文本转换为高维向量表示。这种嵌入模型可以用于自然语言处理、推荐系统等领域,帮助我们更好地理解和处理文本数据。在使用Azure Open AI Embedding时,我们可以利用Azure的强大计算资源和高效的API接口,快速获取到所需的文本嵌入表示。 Milvus本地向量数据库是一种针对大规模向量数据的高性能数据库。它提供了快速的向量相似度搜索和存储功能,可以高效地应用于图像识别、人脸识别、文本检索等领域。在搭建Milvus本地向量数据库的单例安装和使用时,我们可以通过简单的配置和管理,快速部署本地向量检索系统,并且能够自由定制化自己的向量索引。 对于私有模型的应用,可以将Azure Open AI Embedding模型Milvus本地向量数据库结合起来。首先,可以使用Azure Open AI Embedding模型将文本数据转换为向量表示,然后将这些向量存储到Milvus本地向量数据库中进行索引和检索。这样可以实现自己的定制化文本嵌入表示和快速的向量相似度搜索。同时,我们也可以通过对Milvus本地向量数据库进行单例安装和私有化部署,更好地保护自己的数据和模型隐私。这样的集成和应用可以帮助我们更好地理解和处理大规模文本数据,并且能够高效地进行相似度搜索和检索。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值