• Milvusについて
  • はじめに
  • 概念
  • ユーザーガイド
  • データのインポート
  • AIツール
  • 管理ガイド
  • ツール
  • 連携機能
  • チュートリアル
  • よくある質問
  • API Reference

Milvusの導入オプションの概要

Milvusは、高性能かつスケーラブルなベクトルデータベースです。Jupyter Notebook上でローカルに実行するデモから、数百億のベクトルを処理する大規模なKubernetesクラスターまで、幅広い規模のユースケースに対応しています。現在、Milvusには「Milvus Lite」、「Milvus Standalone」、「Milvus Distributed」の3つのデプロイメントオプションがあります。

Milvus Lite

Milvus Liteは、アプリケーションにインポートできるPythonライブラリです。Milvusの軽量版として、Jupyter Notebookでの迅速なプロトタイピングや、リソースが限られたスマートデバイス上での実行に最適です。 Milvus Liteは、他のMilvusデプロイメントと同じAPIをサポートしています。Milvus Liteと連携するクライアント側のコードは、他のデプロイメントモードのMilvusインスタンスでも動作します。

Milvus Liteをアプリケーションに統合するには、pip install pymilvus を実行してインストールし、MilvusClient("./demo.db") ステートメントを使用して、すべてのデータを永続化するローカルファイルを持つベクトルデータベースをインスタンス化します。詳細については、「Milvus Liteの実行」を参照してください。

Milvus Standalone

Milvus Standalone は、単一マシンでのサーバー展開です。Milvus Standalone のすべてのコンポーネントは単一のDocker イメージにパッケージ化されており、展開が容易です。 本番環境のワークロードがあるものの、Kubernetesの使用を避けたい場合は、十分なメモリを備えた単一のマシン上でMilvus Standaloneを実行するのが良い選択肢です。デフォルトでは、Milvus StandaloneはメッセージキューとしてWoodpecker(組み込み)を実行するため、別途メッセージングサービスを運用する必要はありません。

Milvus Distributed

Milvus Distributedは、Kubernetesクラスタ上にデプロイ可能です。このデプロイ方式はクラウドネイティブなアーキテクチャを採用しており、データ取り込み負荷と検索クエリが分離されたノードによって個別に処理されるため、重要なコンポーネントの冗長性を確保できます。最高のスケーラビリティと可用性を提供するとともに、各コンポーネントに割り当てるリソースを柔軟にカスタマイズすることも可能です。 Milvus Distributedは、本番環境で大規模なベクトル検索システムを運用するエンタープライズユーザーにとって最適な選択肢です。デフォルトでは、Milvus DistributedはメッセージキューとしてWoodpeckerを実行し、Milvusと並行して専用サービスとしてデプロイされます。

ユースケースに適したデプロイメントを選択する

デプロイモードの選択は、通常、アプリケーションの開発段階によって異なります:

  • 迅速なプロトタイピングの場合

    プロトタイプとして、あるいは学習目的で迅速に何かを構築したい場合(例:Retrieval Augmented Generation(RAG)のデモ、AIチャットボット、マルチモーダリティ検索など)、Milvus Lite単体、またはMilvus LiteとMilvus Standaloneの組み合わせが適しています。 Milvus Liteをノートブックで使用して迅速なプロトタイピングを行い、RAGにおけるさまざまなチャンキング戦略など、多様なアプローチを検証できます。Milvus Liteで構築したアプリケーションを小規模な本番環境でデプロイして実際のユーザーにサービスを提供したり、数百万ベクトルを超えるような大規模なデータセットでアイデアの検証を行いたい場合は、Milvus Standaloneが適しています。 すべてのMilvusデプロイメントはクライアント側のAPIが共通であるため、Milvus Liteのアプリケーションロジックは引き続き共有可能です。また、Milvus Liteに保存されたデータは、コマンドラインツールを使用してMilvus Standaloneに移行することもできます。

  • 小規模な本番環境へのデプロイ

    プロジェクトがまだプロダクト・マーケット・フィットを模索している初期段階の本番環境において、スケーラビリティよりも俊敏性が重視される場合は、Milvus Standaloneが最適な選択肢となります。十分なマシンリソースがあれば、最大1億ベクトルまでスケールアップが可能であり、K8sクラスターの維持管理に比べてDevOpsの負担も大幅に軽減されます。

  • 大規模な本番環境への導入

    ビジネスの急速な成長に伴い、データ規模が単一サーバーの容量を超えるようになったら、Milvus Distributedの導入を検討すべき時期です。開発環境やステージング環境では、利便性の高さから引き続きMilvus Standaloneを使用しつつ、Milvus Distributedを実行するK8sクラスターを運用することができます。 これにより、数百億ベクトル規模まで対応できるだけでなく、読み取りが頻繁で書き込みが稀なケースや、書き込みが頻繁で読み取りが稀なケースなど、特定のワークロードに合わせてノードサイズを柔軟に調整することも可能です。

  • エッジデバイスでのローカル検索

    エッジデバイス上のプライベートなデータや機密情報を検索する場合、クラウドベースのサービスに依存することなく、デバイス上にMilvus Liteをデプロイしてテキストや画像の検索を行うことができます。これは、独自のドキュメント検索や、デバイス上での物体検出などのケースに適しています。

Milvusの導入モードの選択は、プロジェクトの段階や規模によって異なります。Milvusは、迅速なプロトタイピングから大規模なエンタープライズ導入まで、さまざまなニーズに対応する柔軟かつ強力なソリューションを提供します。

  • Milvus Liteは、数百万ベクトルまでの小規模なデータセットに推奨されます。
  • Milvus Standaloneは、最大1億ベクトルまで拡張可能な中規模のデータセットに適しています。
  • Milvus Distributedは、1億から数百億ベクトル規模のデータセットを処理できる大規模な導入向けに設計されています。

導入モードにかかわらず、すべてのMilvusインスタンスは、メッセージキュー、オブジェクトストレージ、およびメタデータストア(デフォルトではWoodpeckerMinIOetcd)に依存しています。これらの依存関係について確認したり、調整したり、外部サービスを接続したりするには、「データインフラストラクチャ」を参照してください。

Select deployment option for your use case ユースケースに応じたデプロイオプションを選択してください

機能の比較

機能Milvus LiteMilvus StandaloneMilvus Distributed
SDK / クライアントライブラリPython
gRPC
Python
Go
Java
Node.js
C#
RESTful
Python
Java
Go
Node.js
C#
RESTful
データ型密ベクトル
疎ベクトル
バイナリベクトル
ブール値
整数
浮動小数点
VarChar
配列
JSON
密ベクトル
疎ベクトル
バイナリベクトル
ブール値
整数
浮動小数点数
VarChar
配列
JSON
密ベクトル
疎ベクトル
バイナリベクトル
ブール値
整数
浮動小数点数
VarChar
配列
JSON
検索機能ベクトル検索(ANN 検索)
メタデータフィルタリング
範囲検索
スカラークエリ
主キーによるエンティティの取得
ハイブリッド検索
ベクトル検索(ANN検索)
メタデータフィルタリング
範囲検索
スカラークエリ
主キーによるエンティティの取得
ハイブリッド検索
ベクトル検索(ANN検索)
メタデータフィルタリング
範囲検索
スカラークエリ
主キーによるエンティティの取得
ハイブリッド検索
CRUD操作✔️✔️✔️
高度なデータ管理該当なしアクセス制御
パーティション
パーティションキー
アクセス制御
パーティション
パーティションキー
物理リソースのグループ化
一貫性レベル強力Strong
Bounded Staleness
Session
Eventual
Strong
Bounded Staleness
Session
Eventual
メッセージキュー該当なしWoodpecker (組み込み)Woodpecker (サービス)

翻訳DeepL

マネージド Milvus を無料で試す

Zilliz Cloud は手間いらず、Milvus を基盤に 10 倍高速です。

始める
フィードバック

このページは役に立ちましたか ?