zilliztech/VectorDBBench

Benchmark for vector databases.

VectorDBBench (VDBBench) – ベクトルデータベース用ベンチマークスイート

何であるか – VDBBench は、Milvus、Qdrant、Pinecone、Weaviate、Elastic、PostgreSQLベースのソリューション、Redis など、幅広いベクトル検索バックエンドで再現可能なパフォーマンスおよびコスト効率テストを実行できる Python ベースのツールです。小さなビジュアル 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 – README には詳細が記載されていませんが、オプションの Web インターフェースがあり、ベンチマーク実行と比較チャートを表示。非専門家でも結果の再現がしやすくなります。
  • インストール – 単一コマンドの 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 結果ファイルを出力します。

誰が使うべきか –

  • 新しい類似性検索製品に採用するベクトルストアを評価するデータサイエンスチーム。
  • ホステッドベクトル検索サービスの定量的比較が必要なクラウドコストエンジニア。
  • 新しいインデックスアルゴリズムを共通の公開データセットでベンチマークする研究者。
  • 複数のベクトルDB実装間で挿入速度、クエリ遅延、リコールを再現可能かつスクリプト可能な方法で測定したいすべての人。

さらに詳しく知りたい場合 – パッケージは PyPI に公開されています(vectordb-bench)、ソースコードは zilliztech/VectorDBBench GitHub リポジトリにあり、ライブリーダーボードは https://zilliz.com/benchmark で利用可能です。各リリースのドキュメント(例:全文検索、Hugging Face データセット統合)は、リポジトリの docs/ フォルダにリンクされています。

関連

  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト
  • プロジェクト