zilliztech/VectorDBBench

Benchmark for vector databases.

VectorDBBench (VDBBench) – 向量数据库的基准测试套件

是什么 – VDBBench 是一个基于 Python 的工具,可对多种向量搜索后端(如 Milvus、Qdrant、Pinecone、Weaviate、Elastic、基于 PostgreSQL 的解决方案、Redis 等)进行可重复的性能和成本效益测试。它附带一个小型可视化 UI,用于启动基准测试并比较结果,也可完全通过命令行驱动。

为何重要 – 选择向量数据库(或云托管的向量搜索服务)通常是一个试错过程。VDBBench 提供了统一的工作负载定义(插入、最近邻搜索、过滤搜索,以及现在支持的 BM25 风格全文搜索),并附带一个公开数据集目录(SIFT、GIST、Cohere Wikipedia 嵌入、OpenAI 生成的 C4 嵌入,以及托管在 Hugging Face 上的多模态 VIBE 数据集)。这使得从业者能够跨提供商比较延迟、吞吐量(QPS)、召回率,甚至每查询的美元成本。

主要功能(如 README 所述)

  • 支持的后端 – Milvus/Zilliz Cloud、Qdrant、Pinecone、Weaviate、Elastic(包括 Elastic Cloud)、OpenSearch/AWS OpenSearch Serverless、PostgreSQL 扩展(pgvector、pgvecto.rs、VectorChord 等)、Redis、MongoDB、TiDB、Vespa,以及通过可选扩展支持的更多数据库。
  • 工作负载 – 插入、向量相似性搜索、过滤搜索,以及全文 BM25 检索(MS MARCO、HotpotQA)。每个工作负载可运行在 性能 模式(大规模、高并发)或 容量 模式(变化维度和数据集大小)。
  • 数据集目录 – 经典的低维基准(SIFT、GIST)以及现代高维嵌入(200维余弦、768维、1536维)和从 1 M 到 100 M 向量的多模态 Parquet/HDF5 集合。
  • 成本效益报告 – 对于云服务,该工具可根据提供商的定价模型计算每查询成本,帮助用户选择在满足延迟/召回目标的前提下最便宜的选项。
  • 可扩展的 CLI – vectordbbench <backend> [options],每个后端都有自己的标志(索引参数、并发、认证等)。--note/--note-file 标志可将部署上下文嵌入 JSON 结果文件中。
  • 可视化 UI – 一个可选的 Web 界面(README 中未详细说明),用于显示基准测试运行和对比图表,使非专家也能轻松复现结果。
  • 安装 – 单命令 pip install,通过可选扩展安装特定数据库客户端,例如 pip install 'vectordb-bench[pinecone]'。

典型用法

# 安装核心包(包含 Milvus 客户端)
pip install vectordb-bench

# 安装特定后端的扩展,例如 Qdrant
pip install 'vectordb-bench[qdrant]'

# 对本地 Milvus 实例运行基准测试
vectordbbench milvushnsw \
  --uri http://localhost:19530 \
  --collection-name VDBBench \
  --case-type Performance768D1M \
  --m 16 --ef-construction 128 --ef-search 128 \
  --k 10 --nq 2 \
  --skip-drop-old --skip-load

该命令会输出一个包含吞吐量(qps)、延迟(conc_latency_*)、召回率以及用户提供的备注的 JSON 结果文件。

谁应该使用它 –

  • 正在评估应采用哪种向量存储来构建新相似性搜索产品的数据科学团队。
  • 需要对托管向量搜索服务进行定量比较的云成本工程师。
  • 基于一组公共数据集对新索引算法进行基准测试的研究人员。
  • 任何希望以可复现、可脚本化方式测量多种向量数据库实现的插入速度、查询延迟和召回率的人。

更多资源 – 该包已发布在 PyPI(vectordb-bench),源码位于 zilliztech/VectorDBBench GitHub 仓库,实时排行榜托管在 https://zilliz.com/benchmark。每个版本的文档(例如全文搜索、Hugging Face 数据集集成)均链接在仓库的 docs/ 文件夹中。

相关

  • 项目
  • 项目
  • Dispatch
  • 项目
  • 项目