SingleStoreとMyScale AIアプリケーションに適したベクターデータベースの選択

ベクターデータベースとは?
SingleStoreとMyScaleを比較する前に、まずベクターデータベースの概念について説明します;
ベクトルデータベース](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データベース管理システムであり、MyScaleはClickHouse上に構築されたデータベースで、ベクトル検索とSQL分析を組み合わせたものである。どちらもアドオンとしてベクトル検索機能を備えている。この記事では、両者のベクトル検索機能を比較する。
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アプリケーションを構築することを可能にします。
MyScaleとは?概要とコアテクノロジー
MyScaleはオープンソースのClickHouseデータベース上に構築されたクラウドベースのデータベースで、AIや機械学習のワークロード向けに設計されている。構造化データ、ベクトルデータ、リアルタイム分析、機械学習を扱うことができる。MyScaleは時系列、ベクトル検索、全文検索に重点を置いているため、リアルタイム処理やAI主導の洞察に適している。ClickHouseアーキテクチャを使用することで、MyScaleはAI向けに高性能でスケーラブルです。
MyScaleの主な特徴の1つはネイティブSQLのサポートで、ベクトル検索、全文検索、従来のSQLクエリを1つのシステムに統合することで、AI主導のクエリを簡素化します。これにより、複数のツールの必要性を減らし、AI向けのスケーラビリティを実現している。MyScaleは、ベクトル化されたデータを操作するためのOLAPデータベース・アーキテクチャを使用して、1つのプラットフォーム上で構造化データとベクトル化データの両方の分析処理をサポートし、管理します。開発者はSQLを使用してMyScaleとやり取りできるため、リレーショナルデータベースに精通したすべてのプログラマーがアクセス可能です。
MyScaleには複数のベクトルインデックスタイプと類似度メトリクスがあり、様々なユースケースをサポートします。ユークリッド距離(L2)、内積(IP)、余弦類似度といった一般的な距離メトリクスをサポートしています。データベースには複数のインデックス作成アルゴリズムがあります:MSTG(マルチスケールツリーグラフ)、ScaNN、IVFFLAT、IVFPQ、IVFSQ、HNSWがあり、それぞれパラメータを調整することができます。MyScale独自のMSTGベクトルエンジンは、NVMe SSDを使用してデータ密度を高めているため、パフォーマンスとコストの両面で特殊なベクトルデータベースを凌駕します。
SQLデータベース、ベクトルデータベース、全文検索エンジンの機能を1つのシステムに統合することで、MyScaleはインフラとメンテナンスコストを削減します。この統合により、共同データクエリーと分析が可能になり、AIアプリケーションのための単一のデータ基盤が実現します。MyScaleはまた、LLMシステムの完全な観測性を実現するMyScale Telemetryを備えているため、効率的なモニタリングとデバッグが可能です。データがより複雑になるにつれ、MyScaleは、異なるデータタイプ間のコンピューティング・パフォーマンスと統合性を維持しながら、より新しいデータ様式とデータベース・サイズに対応できる、将来性のあるソリューションです。
主な違い
検索方法
SingleStore: k-最近傍(kNN)検索と近似最近傍(ANN)検索。ANNはスピードと精度がトレードオフの大規模データセットに最適化されており、推薦システムやセマンティック検索に適している。
MyScale:より多くのインデックス作成アルゴリズム(MSTG、ScaNN、IVFFLAT、HNSW)。MSTGベクトルエンジンはNVMe SSDを使用し、高いパフォーマンスとストレージ効率を実現。複数の距離メトリクス(ユークリッド、内積、余弦類似度)をサポート。
評:アルゴリズムの多様性とカスタマイズ性が必要なら、MyScaleの勝ち。SQL SingleStoreを使った合理的なANNとkNNにはMyScaleが適している。
データハンドリング
**シングルストア構造化および半構造化データ、列ストアテーブルに格納されたベクトル。ベクタークエリはSQLと統合されているので、埋め込みデータをリレーショナルデータでフィルタリングするようなハイブリッドな操作が可能です。
MyScale:構造化データ、半構造化データ、非構造化データ。OLAP(Online Analytical Processing)アーキテクチャにより、ベクターデータと従来のデータタイプの両方を分析処理できるため、混合ワークロードに適している。
評決MyScaleは非構造化データを扱えるため、様々なAIワークロードに対応できる。SingleStoreは、構造化・半構造化データのベクトルとSQLクエリが得意。
スケーラビリティとパフォーマンス
SingleStore:分散データストレージとクエリ処理。スケーラビリティは簡単で、ノードを追加することで容量とパフォーマンスが向上します。
MyScale:ClickHouseの系譜を受け継ぎ、リアルタイム分析およびAIワークロード向けのスケーラビリティを実現。MSTGエンジンはNVMeを使用し、コスト効率に優れた大規模データセットに対応。
評決:どちらもスケーラビリティは高いが、大規模なAIユースケースではMyScaleのNVMeアプローチの方がコストパフォーマンスに優れているかもしれない。
柔軟性とカスタマイズ性
**シングルストア従来のデータベースとの緊密な統合を必要とするアプリケーションに適している。
MyScale:MyScale**:インデックス作成アルゴリズムと距離メトリクスが増え、パフォーマンスチューニングの選択肢が増えた。
結論カスタマイズ性ではMyScaleの勝ち、シンプルさとSQLベースのワークフローではSingleStoreの勝ち。
統合とエコシステム
SingleStore:ベクター検索はリレーショナルデータベースと統合されており、開発者は追加ツールなしで完全なアプリケーションを構築できます。
MyScale:MyScale**:ベクター検索、全文検索、SQL検索が可能。MyScale Telemetry:LLMシステムのモニタリングとデバッグが可能。
結論MyScaleは将来性があり、SingleStoreは従来のデータベース・エコシステムとの統合を簡素化する。
使いやすさ
SingleStore:SQL 構文と包括的なドキュメントにより、リレーショナルデータベースに慣れ親しんだ開発者にとっては学習曲線が低い。
MyScale:インタラクションのためのSQLですが、より幅広い機能セットにより、学習曲線がやや急な場合があります。
評決:SingleStoreはSQLファーストでセットアップが簡単で、使い始めるのが少し簡単です。
コスト
**シングルストアベクター検索はデータベースの一部であるため、すでにプライマリー・データベースとして使用している場合は、インフラ・コストを節約できる可能性があります。
MyScale:効率的なストレージ(NVMe SSDなど)を使用し、機能を統一しているため、別のツールは必要ありません。
評決:AIを多用するワークロードにはMyScaleの方が長期的には良いかもしれない。シンプルさと既存システムとの統合を求めるならSingleStore。
セキュリティ
SingleStore:エンタープライズグレードの暗号化、認証、アクセス制御。
MyScale:ClickHouseのセキュリティ機能を継承し、観測可能なツールを追加していますが、暗号化レベルは検証が必要です。
評決:どちらもセキュアだが、エンタープライズグレードの機能ではSingleStoreがやや優勢。
SingleStoreを選ぶべき場合
SingleStoreは、単一のSQLベースのワークフローでベクトル検索とリレーショナルデータを組み合わせたい場合に最適です。推薦システム、AIを活用したビジネス・インテリジェンス、RAG(検索支援型生成)のように、構造化または半構造化データをベクトル埋め込みで分析する必要があるアプリケーションに適しています。分散アーキテクチャはスケーラビリティを意味し、ANN検索は大規模なデータセットで高速な結果を提供する。シンプルさを求めるなら、SingleStoreのSQLベースの設計は、複数のツールやシステムを必要としないことを意味します。
MyScaleを選ぶとき
MyScaleは、複数のデータタイプを持つワークロードや、柔軟性を必要とするAIアプリケーションに適している。MyScaleは、ベクトル検索、全文検索、リアルタイム分析機能を備えているため、大規模なAIシステムの監視、非構造化データの処理、時系列分析に最適です。MyScaleの幅広いインデックス作成アルゴリズムとメトリクスは、開発者がパフォーマンスを調整できることを意味し、NVMeに裏打ちされたアーキテクチャは、大きなデータセットを扱うための費用対効果の高い方法を意味します。スケーラビリティ、可観測性、高度なインデクシングを備えた将来性のあるプラットフォームをお望みなら、MyScaleは良い選択です。
結論
SingleStoreとMyScaleはそれぞれ得意分野が異なる。SingleStoreは、SQLを使用した構造化データによるベクトル検索の簡素化、伝統的なデータベース中心のユースケースにおける使いやすさとスケーラビリティに優れている。MyScaleは、汎用性、高度なインデックス作成、AIを多用するリアルタイム分析ユースケースでの複数データ型の取り扱いに優れている。最終的には、ユースケース、扱うデータ、パフォーマンス要件によって選択することになる。ワークロードと開発目標に合ったテクノロジーを選択しよう。
SingleStoreとMyScaleの概要についてはこちらをお読みいただきたいが、これらを評価するには、ユースケースに基づいて評価する必要がある。それに役立つツールの1つが、ベクターデータベースを比較するためのオープンソースのベンチマークツールである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)
読み続けて

Advanced RAG Techniques: Bridging Text and Visuals for More Accurate Responses
This blog explores how RAG works, RAG challenges, and advanced RAG techniques like Small to Slide RAG and ColPali.

Enabling Fine-Grained Access Control with Milvus Row-Level RBAC
Milvus offers row-level RBAC (Role-Based Access Control) which is a robust solution for managing data access with precision and efficiency.

Catch a Cute Ghost this Halloween with Milvus
Run ghastly multimodal analytics and Retrieval Augmented Generation with our "ghosts" collections in the open-source Milvus vector database.
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.