Re Reference AI

インフラ

Milvusとは

大規模なベクトルデータの分散処理に対応したオープンソースのベクトルデータベース

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

ひとことで言うと

非常に多くのベクトルデータを扱えるよう作られた、オープンソースのデータベース。

概要

Milvusは、Zilliz社が開発するオープンソースのベクトルデータベース。 数十億件規模のベクトルデータを分散アーキテクチャで処理できるよう設計されており、複数のインデックス手法(HNSW等)を選択して利用できる。LF AI & Data Foundationのプロジェクトとしても提供されている。

背景

画像・テキスト等から生成される大量の埋め込みベクトルを、数十億件規模でも高速に検索したいというニーズから、Zillizは分散アーキテクチャを前提としたオープンソースのベクトルデータベースとしてMilvusを開発した。

歴史

2019年: Zillizが、オープンソースのベクトルデータベース「Milvus」を公開。

コード例

PyMilvus (MilvusClient) によるベクトル検索(概念例)

from pymilvus import MilvusClient

client = MilvusClient(uri="http://localhost:19530")
client.create_collection(collection_name="demo", dimension=3)

client.insert(collection_name="demo", data=[{"id": 1, "vector": [0.1, 0.2, 0.3]}])

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

利点

  • 分散アーキテクチャにより数十億件規模のベクトルデータをスケールして扱える
  • 複数のインデックス手法を用途に応じて選択できる
  • LF AI & Data Foundationのプロジェクトとして、ベンダー中立なガバナンスのもとで開発されている

欠点

  • 分散構成での運用には、クラスタ管理の知識やインフラコストが必要になる
  • 小規模な用途では構成の複雑さが過剰になる場合がある
  • コンポーネント数が多い分散構成のため、単一ノードでの簡易的な利用にはやや大掛かりな構成になる

比較

  • ベクトルデータベースMilvusは大規模分散処理に重点を置くオープンソースのベクトルデータベースの1つ
  • Weaviateいずれも大規模なベクトルデータを扱えるオープンソース製品だが、Milvusは分散処理によるスケールを、Weaviateはハイブリッド検索とスキーマ定義を重視する
  • QdrantMilvusが大規模分散処理に重点を置くのに対し、QdrantはRust実装による高速な検索性能とメタデータフィルタリングを特徴とする

関連用語

ベクトルデータベースHNSWEmbeddingWeaviateQdrant

よくある質問

Milvusはどの程度の規模のデータに対応する?

分散アーキテクチャにより、数十億件規模のベクトルデータを扱えるよう設計されている。

Milvusの開発元は?

Zilliz社が開発し、LF AI & Data Foundationのオープンソースプロジェクトとしても提供されている。

参考文献