向量数据库的行业标准逐渐清晰!Vector DB Bench 正式开源!

news2024/11/23 20:41:48

大模型带火了向量数据库赛道,也让各式各样的向量数据库进入开发者视野。

对于开发者而言,如何选择一个适合自己的向量数据库至关重要。不过,向量数据库的选型并不简单,开发者不仅需要对市面上各种开源和闭源的数据库进行全面的性能评估,还要根据自己的业务数据设计测试方案……为了让更多开发者可以匹配到适合自己业务的向量数据库,我们开发了一个全新的开源性能测试工具——Vector DB Bench,它可以通过测量关键指标来衡量向量数据库的性能,使得向量数据库发挥出最大的潜能。

本文将从 Vector DB Bench 的特点和优点出发,帮助开发者全面、客观、高效地评估向量数据库。

01.开发背景

在设计 Vector DB Bench 的过程中,我们考虑了很多因素,包括测试目的、用例精确定义要求、数据的形状等。

首先是测试目的,性能测试旨在测量和比较不同情况下系统、应用程序或组件的性能。开发者可以使用它来评估不同方法的有效性和效率,并了解如何改进。

用例精确定义要求对性能测试同样十分重要。例如,如果用户正在处理大型数据集,可能会想要了解数据库可以处理多少向量或数据库搜索性能(检索相关数据的速度)。此外,测试过滤性能可以帮助查看系统如何处理大型数据集的复杂查询。

最后是数据的形状。数据的形状是指开发者计划在向量数据库中存储和使用的向量数量和向量维度。在设计性能测试时,数据形状可以影响系统的性能。

02.设计目标

以下是我们在构建开源性能测试工具时考虑的一些设计目标:

  • 灵活、可扩展:基准测试工具应灵活、可扩展。它应支持多个向量数据库系统,以便开发者能够轻松地进行性能测试和比较不同选项。此外,该工具应具有模块化架构,以支持添加更多向量数据库、指标和自定义测试场景,使开发者能够根据具体要求自定义评估。

  • 真实负载模拟:基准测试工具应利用开发者的工作负载作为真实负载模拟,以确保准确的性能评估。模拟开发者的实际用例和查询模式可以提供有关各种情况下数据库行为的见解。这种模拟有助于衡量向量数据库在实际情况下的表现,确定其适用性。

  • 交互式报告和可视化:该工具应具有生成报告和可视化的直观系统,以便轻松识别性能瓶颈、比较数据库,并了解如何优化。这些报告将是重要的决策资源,可促进有效的团队沟通。

  • 开源社区协作:该工具应是开源的,以促进向量数据库用户和开发人员的协作。通过共享见解、最佳实践和性能结果,社区共同为改进和完善该工具做出贡献,最终帮助开发人员选择适合工作的正确工具。

03.Vector DB Bench - 开源基准测试工具

Vector DB Bench 是为追求高性能数据存储和检索系统的用户设计的开源性能测试工具,它允许用户测试和比较不同向量数据库系统的性能,以确定最适合的数据库系统。使用 Vector DB Bench 后,用户可以根据他们正在评估的数据库系统的实际性能做出明智的决策,而不是依赖于营销宣传。

Vector DB Bench 是用 Python 编写的,已获得 MIT 开源许可证授权,任何人都可以自由使用、修改这一工具。相关的开发人员也在积极改进其功能和性能中。

04.快速开始

使用 pip 下载 Vector DB Bench 并使用以下命令进行安装:pip install vectordb-bench。 然后运行以下命令:init_bench。

我们将看到屏幕显示“Vector Database Benchmark”页面。此页面显示当前月份已经进行的测试结果。从这个页面,可以跳转至“QPS with Pricing”页面,按云服务的定价排序查看结果。这些测试已经涵盖不同规模的数据集进行了全面的测试。

要执行自己的测试,可以转到“Run Your Test”页面进行设置。

05.如何设置 Vector DB Bench 自行测试?

如需自行测试,请跳转至“Run Your Test”页面,并选择要测试的向量数据库,并添加这些向量数据库的配置。选择不同数据库还将显示不同 uri、用户名、密码和 db 标签。Vector DB Bench 目前支持六个向量数据库:Milvus、Zilliz Cloud、Pinecone、WeaviateCloud、QdrantCloud 和 ElasticCloud。设置要运行的测试类型(容量或搜索性能)、索引类型、用例(搜索、低或高过滤)和数据集大小(小、中和大)。

alt

在选择所需配置后,可以运行测试并等待结果。

alt

在结果页面上,可以查看测试结果。如果选择了多个数据库进行测试,将看到对比结果。开发者还可以自由分享在本地示例上运行的测试结果。

欢迎大家分享对 Vector DB Bench (https://github.com/zilliztech/VectorDBBench)的使用体验,当然也可以加入我们的 GitHub 或 Vector DB Bench slack 频道(https://milvusio.slack.com/?redir=%2Fapp_redirect%3Fchannel%3Dvector-db-bench),点击链接感受测试工具的便捷!

🌟全托管 Milvus SaaS/PaaS 即将上线,由 Zilliz 原厂打造!覆盖阿里云、百度智能云、腾讯云、金山云。目前已支持申请试用,企业用户 PoC 申请或其他商务合作请联系 business@zilliz.com。


  • 如果在使用 Milvus 或 Zilliz 产品有任何问题,可添加小助手微信 “zilliz-tech” 加入交流群。 •
  • 欢迎关注微信公众号“Zilliz”,了解最新资讯。 alt

本文由 mdnice 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我心中世界上最好的语言是PHP,别不信【偷笑】

文章目录 一、前言1.1 最适合的语言2.2 流行的语言2.3 Java和PHP2.4 PHP的性能2.5 关于PHP2.6 作文思路概览 二、PHP的优势2.1 跨平台2.2 开发运行环境搭建方便2.3 强大的包管理工具2.4 拥有优秀的代码调试工具xdebug2.5 上手快,学习成本低2.6 丰富的企业级框架2.7 …

集电极开路是什么?集电极开路电路工作原理讲述

​集电极开路是指集电极电路中出现了断路的情况,导致电路无法正常工作。在集电极开路的情况下,电路中的电流无法通过集电极流过,导致电路无法正常放大信号或者控制其他器件的工作。 集电极开路的原因有很多,可能是器件本身的故障…

端午节:传统文化与现代科技的交融

端午节,又称为龙舟节、重五节,是中国传统节日之一。每年农历五月初五,人们会吃粽子、赛龙舟、挂艾草等,以纪念屈原和抵御瘟疫的传说。但是,随着科技的发展,端午节的庆祝方式也在不断地变化和创新。 一、传统…

Selenium 相对定位

目录 前言: 相对定位 工作原理 可用的相对定位 Above Below Left of Right of Near 链式相对定位 相对于WebElement的相对定位 实例演示 前言: Selenium传统定位基本能解决80%的定位需求,但是还是有一些复杂场景传统定位定不到的…

C语言:实现有序序列判断

题目: 输入一个整数序列,判断是否是有序序列,有序,指序列中的整数从小到大排序或者从大到小排序(相同元素也视为有序)。 输入描述: 第一行输入一个整数N (3≤N≤50) 。 第二行输入N个整数,用空格分隔N个整数…

面试滑铁卢,被HR坑惨了......

阎王易见,小鬼难缠。我一直相信这个世界上好人居多,但是也没想到自己也会在阴沟里翻船。我感觉自己被字节跳动的HR坑了。 在这里,我只想告诫大家,offer一定要拿到自己的手里才是真的,口头offer都是不牢靠的&#xff0…

C++学习之详解命名空间

1.理解命名空间 namespace命名空间正如翻译的那样给命名划分空间,每个函数名或变量等都有自己的使用范围,避免的使用函数名冲突的问题; 打个比方,一个班如果有两人叫做张三,那么其中如何区分这两个人那么就得给他们起…

UI自动化测试 | Jenkins配置优化

前一段时间帮助团队搭建了UI自动化环境,这里将Jenkins环境的一些配置分享给大家。 背景: 团队下半年的目标之一是实现自动化测试,这里要吐槽一下,之前开发的测试平台了,最初的目的是用来做接口自动化测试和性能测试&…

如何判断一家公司值不值得去?

通常职场新手都有这样的困惑:收到某某公司的面试(或者offer),我该不该去呢? 为什么有这样的困惑? 大部分原因是因为海投简历导致的。刚出来工作时,我也海投过简历,不管公司好不好&a…

Java使用jna调用c开发的动态库dll文件

文章目录 前言1.c开发动态库dll1.1 新建项目dllDemo1.2 选择C library 在选择shared1.3 项目的目录结构1.4 定义动态库函数1.5 导出动态库 2.java中使用jna调用dll2.1 需要引入jna的依赖2.2 加载动态库dll2.3 测试程序2.3.1 测试代码:2.3.2 测试结果输出 前言 在日…

maven的依赖范围scope使用

测试依赖的范围 #1、依赖范围 标签的位置:dependencies/dependency/scope 标签的可选值:compile/test/provided/system/runtime/import #①compile 和 test 对比 main目录(空间)test目录(空间)开发过程…

linux重新安装Yapi

需要保留原来Yapi对应的数据,这样就不需要安装mongo。 1. 安装Yapi npm install -g yapi-cli —registry https://registry.npm.taobao.org yapi server2.平台部署配置 安装成功后,默认端口是9000,开发服务器9000端口,需要服务…

崩盘预警币圈项目:Fintoch(分投趣)为何模式能做千亿资金?

崩盘预警币圈项目:Fintoch(分投趣)为何模式能做千亿资金? 大家好,小编是微三云的胡佳东,一家软件开发公司的负责人 Fintoch(分投趣)为何模式崩盘前能够吸引如此巨额资金&#xff1f…

供应链 | 基于图神经网络和深度强化学习的柔性车间调度方法

编者按 本次解读的文章发表于IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS,原文摘要总结如下:本文考虑了众所周知的灵活作业车间调度问题,并通过提出一种新颖的深度强化学习(DRL)方法来端到端地学习高质量的优先级调度…

SpringBoot实现过滤器Filter的三种方式

# 实现Filter接口方式① 使用Filter接口方式② 使用Component注解方式③ Java Config 配置类 # 实现Filter接口 过滤器 Filter 由 Servlet 提供,基于函数回调实现链式对网络请求与响应的拦截与修改。由于基于 Servlet ,其可以对web服务器管理的几乎所有…

重复消费和堆积

接受消息会重复这一现状,然后通过一些方法来消除重复消息对业务的影响 利用幂等性解决重复消息问题 幂等(其任意多次执行所产生的影响均与一次执行的影响相同。) 一个幂等的方法,使用同样的参数,对它进行多次调用和一…

flutter七牛云上传sdk插件qiniu_flutter_sdk使用

flutter七牛云上传sdk插件qiniu_flutter_sdk使用 最近在拆分代码,将上传组件设置成插件,下面记录下实现过程。 一、创建flutter_plugin上传插件 这里Android Studio使用创建plugin 填写一下信息 Project nameProject locationDescriptionProject typ…

单片机入门所需的基础数电和模电知识

要学习单片机并入门相关领域,推荐掌握以下数电和模电的基础知识: 数电知识: 布尔代数和逻辑门:了解布尔代数的基本概念和逻辑门的工作原理,包括与门、或门、非门、与非门、或非门、异或门等。 时序逻辑和时钟信号&a…

AIOps介绍

AIOps介绍 AIOps是指人工智能运维(Artificial Intelligence for IT Operations)的缩写。它是将人工智能(AI)和机器学习(ML)技术应用于IT运维领域的一种方法。 传统的IT运维通常需要人工监测和管理大量的系…

脑机接口科普0022——黑门02:伦理道德问题

本文禁止转载!!!! 脑机接口这个技术,是属于黑科技技术中的一种。 现在已经有很多专家,以及机构,提出脑机接口的存在的一些问题。法律是一块的问题,伦理道德是另一块的问题。 虽然…