如何选择一个向量数据库:Elastic Cloud 和 Zilliz Cloud 面面观

随着以 Milvus 为代表的向量数据库在 AI 产业界越来越受欢迎,诸如 Elasticsearch 之类的传统数据库和检索系统也开始行动起来,纷纷在快速集成专门的向量检索插件方面展开角逐。

例如,在提供类似插件的传统数据库中,Elasticsearch 8.0 首屈一指,推出了包括向量插入和最相似近邻搜索(ANN)能力在内的一系列特性,并提供了相应的 RESTful API 接口。在这种情况下,作为 Elasticsearch 的完全托管版本,Elastic Cloud 也开始提供向量检索能力。

值得注意的是,作为既有系统的补充,大多数此类向量检索插件提供的 embedding 管理和向量检索方案并不尽如人意,使得这些插件在与检索性能密切相关的时延、容量和吞吐等指标上表现不佳。这就好像人们寄希望于将燃油汽车改造成使用锂电池和电机的新能源汽车一样,存在创新不足的问题。

本文将撇开这些表面差异,通过比较二者的性能基准测试结果和 Elastic Cloud 的相关特性,深入探究 Elastic Cloud 和 Zilliz Cloud (https://zilliz.com.cn/)的差异。

01.Elastic Cloud v.s. Zilliz Cloud:性能大比拼

Zilliz 经常会收到来自开发者和架构师的提问:“Zilliz Cloud 和 Elastic Cloud 比起来,谁进行向量处理能力比较强?”

诸如此类的问题很多,究其根本,大都是开发者/架构师在为语义相似性检索系统进行数据库选型时缺少决策依据有关。最近,随着检索增强生成系统(RAG:https://zilliz.com/use-cases/llm-retrieval-augmented-generation) 的持续火爆,此类提问也越来越多。

过去几周,我们从性能和特性能力两个方面对 Elastic Cloud(https://www.elastic.co/cn/cloud) 和 Zilliz Cloud 进行了详细的对比。在对比过程中,我们使用了开源的性能基准测试套件 VectorDBBench,围绕诸如每秒查询次数(QPS)、每美元查询次数(QP$)以及时延等关键指标展开测试。

测试用数据集

以下为测试中使用的两类数据集:

  • 数据集 1 包含 1,000,000 条 768 维的向量数据。

  • 数据集 2 包含 500,000 条 1,536 維的向量数据。

测试对象

以下为测试时使用的实例,这些实例在硬件配置上基本相近:

  • Zilliz Cloud (1cu-perf):Zilliz Cloud 1 CU 性能型实例

  • Zilliz Cloud (1cu-cap):Zilliz Cloud 1 CU 容量型实例

  • Elastic Cloud (up to 2.5c8g):Elastic Cloud 2.5 vCPU 和 8 GB 内存

注:关于 Zilliz Cloud 计算单元(CU)的更多信息,可以参考《适配各类大模型应用!手把手教你选择 Zilliz Cloud 实例类型》。

每秒查询次数(QPS)

测试结果显示,在 1,000,000 条 768 维的向量数据中进行检索时,Zilliz Cloud 两款实例的 QPS 分别是 Elastic Cloud 实例的 34 倍和 22 倍。

alt

在 500,000 条 1,536 维的向量数据中进行检索时,Zilliz Cloud 两款实例的 QPS 分别是 Elastic Cloud 实例的 26 倍和 13 倍。

alt

下图展示了各实例在不同用例下的性能评分(百分制)情况,分数越高,性能越强。具体的评分标准可以参考此处。

由此可以看出,Zilliz Cloud 在该指标上全面碾压 Elastic Cloud。

alt

每美元查询次数(QP$)

在 1,000,000 条 768 维的向量数据中进行检索时,Zilliz Cloud 两款实例的 QP$ 分别是 Elastic Cloud 实例的 102 倍和 65 倍。

alt

在 500,000 条 1,536 维的向量数据中进行检索时,Zilliz Cloud 两款实例的 QP$ 分别是 Elastic Cloud 实例的 79 倍和 38 倍。

alt

下图展示了各实例在不同用例(https://zilliz.com/vector-database-benchmark-tool#comparison-section)下的性能评分(百分制)情况,分数越高,性能越强。具体的评分标准(https://github.com/zilliztech/VectorDBBench/tree/main#leaderboard)可以参考此处。由此可以看出,Zilliz Cloud 在该指标上全面碾压 Elastic Cloud。

alt

时延

在 1,000,000 条 768 维的向量数据中进行检索时,Zilliz Cloud 两款实例的 P99 时延分别是 Elastic Cloud 实例的 123 倍和 96 倍。

alt

在 500,000 条 1,536 维的向量数据中进行检索时,Zilliz Cloud 两款实例的 P99 时延分别是 Elastic Cloud 实例的 502 倍和 108 倍。

alt

下图展示了各实例在不同用例下的性能评分(>1分制)情况,分数越接近 1,性能越强。

由此可以看出,Zilliz Cloud 在该指标上全面碾压 Elastic Cloud。

alt

上述性能基准测试结果由开源的 VectorDBBench(https://github.com/zilliztech/VectorDBBench) 工具提供。在工具的 GitHub 主页上,还可以看到向量数据库的排行榜。

02.Elastic Cloud 特性对比

随着向量数据库可以存储的数据量呈几何级数的增长,性能也成为了向量数据库的重大挑战。为了保障数据检索性能,数据库的跨节点横向扩展能力至关重要。另外,数据插入速率、检索速率以及底层硬件的不同可能会衍生出不同的应用需求,这也让全局参数调节能力成为向量数据库的必备能力之一。

向量数据库为何而生

向量数据库是用来存储通过机器学习模型生成的非结构化数据的向量表示,为其创建索引,并在其中进行检索的一套全托管解决方案。它应该提供如下特性:

  • 可扩展性和参数调节能力

  • 多租户和数据隔离

  • 完整的 API 套件

  • 直观的用户界面和控制台

可扩展性

alt

功能

alt

专门打造

alt

更多详情,请参见比较页面 https://zilliz.com/comparison/milvus-vs-elastic。

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/155794.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VAE模型(详细推导+实例代码)

文章目录 EM算法思路E步M步直观感觉 GMM模型VAEVAE思想从GMM到VAE公式推导重参数VAE神经网络另一个视角的VAE思想为什么引入encoder为什么要重参数噪声与重建 Discrete VAE 本文会从EM算法,GMM模型一步一步的的推导,在过渡到VAE模型,如果有熟…

棱镜七彩参编!开源领域4项团体标准正式发布

近日,中电标2023年第27号团体标准公告正式发布,《T/CESA 1270.2-2023 信息技术 开源治理 第 2 部分:企业治理评估模型》、《T/CESA 1270.3-2023 信息技术 开源治理 第 3 部分:社区治理框架》、《T/CESA 1270.5-2023 信息技术 开源…

信创办公–基于WPS的EXCEL最佳实践系列 (单元格与行列)

信创办公–基于WPS的EXCEL最佳实践系列 (单元格与行列) 目录 应用背景操作步骤1、插入和删除行和列2、合并单元格3、调整行高与列宽4、隐藏行与列5、修改单元格对齐和缩进6、更改字体7、使用格式刷8、设置单元格内的文本自动换行9、应用单元格样式10、插…

STM32F4X I2C LM75

STM32F4X I2C LM75 I2C协议讲解I2C接线I2C协议波形I2C起始信号I2C停止信号I2C应答信号I2C寻址I2C地址格式 I2C数据传输 LM75ALM75A介绍LM75A引脚说明LM75A地址LM75A寄存器LM75A I2C协议写配置寄存器读配置寄存器写Tos和Thyst寄存器读Tos Thyst Temp寄存器LM75A温度计算 LM75A例…

力扣(LeetCode)2578. 最小和分割(C++)

哈希集合 请读者思考,num拆分成num1和num2,要使得num1 num2最小,应满足两条性质: num1和num2位数相同,或最多差一位。num1和num2应按数值从小到大在num中取数。 想到统计num的位数,以实现性质1的需要&a…

淘宝天猫商品历史价格API接口

获取淘宝商品历史价格接口的步骤如下: 注册淘宝开放平台:首先在淘宝开放平台上注册一个账号,并进行登录。创建应用:在淘宝开放平台上创建一个应用,并获取该应用的App Key和App Secret,用于后续的接口调用。…

【数据结构】二叉树的链式结构及实现

目录 1. 前置说明 2. 二叉树的遍历 2.1 前序、中序以及后序遍历 2.2 层序遍历 3. 节点个数及高度等 4. 二叉树的创建和销毁 1. 前置说明 在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作。由于现在大家对二叉树结构…

区块链技术的飞跃: 2023年的数字革命

随着时代的推进和技术的不断创新,2023年成为区块链技术飞跃发展的一年。区块链,一个曾经只是数字货币领域的技术,现在已经逐渐渗透到各个行业,成为推动数字经济发展的重要力量。在这个数字革命的时代,我们探讨区块链技…

什么是存储服务器?

随着互联网的发展,越来越多的信息会在网络上暴露,所以企业就会更加重视数据,因此更加安全可靠的数据存储服务器受到了大多数人的信赖,今天就让小编带大家了解一下什么是存储服务器吧! 存储服务器的含义。存储服务器是…

代理IP端口是什么意思呢?

今天,咱们来聊聊一个小众但很有料的话题——代理IP端口,它可是你纵横互联网世界的好搭子哦! 首先,我们得先弄明白,代理IP端口是个啥? 代理IP端口就像是通往网络世界的门票,是你和代理服务器之间的桥梁。…

使用注解新开事务 @Transactional

使用注解新开事务 Transactional(propagation Propagation.REQUIRES_NEW)

使用Perl脚本编写爬虫程序的一些技术问题解答

网络爬虫是一种强大的工具,用于从互联网上收集和提取数据。Perl 作为一种功能强大的脚本语言,提供了丰富的工具和库,使得编写的爬虫程序变得简单而灵活。在使用的过程中大家会遇到一些问题,本文将通过问答方式,解答一些…

Jetson Orin NX 开发指南(6): VINS-Fusion-gpu 的编译和运行

一、前言 由于 Jetson 系列的开发板 CPU 性能不是很好,因此在处理图像数据时往往需要 GPU 加速,而 VINS-Fusion 是针对同步定位与建图(SLAM)问题中十分出色的视觉算法,但是其在图像处理过程中资源消耗较大&#xff0c…

执行make menuconfig问题的解决

执行make menuconfig 出现问题 在终端输入以下命令执行。 make menuconfig在终端输入上面命令执行时,没有成功运行,出现了如下的问题。 出现这个错误提示意味着在运行 make menuconfig 命令时,系统找不到 ncurses 库。ncurses 是一种文本用…

iPhone手机记笔记工具选择用哪个

iPhone手机大家应该都比较熟悉,其使用性能是比较流畅的,在iPhone手机上记录笔记可以帮助大家快速地进行总结工作、记录工作内容等,在iPhone手机上记笔记工具选择用哪个呢? 可以在iPhone手机上使用的笔记工具是比较多的&#xff0…

Vue3中使用tinymce全功能演示,包括开源功能

效果图: 1、下载插件: npm i tinymce npm i tinymce/tinymce-vue 2、在node_modules文件夹中找到tinymce下的skins复制到项目public文件夹中 (可以先创建一个tinymce文件夹): 3、在tinymce官网中下载中文包,并放在刚…

FISCO BCOS | 构建第一个区块链应用程序

本章将介绍基于FISCO BCOS区块链的业务应用场景开发的全流程。介绍包括业务场景分析、合约设计实现、合约编译、区块链开发等。最后,我们介绍一个应用模块实现,即通过我们提供的Java SDK实现对区块链上合约的调用访问。 本教程要求用户熟悉Linux操作环境…

NCV6324CMTAATBG---车规级3MHz 2A 高效同步降压转换器

同步降压转换器? 是一种电源管理电路,它可以将输入电压转换为较低的输出电压。与传统的降压转换器相比,同步降压转换器具有更高的效率和更好的动态响应。 同步降压转换器的工作原理是通过控制开关管的导通和截止来实现电能的转换。在导通状…

Go语言入门心法(一)

一: go语言中变量认知 go语言中变量的定义: (要想飞|先会走)||(翻身仗|抹遗憾 )(1)go语言中变量认知升维(2)go语言中变量与强类型语言java类似,变量使用必须先声明后使用(3)go语言中变量标准的声明使用var关键字进行声明: var 变…

微信小程序通过 movable-area 做一个与vuedraggable相似的上下拖动排序控件

因为只是做个小案例 我就直接代码写page页面里了 其实很简单 组件稍微改一下就好了 wxss /* 设置movable-area的宽度 */ .area{width: 100%; }/* a b c 每条元素的样式 */ movable-view {width: 100%;background-color: red;height: 40px;line-height: 40px;color: #FFFFFF;tex…