Milvusのバージョンは?
ベクトル検索技術を活用したプロジェクトを成功させるためには、Milvusの適切なバージョンを選択することが何よりも重要です。Milvusのバージョンは様々な要件に合わせて調整されているため、正しいバージョンを選択することの重要性を理解することは、望ましい結果を得るために非常に重要です。
Milvusの適切なバージョンは、開発者の迅速な学習とプロトタイプ作成、リソース利用の最適化、開発作業の効率化、既存のインフラやツールとの互換性の確保に役立ちます。最終的には、開発者の生産性を維持し、効率性、信頼性、ユーザー満足度を向上させることになります。
利用可能なMilvusのバージョン
Milvusは開発者向けに3つのバージョンが提供されており、いずれもオープンソースである。その3つのバージョンとは、Milvus Lite、Milvus Standalone、Milvus Clusterであり、それぞれ機能や短期的・長期的なMilvusの利用方法が異なる。では、これらを個別に探ってみよう。
Milvus Lite
その名の通り、Milvus LiteはGoogle ColabやJupyter Notebookとシームレスに統合できる軽量版である。追加の依存関係を持たない単一のバイナリとしてパッケージ化されているため、マシンへのインストールや実行、Pythonアプリケーションへの組み込みが容易です。さらに、Milvus LiteにはCLIベースのMilvusスタンドアロンサーバーが含まれており、あなたのマシン上でMilvusを直接実行するための柔軟性を提供します。Pythonコードに組み込むか、スタンドアロンサーバーとして利用するかは、お客様の好みと特定のアプリケーション要件次第です。
特徴と機能
Milvus Liteには、Milvusのコアとなるベクトル検索機能が全て含まれています。
検索機能メタデータフィルタリングを含むトップk検索、範囲検索、ハイブリッド検索をサポートし、多様な検索要件に対応します。
インデックスタイプと類似度メトリック11種類のインデックスタイプと5種類の類似度メトリクスをサポートし、特定のユースケースに対応する柔軟性とカスタマイズオプションを提供します。
データ処理:バッチ処理(Apache Parquet、Arrays、JSON)およびストリーム処理が可能で、Airbyte、Apache Kafka、Apache Sparkのコネクターを通じてシームレスに統合できます。
CRUDオペレーション:完全なCRUDサポート(create、read、update/upsert、delete)を提供し、包括的なデータ管理機能をユーザーに提供します。
用途と制限
Milvus Liteは、迅速なプロトタイピングやローカル開発に理想的であり、小規模なデータセットの迅速なセットアップや実験が可能です。しかし、より大規模なデータセットや、より厳しいインフラ要件が要求される本番環境に移行する際には、その限界が明らかになります。そのため、Milvus Liteは初期の調査やテストには最適なツールですが、大量のアプリケーションや本番環境でのアプリケーションの展開には適していないかもしれません。
利用可能なリソース
Milvusスタンドアロン
Milvusには2つの運用モードがあります:スタンドアロンとクラスタです。どちらのモードもコアとなるベクターデータベースの機能は同じで、データサイズのサポートとスケーラビリティ要件が異なります。この違いにより、お客様のデータセットサイズ、トラフィック量、その他本番稼動に必要なインフラ要件に最適なモードを選択することができます。
Milvusスタンドアロンとは、Milvusベクトルデータベースシステムがクラスタリングや分散セットアップを行うことなく、単一のインスタンスとして独立して動作するモードです。Milvusはこのモードでは単一のサーバーまたはマシン上で動作し、インデックス作成やベクトル検索などの機能を提供します。データやトラフィックの規模が比較的小さく、クラスタ構成による分散機能を必要としない場合に適しています。
特徴と機能
高性能:膨大なデータセット(数十億以上)のベクトル検索を卓越したスピードと効率で実行します。
検索機能:メタデータのフィルタリングを含むトップk検索、範囲検索、ハイブリッド検索をサポートし、多様な検索要件に対応します。
インデックスタイプと類似度メトリクス:11種類のインデックスタイプと5種類の類似度メトリクスをサポートし、特定のユースケースに対応する柔軟性とカスタマイズオプションを提供します。
データ処理:バッチ処理(Apache Parquet、Arrays、Json)とストリーム処理の両方が可能で、Airbyte、Apache Kafka、Apache Sparkのコネクターを通じてシームレスに統合できます。
データのレプリケーションとフェイルオーバー:組み込みのレプリケーションとフェイルオーバー/フェイルバック機能により、中断や障害時でもデータの整合性とアプリケーションの可用性を確保します。
スケーラビリティ:コンポーネントレベルのスケーリングにより動的なスケーラビリティを実現し、需要に応じたシームレスなスケールアップとスケールダウンを可能にします。Milvusはコンポーネントレベルでオートスケールが可能で、リソース割り当てを最適化し、効率を高めます。
マルチテナンシー:クラスタ内で最大10,000のコレクション/パーティションを管理できるマルチテナンシーをサポートし、異なるユーザやアプリケーションに対して効率的なリソース利用と分離を提供します。
CRUDオペレーション:完全なCRUDサポート(作成、読み取り、更新/アップサート、削除)を提供し、ユーザーに包括的なデータ管理機能を提供します。
必須コンポーネント
milvus:中核となる機能コンポーネント。
etcdMilvusの内部コンポーネント(プロキシ、インデックスノードなど)からのメタデータへのアクセスと保存を担当するメタデータエンジン。
MinIO:Milvus内のデータ永続化を担うストレージエンジン。
図1: Milvusスタンドアロンアーキテクチャ
利用可能なリソース
Milvusクラスタ
Milvusクラスタとは、Milvusベクトルデータベースシステムが複数のノードやサーバに分散して動作するモードです。このモードでは、Milvusインスタンスはクラスタ化され、スタンドアロンのセットアップと比較して、より大容量のデータと高いトラフィック負荷を処理できる統合システムを形成します。Milvus Clusterはスケーラビリティ、フォールトトレランス、ロードバランシング機能を備えており、ビッグデータの処理や多数の同時クエリを効率的に処理する必要があるシナリオに適しています。
特徴と機能
高性能ベクトル検索、複数のインデックスタイプと類似度メトリックのサポート、バッチおよびストリーム処理フレームワークとのシームレスな統合など、Milvus Standaloneで利用可能なすべての機能を継承。
複数のノードにまたがる分散コンピューティングとロードバランシングを活用することで、比類のない可用性、パフォーマンス、コストの最適化を実現。
クラスタ全体のリソースを効率的に活用し、ワークロードの需要に基づいてリソースの割り当てを最適化することで、総コストを抑えながらセキュアでエンタープライズグレードのワークロードを展開および拡張できます。
必須コンポーネント
Milvus Clusterには、8つのマイクロサービスコンポーネントと3つのサードパーティ依存コンポーネントが含まれています。すべてのマイクロサービスは互いに独立してKubernetes上にデプロイできます。
マイクロサービスコンポーネント
ルートコーディネーション
プロキシ
クエリコーデック
クエリノード
インデックス・ノード
インデックス・ノード
データ・ノード
データノード
サードパーティ依存
etcd:クラスタ内のさまざまなコンポーネントのメタデータを格納します。
MinIO:インデックスやバイナリ・ログ・ファイルなど、クラスタ内の大容量ファイルのデータ永続化を担当。
Pulsar:パルサー:最近の変異操作のログを管理し、ストリーミング・ログを出力し、ログ・パブリッシュ・サブスクライブ・サービスを提供する。
図2: Milvusクラスタアーキテクチャ
利用可能なリソース
ドキュメント|始め方
Milvusバージョンの決定
プロジェクトに使用するMilvusのバージョンを決定する際には、データセットのサイズ、トラフィック量、スケーラビリティ要件、本番環境の制約などの要素を考慮する必要があります。Milvus Liteはラップトップでのプロトタイピングに最適です。Milvus Standaloneは、データセットに対してベクトル検索を行うための高いパフォーマンスと柔軟性を提供し、小規模なデプロイメント、CI/CD、Kubernetesをサポートしていないオフラインのデプロイメントに適しています...そして最後に、Milvus Clusterは、エンタープライズグレードのワークロードに対して比類のない可用性、スケーラビリティ、コストの最適化を提供し、大規模で可用性の高い本番環境に適した選択肢となります。
もう1つ、手間のかからないバージョンがあり、それはZilliz Cloudと呼ばれるMilvusのマネージド・バージョンだ。
最終的には、Milvusのバージョンは、特定のユースケース、インフラ要件、および長期的な目標によって異なります。これらの要素を慎重に評価し、各バージョンの特徴と能力を理解することで、プロジェクトのニーズと目的に沿った情報に基づいた決定を下すことができます。MilvusスタンドアロンまたはMilvusクラスタのいずれを選択しても、ベクトルデータベースのパワーを活用してAIアプリケーションのパフォーマンスと効率を向上させることができます。
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word