このプロジェクトについて
MilvusはGoおよびC++で記述された分散ベクトルデータベースであり、テキスト、画像、マルチモーダル情報を含む膨大な量の非構造化データの効率的な整理と検索を可能にします。高いスケーラビリティと可用性を実現するように設計されており、コンピューティングとストレージを分離したK8sネイティブアーキテクチャを採用することで、独立した水平スケーリングが可能です。
主な機能は以下の通りです:
- ベクトル検索とインデックス作成:HNSW、IVF、FLAT、SCANN、DiskANNなどの複数のインデックスタイプをサポートし、CPUおよびGPU(NVIDIA CAGRAを含む)の両方でハードウェア加速が可能です。
- ハイブリッド検索:セマンティック検索用の密ベクトル(dense vectors)と、全文検索(BM25、SPLADE、BGE-M3)用の疎ベクトル(sparse vectors)の両方をネイティブにサポートし、リランクされたハイブリッド結果を提供します。
- データ管理:マルチテナンシーの分離、コスト効率を高めるホット/コールドストレージメカニズム、およびメタデータフィルタリング用のスカラーデータ型(整数、文字列、JSON)をサポートしています。
- セキュリティ:強制的なユーザー認証、TLS暗号化、およびロールベースのアクセス制御(RBAC)を実装しています。
- デプロイオプション:分散クラスター、スタンドアロンのDockerデプロイ、または軽量なPythonバージョン(Milvus Lite)として利用可能です。
Milvusは、LangChain、LlamaIndex、OpenAI、HuggingFaceなどの人気のあるAIフレームワークと統合されており、データの取り込みとクエリのためのPython SDK(pymilvus)を提供しています。