milvus: とは何なのか、どのような問題を解決し、なぜ注目を集めているのか

milvus: とは何なのか、どのような問題を解決し、なぜ注目を集めているのか

解決する問題

Milvusは、テキスト、画像、マルチモーダル情報などの膨大な量の非構造化データを整理・検索するために設計された、高性能なベクトルデータベースです。AIアプリケーションにおけるベクトル検索のスケーラビリティの課題を解決し、開発者が数十億のベクトルと数万件のクエリを高い可用性で扱うことを可能にします。

仕組み

GoとC++で記述されたMilvusは、計算とストレージを分離する分散型K8sネイティブアーキテクチャを採用しています。これにより、読み取り用のクエリノードや書き込み用のデータノードを個別に増やすことで、水平スケーリングが可能です。HNSW、IVF、DiskANNなどの様々なベクトルインデックスタイプをサポートし、CPUとGPUの両方でハードウェアアクセラレーションを活用して検索パフォーマンスを最適化します。さらに、セマンティック検索用の密ベクトル(dense vectors)と全文検索(BM25)用の疎ベクトル(sparse vectors)を組み合わせたハイブリッド検索アプローチをサポートしています。

対象ユーザー

Retrieval-Augmented Generation (RAG) システム、画像・テキスト検索エンジン、レコメンデーションシステムなどのミッションクリティカルなアプリケーションを作成するAI開発者や企業向けに構築されています。

ハイライト

  • 分散スケーラビリティ: 計算とストレージを分離し、Kubernetes上で水平スケーリングを実現します。
  • ハードウェアアクセラレーション: 最高クラスの検索パフォーマンスを実現するために、CPU/GPUアクセラレーションを実装しています。
  • ハイブリッド検索: セマンティック検索と全文検索を組み合わせた、密ベクトルと疎ベクトルの両方をネイティブにサポートしています。
  • 柔軟なストレージ: パフォーマンスとコストのバランスをとるためのホット/コールドストレージメカニズムを備えています。
  • エンタープライズセキュリティ: 必須の認証、TLS暗号化、およびロールベースのアクセス制御 (RBAC) を含んでいます。

Sources