SingleStore vs Vearch AIアプリに適したベクターデータベースの選択
ベクターデータベースとは?
SingleStoreとVearchを比較する前に、まずベクターデータベースの概念について説明します;
ベクトルデータベース](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データベース管理システムで、ベクトル検索をアドオンとして備えている。この記事では、両者のベクトル検索機能を比較する。
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アプリケーションを構築することを可能にします。
Vearch** とは?概要とコアテクノロジー
Vearchは、高速で効率的な類似検索を必要とするAIアプリケーションを開発する開発者のためのツールです。超強力なデータベースのようなものだが、通常のデータを保存する代わりに、最新のAI技術の多くを支えるトリッキーなベクトル埋め込みを扱うように構築されている。
Vearchの最もクールな点は、そのハイブリッド検索だ。ベクトルによる検索(類似した画像やテキストを見つけることを想像してほしい)と、数値やテキストのような通常のデータによるフィルタリングができる。そのため、「このような商品を探す、ただし電子機器カテゴリーで500ドル以下」というような複雑な検索も可能だ。何百万ものベクトルからなるコーパスをミリ秒単位で検索できるのだ。
Vearchはニーズに応じて成長するように設計されている。クラスタのセットアップを使用し、コンピュータのチームが一緒に働くようなものだ。異なるタイプのノード(マスター、ルーター、パーティション・サーバー)があり、メタデータの管理からデータの保存や計算まで、異なるジョブを処理する。これにより、Vearchはデータの増加に合わせてスケールアウトし、信頼性を高めることができる。より多くのデータやトラフィックを処理するために、汗をかくことなくマシンを追加することができます。
開発者にとっては、Vearchは生活を容易にする素晴らしい機能をいくつか備えている。リアルタイムでインデックスにデータを追加できるので、検索結果は常に最新の状態に保たれます。複雑なデータに便利な、1つのドキュメントに複数のベクトル・フィールドをサポートする。また、Python SDKも用意されており、迅速な開発とテストが可能だ。Vearchは、インデックス作成方法(IVFPQとHNSW)に柔軟性があり、CPUとGPUの両方のバージョンをサポートしているので、特定のハードウェアやユースケースに合わせて最適化することができます。レコメンデーションシステム、類似画像検索、または高速な類似マッチングを必要とするAIアプリの構築など、Vearchはそれを効率的に実現するツールを提供します。
##主な違い
検索方法
SingleStoreでは、SQLベースのデータベースにベクトル検索を組み込んでいるため、構造化データとともにベクトルを保存し、クエリを実行することができます。正確な結果を得るための厳密なk-最近傍(kNN)検索と、大規模なデータセットで高速なパフォーマンスを得るための近似最近傍(ANN)検索をサポートしています。ANNは、IVF_FLATやHNSWのようなインデックス作成方法を使用するため、絶対的な精度を犠牲にしても時間が重要なアプリケーションに最適です。これによりSingleStoreは、正確なクエリから大規模なオペレーションまで、様々な検索ユースケースに対応することができます。
Vearchはベクトル類似検索用に設計されており、ベクトルマッチングと構造化データフィルタリングを組み合わせたハイブリッドクエリに最適です。例えば、特定のカテゴリーや価格帯の類似商品を見つけるような複雑な検索が可能です。IVFPQとHNSWインデックスをサポートし、CPUとGPUの最適化を行うので、ハードウェアとユースケースに合わせてパフォーマンスを調整することができる。Vearchは、膨大なデータセットの超高速類似検索に最適です。
データ
SingleStoreはベクターデータをカラムストアテーブルに格納し管理するため、構造化データと互換性があります。その構造化アプローチは物事を単純化しますが、制限があります。例えば、Vector Type(dimensions[, F32])フォーマットしかサポートしていません。このため、SingleStoreは構造化データと非構造化データが共存するアプリケーションには最適ですが、異なるベクトル形式や構成を必要とするアプリケーションには柔軟性に欠けます。
Vearchはより柔軟にデータを扱うことができます。1つのドキュメントに複数のベクターフィールドを格納することができ、複雑なデータ関係を管理するのに便利です。また、リアルタイムのインデックス作成により、検索結果は最新のデータ更新を反映します。このように柔軟性とリアルタイム性を重視するVearchは、非構造化データや半構造化データに大きく依存するAI駆動型システムを構築する開発者にとって良い選択となる。
スケーラビリティとパフォーマンス
SingleStoreは複数のノードにデータを分散することで水平方向に拡張します。つまり、クラスタにノードを追加するだけで、大規模なベクトル演算を処理できます。また、ベクター検索と SQL を単一のクエリに統合することで、オーバーヘッドを最小化し、混在ワークロードの効率を最大化するクエリ・プロセッサーがパフォーマンスを向上させます。
Vearchはスケーリングにも優れており、異なるノードがメタデータ管理、データ・ストレージ、ルーティングといった異なるタスクを処理するクラスタ・アーキテクチャを採用している。これにより、データセットが大きくなってもパフォーマンスが保証される。何百万ものベクトルをミリ秒単位で処理できるため、重い作業負荷にも対応できる。ベクトル検索の作業負荷が大きいアプリケーションに最適です。
柔軟性とカスタマイズ
SingleStoreはシンプルさと統合性を重視しており、SQLインターフェイスを備えているため、ベクトル検索を従来のデータベース操作と組み合わせることができる。これは物事を単純化する一方で、カスタマイズを制限します。SingleStoreは、構造化されたデータベースコンテキスト内での標準的なベクトル操作で十分なシナリオに最適です。
一方、Vearchは多くのカスタマイズ・オプションを提供しており、複数のベクトル・フィールドを定義したり、ユースケースに基づいてインデックス作成方法を微調整したりすることができる。また、CPUとGPUをサポートしているので、ハードウェアに応じてコストやパフォーマンスを最適化することができる。この柔軟性により、Vearchはユニークな構成や高度なインデックス作成ストラテジーを必要とするプロジェクトに適した選択肢となります。
統合とエコシステム
SingleStoreは企業のエコシステム、特にSQLを中心に構築されたエコシステムにうまく統合されます。構造化データとベクトルデータの両方を1つのシステムで管理できるため、アーキテクチャが簡素化され、追加ツールの必要性が減ります。このため、SingleStoreはデータ運用を統合したい企業にとって良い選択となります。
Vearchのエコシステムは、AIアプリケーションを構築する開発者向けである。開発・テストが容易なPython SDKを備えているため、既存のプロジェクトに簡単に組み込むことができる。SingleStoreほど多くの統合はないが、AIとベクター中心のワークフローにフォーカスしているため、ターゲットとするユーザーのニーズを十分に満たしている。
使いやすさ
**SingleStoreのSQLインターフェイスは、リレーショナルデータベースに慣れている開発者やデータベース管理者にとって馴染み深いものである。ドキュメンテーションと設計が明確であるため、学習曲線は最小限であり、チームは大規模な再教育なしにベクトル検索機能を使用することができます。
Vearchは開発者に優しいが、ベクトル検索システムに慣れていない人にとっては、学習曲線が急かもしれない。しかし、そのAPI、リアルタイムのインデックス作成、Python SDKは、AIや機械学習フレームワークをすでに使いこなしている開発者が利用しやすいものにしている。つまり、専門的であるにもかかわらず、実用的なツールなのだ。
コストに関する考察
SingleStoreはベクターと構造化データ操作を1つのシステムにまとめることができるので、ベクターデータベースを別々に用意する必要がなくなり、コストを削減することができます。しかし、SQL とベクトルを組み合わせたワークロード、特に並行性の高いアプリケーショ ンのワークロードを拡張すると、運用コストは増加する可能性があります。
Vearchは効率的なベクトル検索に重点を置いているため、AI中心のユースケースには費用対効果の高い選択肢となる。しかし、構造化データの要件が大きい場合、ベクトル以外のデータを処理するために追加のツールを使用する必要があれば、追加コストが発生する可能性があります。データ・アーキテクチャとワークロード分散を理解することが、どちらのソリューションでもコスト管理の鍵となる。
セキュリティ機能
SingleStoreは、暗号化、認証、アクセス制御などのエンタープライズグレードのセキュリティ機能を備えています。そのため、厳格なコンプライアンスやデータ保護を必要とするアプリケーションに適しています。
Vearchは基本的なセキュリティ機能を備えているが、AIやベクトル検索のユースケースに重点を置いている。センシティブなデータを扱うアプリケーションでは、SingleStoreと同レベルのセキュリティを実現するために追加の対策が必要になるかもしれない。どちらのツールを検討する場合でも、特定のセキュリティ・ニーズを評価する必要がある。
SingleStoreを選ぶとき
SingleStoreは、構造化データとベクトルデータの両方を大規模に扱う必要がある企業向けだ。SQLインターフェースとベクトル検索がリレーショナルデータベースに統合されているため、推薦システム、AI主導の分析、検索拡張世代(RAG)などのユースケースに最適です。もしあなたのアプリケーションがベクトル類似検索と価格やカテゴリーによるフィルタリングのような従来のデータベース操作を組み合わせる必要があるなら、SingleStoreは最も簡単な方法です。
Vearchを選ぶとき
Vearchは、高速で柔軟なベクトル類似検索を必要とするAI中心のアプリケーション向けです。複雑なハイブリッドクエリ、リアルタイムのインデックス作成、単一ドキュメント内の複数のベクトルフィールドのサポートにより、レコメンデーションエンジン、画像やテキストの類似検索、その他の機械学習を利用したワークフローに最適です。AIを重視し、スケーラブルなベクトルが必要な場合、パフォーマンスのために最適化された最初のシステムであるVearchが最適です。
結論
SingleStoreとVearchはどちらもベクトル検索を搭載しているが、そのユースケースは異なる。SingleStoreの強みは、従来のリレーショナル・データベースとベクトル検索を統合することで、構造化データとベクトルデータの両方を大規模に扱うアプリケーションに最適だ。Vearchは柔軟性があり、高度な機械学習アプリケーションを構築する開発者向けの機能を備えたAI主導のユースケースに焦点を当てている。最終的には、ユースケース、データの種類、パフォーマンス要件によって選択することになる。これらを知ることで、貴社に適したテクノロジーを選択することができます。
SingleStoreとVearchの概要についてはこちらをお読みいただきたいが、これらを評価するには、ユースケースに基づいて評価する必要がある。それに役立つツールの一つが、ベクターデータベースの比較のためのオープンソースのベンチマークツールである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)
読み続けて

Introducing Customer-Managed Encryption Keys (CMEK) on Zilliz Cloud
We're announcing the general availability of Customer-Managed Encryption Keys (CMEK) on Zilliz Cloud.
Milvus/Zilliz + Surveillance: How Vector Databases Transform Multi-Camera Tracking
See how Milvus vector database enhances multi-camera tracking with similarity-based matching for better surveillance in retail, warehouses and transport hubs.

Vector Databases vs. Key-Value Databases
Use a vector database for AI-powered similarity search; use a key-value database for high-throughput, low-latency simple data lookups.
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.


