SingleStoreとMilvusの比較 AIアプリケーションに適したベクターデータベースの選択
ベクターデータベースとは?
SingleStoreとMilvusを比較する前に、まずベクターデータベースの概念について説明します;
ベクトルデータベース](https://zilliz.com/learn/what-is-vector-database)は高次元のベクトルを格納し、クエリするために特別に設計されたデータベースです。これらのベクトルは、テキストの意味、画像の視覚的特徴、または製品の属性などの複雑な情報をエンコードします。効率的な類似検索を可能にすることで、ベクトルデータベースはAIアプリケーションにおいて極めて重要な役割を果たし、より高度なデータ分析と検索を可能にしている。
ベクトルデータベースの一般的なユースケースには、電子商取引の商品推奨、コンテンツ発見プラットフォーム、サイバーセキュリティにおける異常検知、医療画像分析、自然言語処理(NLP)タスクなどがある。また、AI幻覚のような問題を軽減するために、外部知識を提供することによって大規模言語モデル(LLMs)の性能を向上させる技術であるRAG(Retrieval Augmented Generation) において重要な役割を果たす。
市場には、以下のような多くの種類のベクトル・データベースがある:
- Milvus](https://zilliz.com/what-is-milvus)、Zilliz Cloud(フルマネージドMilvus)など。
- Faiss](https://zilliz.com/learn/faiss)やAnnoyのようなベクトル検索ライブラリ。
- Chroma](https://zilliz.com/blog/milvus-vs-chroma)やMilvus Liteのような軽量ベクトルデータベース。
- 小規模なベクトル検索が可能なベクトル検索アドオンを備えた従来のデータベース**。
SingleStoreは、分散、リレーショナル、SQLデータベース管理システムである。Faissは、効率的なベクトル検索のために構築されたオープンソースの軽量ライブラリです。この記事では、それらのベクトル検索機能を比較する。
SingleStore:概要とコアテクノロジー
SingleStoreは、データベース自体にベクター検索機能を搭載することで、ベクター検索を可能にしました。ベクターは通常のデータベーステーブルに格納され、標準的なSQLクエリで検索することができます。例えば、価格帯でフィルタリングしながら類似の商品画像を検索したり、特定の部門に結果を限定しながらドキュメントの埋め込みを検索したりすることができます。システムは、ベクトルインデックスにFLAT、IVF_FLAT、IVF_PQ、IVF_PQFS、HNSW_FLAT、HNSW_PQを、類似性マッチングにドット積とユークリッド距離を使用したセマンティック検索の両方をサポートしている。これは、推薦システム、画像認識、AIチャットボットなど、類似性マッチングが高速なアプリケーションに超便利である。
SingleStoreの中核は、パフォーマンスとスケールのために構築されている。データベースは複数のノードにデータを分散させるので、大規模なベクトルデータ操作に対応できます。データが大きくなっても、ノードを追加すれば問題ありません。クエリプロセッサーはベクトル検索とSQLオペレーションを組み合わせることができるので、複数のクエリを別々に実行する必要がありません。ベクターのみのデータベースとは異なり、SingleStoreはこれらの機能を完全なデータベースの一部として提供するため、複数のシステムを管理したり、複雑なデータ転送に対応したりすることなく、AI機能を構築することができます。
SingleStoreのベクトルインデックスには2つのオプションがあります。1つ目は厳密なk-最近傍(kNN)検索で、クエリベクトルに最も近いk個の近傍集合を正確に見つけます。しかし、非常に大きなデータセットや高い同時実行性の場合、SingleStoreはベクトルインデックスを使用した近似最近傍(ANN)検索もサポートします。ANN検索は、厳密なkNN検索よりもはるかに高速にk近傍を見つけることができます。速度と精度はトレードオフの関係にあり、ANNは高速ですが、正確なk個の最近傍セットを返すとは限りません。インタラクティブな応答時間が必要で、絶対的な精度を必要としない数十億のベクトルを扱うアプリケーションには、ANN検索が適しています。
SingleStoreにおけるベクトルインデックスの技術的実装には特別な要件があります。これらのインデックスはカラムストアテーブルにのみ作成可能で、ベクトルデータを格納する単一のカラムに作成する必要があります。システムは現在Vector Type(dimensions[, F32])フォーマットをサポートしており、F32は唯一サポートされている要素タイプです。この構造化されたアプローチにより、SingleStoreは大規模な言語モデルからのベクトルを使用した意味検索、焦点を絞ったテキスト生成のためのRAG(retrieval-augmented generation)、ベクトル埋め込みに基づく画像マッチングなどのアプリケーションに最適です。これらを従来のデータベース機能と組み合わせることで、SingleStoreは開発者がパフォーマンスとスケールを維持しながら、SQL構文を使用して複雑なAIアプリケーションを構築することを可能にします。
Milvus ベクターデータベースの概要
Milvus](https://zilliz.com/what-is-milvus)はオープンソースのベクトルデータベースで、ベクトル検索と類似検索を中核としてゼロから設計されています。億単位での高い性能と水平スケーラビリティを持ち、ラップトップから大規模分散システムまで幅広い環境で効率的に動作します。Milvusはオープンソースソフトウェアとしても、クラウドサービス(Zilliz Cloud)としても利用可能です。
Milvusは、HNSW (Hierarchical Navigable Small World)、IVF (Inverted File)、 DiskANN、 CAGRAなど、少なくとも11種類のインデックス作成方法をサポートしており、大量のデータを迅速に検索することができる。Cassandraとは異なり、Milvusは汎用データベースではなく、非構造化データとベクトルの類似性検索に特化したツールであり、より特化したソリューションとなっている。
MilvusはLF AI & Data Foundationの一部であり、Apache 2.0の下でライセンスされている。貢献者の多くはハイパフォーマンス・コンピューティング(HPC)の専門家であり、大規模システムの構築と最適化の経歴を持つ。主な貢献者には、Zilliz、ARM、NVIDIA、AMD、Intel、Meta、IBM、Salesforce、Microsoftなどの企業の専門家が含まれます。
Milvusには3つの導入オプションがあります:Milvus Lite、スタンドアロン、分散](https://milvus.io/docs/install-overview.md).。
- Milvus Lite](https://milvus.io/blog/introducing-milvus-lite.md)**はPythonライブラリであり、Milvusの超軽量バージョンです。Pythonやノートブック環境でのラピッドプロトタイピングや小規模なローカル実験に最適です;
- MilvusスタンドアロンはMilvusのシングルノード展開オプションで、クライアントサーバモデルを使用します。MilvusはMySQLに相当し、Milvus LiteはSQLiteに相当します;
- Milvus Distributed**はMilvusの分散モードで、大規模なベクターデータベースシステムやベクターデータプラットフォームを構築する企業ユーザに最適です。
主な違い
検索方法
SingleStore:正確なk-最近傍探索(kNN)検索と近似最近傍探索(ANN)検索の両方を提供。厳密なkNN検索はより正確な検索が可能ですが、ANN検索は大規模なデータセットに対してより高速なクエリを提供します。SingleStoreは、複数のANNメソッド(例:IVF_FLAT、IVF_PQ、HNSW_PQ)をサポートしているため、従来のSQLクエリとベクトル検索を組み合わせたハイブリッドなワークロードに汎用性があります。
Milvus:HNSW、IVF、DiskANN、CAGRAを含む11以上のインデックス作成方法を広範にサポートするベクトル類似性検索に特化。これらのインデックスはパフォーマンスと柔軟性のために最適化されており、Milvusは多様なベクトル検索シナリオを大規模に扱うことができる。そのインデックスオプションにより、高い設定可能性を必要とする純粋なベクトル検索タスクに最適です。MilvusはkNN、ANN、範囲検索、全文検索、ハイブリッド検索もサポートしており、より多様な検索クエリに対応し、最も関連性の高い検索結果を見つけることができます。
データハンドリング
シングルストア:ベクトルデータを汎用のリレーショナルデータベースに統合し、構造化データおよび半構造化デー タと一緒に列ストアテーブルにベクトルを格納します。このセットアップにより、標準的な SQL クエリによるシームレスなフィルタリングと集計が可能になり、構造化メタデータと非構造化ベクターデータを組み合わせるアプリケーションに最適です。
Milvus:非構造化データに特化しているため、画像認識、文書検索、推薦システムなどのユースケースに適している。構造化データに大きく依存しないベクトル主体のデータセットを扱う場合、Milvusはよりカスタマイズされたソリューションを提供する。
スケーラビリティとパフォーマンス
SingleStore:複数のノードにデータを分散することで、水平方向に拡張できます。また、SQL クエリプロセッサーはベクトル検索と標準的なデータベース操作を効率的に統合します。ただし、ベクトル機能はより広範なデータベースシステムの一部であるため、純粋なベクトルワークロードにはオーバーヘッドが発生する可能性があります。
Milvus:水平スケーラビリティを中核機能として、億規模のベクトル検索用に設計されている。分散モードにより、大規模展開でも高いパフォーマンスを発揮する。Milvusのアーキテクチャは、ベクトル検索が主要なワークロードとなるシナリオに最適化されており、このようなユースケースにおいてより低いレイテンシーと優れた効率を実現する。
柔軟性とカスタマイズ性
SingleStore:ベクトル検索と SQL 操作を柔軟に組み合わせることができます。ただし、ベクトル・インデックス作成は特定の構成(F32 要素タイプ、カラムストア・ テーブルの単一カラム・ベクトルなど)に限定されます。この構造化されたアプローチは、従来のデータベース機能との緊密な統合を必要とするアプリケーションに適しています。
Milvus:Milvus**:インデックス作成、検索パラメータ、および展開モードに関する広範なカスタマイズを提供します。組み込み環境用のMilvus Lite、ローカル実験用のMilvus Standalone、大規模環境用のDistributed Milvusなどのオプションにより、幅広いワークフローに対応する。
統合とエコシステム
**シングルストア標準的な SQL ベースのツールやワークフローとの統合に優れており、開発者は急な学習カーブを経ずに使い慣れたテクノロジーを使用できる。AIやアナリティクス・ツールとの互換性により、ハイブリッド・アプリケーションでの有用性が高まる。
Milvus:AIや機械学習のエコシステムとの統合に重点を置いている。モデルの埋め込みをサポートし、検索拡張世代(RAG)パイプラインや高密度ベクトル処理を必要とするアプリケーションに適している。オープンソースであるため、開発者は特定のニーズに合わせて拡張したり適応させたりすることができる。
使いやすさ
**シングルストアSQL のシンプルさとベクトル機能を組み合わせることで、リレーショナル・データベースに慣れ親しんだ開発者にも利用しやすくなっています。しかし、ベクトル処理に対する構造化アプローチは、非構造化データを多用するワークロードには調整が必要かもしれない。
Milvus:Milvus**:ゼロからベクトル検索用に設計されており、より特殊なエクスペリエンスを提供する。分散モードは複雑さをもたらすが、スタンドアロンとライトバージョンは実験と小規模なデプロイを簡素化する。
コストに関する考慮事項
SingleStore:ベクター検索を完全なデータベースに統合することで、SingleStore は複数のシス テムの必要性を減らし、運用コストを削減できる可能性があります。しかし、汎用データベースとしての価格設定には、ベクターに特化したワークロードには不要な機能が含まれている可能性があります。
Milvus:オープンソースのMilvusは、Zilliz Cloudのようなマネージドサービスに柔軟に拡張でき、コスト効率の良いエントリーポイントを提供する。ベクター検索に特化しているため、必要な機能にのみ料金を支払うことができる。
セキュリティ機能
**シングルストア暗号化、認証、アクセス制御など、エンタープライズグレードの強固なセキュリティ機能を提供。包括的なデータベース機能により、厳格なコンプライアンスを必要とするアプリケーションに最適です。
Milvus:Milvus**:セキュリティ機能は利用可能だが、その詳細は導入モデル(スタンドアロンかクラウドかなど)に依存する。エンタープライズユースの場合、Zilliz Cloudは強化されたセキュリティ機能を提供する。
結論
あなたのユースケースとエコシステムに基づいて選んでください:
構造化データ処理とベクトル検索を組み合わせたハイブリッド・ソリューションが必要ならSingleStore。SQLとベクトル検索を併用する必要があるeコマースや企業分析に適している。
Milvus大規模な非構造化データやAIワークロードに最適化されたベクトルデータベースが必要な場合。レコメンデーション・エンジンや検索拡張生成システムなど、類似検索に大きく依存するプロジェクトに適している。
Milvusはベクトル中心で、開発者に優しく、スケーラブルです。SingleStoreは、構造化データとベクトルを1つのシステムで管理します。
これを読めばSingleStoreとMilvusの概要がわかるが、これらを評価するには、ユースケースに基づいて評価する必要がある。それに役立つツールの一つが、ベクターデータベースの比較のためのオープンソースのベンチマークツールであるVectorDBBenchです。最終的には、独自のデータセットとクエリパターンを使って徹底的なベンチマークを行うことが、分散データベースシステムにおけるベクトル検索に対する、強力だが異なるこれら2つのアプローチのどちらを選ぶかを決める鍵となるだろう。
オープンソースのVectorDBBenchを使ってベクトルデータベースを評価・比較する
VectorDBBenchは、高性能なデータ保存・検索システム、特にベクトルデータベースを必要とするユーザーのためのオープンソースのベンチマークツールです。このツールにより、ユーザはMilvusやZilliz Cloud(マネージドMilvus)のような異なるベクトルデータベースシステムを独自のデータセットを使ってテストし比較し、自分のユースケースに合うものを見つけることができます。VectorDBBenchを使えば、ユーザーはマーケティング上の主張や伝聞ではなく、実際のベクターデータベースのパフォーマンスに基づいて決定を下すことができます。
VectorDBBenchはPythonで書かれており、MITオープンソースライセンスの下でライセンスされています。VectorDBBenchは、その機能と性能の改善に取り組む開発者のコミュニティによって活発にメンテナンスされています。
VectorDBBenchをGitHubリポジトリ**からダウンロードして、我々のベンチマーク結果を再現したり、あなた自身のデータセットでパフォーマンス結果を得てください。
VectorDBBench Leaderboard](https://zilliz.com/vector-database-benchmark-tool?database=ZillizCloud%2CMilvus%2CElasticCloud%2CPgVector%2CPinecone%2CQdrantCloud%2CWeaviateCloud&dataset=medium&filter=none%2Clow%2Chigh&tab=1)で、主流のベクトルデータベースの性能を簡単に見てみましょう。
ベクターデータベースの評価については、以下のブログをお読みください。
- ベンチマーク・ベクター・データベースのパフォーマンス:テクニックと洞察](https://zilliz.com/learn/benchmark-vector-database-performance-techniques-and-insights)
- VectorDBBench: Open-Source Vector Database Benchmark Tool](https://zilliz.com/learn/open-source-vector-database-benchmarking-your-way)
- ベクターデータベースを他のデータベースと比較する](https://zilliz.com/comparison)
VectorDB、GenAI、MLに関するその他のリソース
- ジェネレーティブAIリソースハブ|Zilliz](https://zilliz.com/learn/generative-ai)
- あなたのGenAIアプリのためのトップパフォーマンスAIモデル|Zilliz](https://zilliz.com/ai-models)
- RAGとは](https://zilliz.com/learn/Retrieval-Augmented-Generation)
- 大規模言語モデル(LLM)を学ぶ](https://zilliz.com/learn/ChatGPT-Vector-Database-Prompt-as-code)
- ベクトルデータベース101](https://zilliz.com/learn/what-is-vector-database)
- 自然言語処理(NLP)](https://zilliz.com/learn/introduction-to-natural-language-processing-tokens-ngrams-bag-of-words-models)
読み続けて

Why and How to Migrate from Self-Hosted Milvus to Zilliz Cloud
A simple, step-by-step guide to migrating from Milvus to Zilliz Cloud. Learn both endpoint and backup methods for a smooth, scalable vector database migration.

Announcing the General Availability of Single Sign-On (SSO) on Zilliz Cloud
SSO is GA on Zilliz Cloud, delivering the enterprise-grade identity management capabilities your teams need to deploy vectorDB with confidence.

Similarity Metrics for Vector Search
Exploring five similarity metrics for vector search: L2 or Euclidean distance, cosine distance, inner product, and hamming distance.
The Definitive Guide to Choosing a Vector Database
Overwhelmed by all the options? Learn key features to look for & how to evaluate with your own data. Choose with confidence.


