Re Reference AI

インフラ

Qdrantとは

Rustで実装された、高速な検索性能とフィルタリング機能を特徴とするオープンソースのベクトルデータベース

ベクトルデータベース検索

ひとことで言うと

Rustで作られた、高速な検索とメタデータでの絞り込みが得意なベクトルデータベース

概要

Qdrantは、Qdrant社が開発するオープンソースのベクトルデータベース。 Rustで実装されており、ベクトル類似検索とメタデータによるフィルタリングを組み合わせた検索性能を特徴とする。セルフホストとマネージドクラウドの両方の形態で利用できる。

背景

高速な検索性能とメタデータによる柔軟な絞り込みを両立したいというニーズから、Qdrant社はRustで実装したオープンソースのベクトルデータベースとしてQdrantを開発した。

歴史

2021年: Qdrant社がオープンソースのベクトルデータベース「Qdrant」を公開。

コード例

qdrant-clientによるベクトル検索(概念例)

from qdrant_client import QdrantClient
from qdrant_client.models import PointStruct, VectorParams, Distance

client = QdrantClient(url="http://localhost:6333")
client.create_collection(
    collection_name="demo",
    vectors_config=VectorParams(size=3, distance=Distance.COSINE),
)

client.upsert(
    collection_name="demo",
    points=[PointStruct(id=1, vector=[0.1, 0.2, 0.3], payload={"text": "example"})],
)

results = client.query_points(collection_name="demo", query=[0.1, 0.2, 0.3], limit=3)
print(results)

利点

  • Rust実装による高速な検索性能とメモリ効率を特徴とする
  • メタデータによるフィルタリングとベクトル検索を組み合わせやすい
  • gRPC/REST両方のAPIを提供し、様々な言語のクライアントから利用しやすい

欠点

  • 老舗のベクトルデータベース製品と比べ、エコシステムや事例の蓄積はまだ少ない
  • 大規模分散運用の実績は発展途上にある
  • 商用のマネージドクラウドとセルフホストでは、機能差が生じることもある

比較

  • ベクトルデータベースQdrantは高速な検索性能とフィルタリングを特徴とするオープンソースのベクトルデータベースの1つ
  • Weaviateいずれもオープンソースのベクトルデータベースだが、QdrantはRust実装による検索性能を、Weaviateはハイブリッド検索やスキーマ定義を重視する
  • MilvusQdrantが高速な検索性能とフィルタリングを重視するのに対し、Milvusは分散処理による大規模スケールを重視する
  • ChromaQdrantが本番運用の高速な検索性能を重視するのに対し、Chromaはプロトタイピングのしやすさを重視した軽量なベクトルデータベース

関連用語

ベクトルデータベースEmbeddingWeaviateMilvusChroma

よくある質問

Qdrantの特徴は?

Rustで実装されており、ベクトル類似検索とメタデータによるフィルタリングを組み合わせた高速な検索性能を特徴とする。

Qdrantはセルフホストとマネージドのどちらを選べる?

どちらも選択できる。オープンソース版をセルフホストする形と、マネージドクラウドサービスを利用する形の両方が用意されている。

参考文献