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はハイブリッド検索とスキーマ定義を重視する
- Qdrant — Milvusが大規模分散処理に重点を置くのに対し、QdrantはRust実装による高速な検索性能とメタデータフィルタリングを特徴とする
関連用語
よくある質問
Milvusはどの程度の規模のデータに対応する?
分散アーキテクチャにより、数十億件規模のベクトルデータを扱えるよう設計されている。
Milvusの開発元は?
Zilliz社が開発し、LF AI & Data Foundationのオープンソースプロジェクトとしても提供されている。
参考文献
- Official WebsiteMilvus
- GitHubmilvus-io/milvus