MongoDBとVearchの比較:GenAIアプリケーションに適したデータベースの選択
AI主導のアプリケーションが進化する中、これらの進化をサポートするベクトル検索機能の重要性はいくら強調してもし過ぎることはない。このブログ記事では、ベクトル検索機能を持つ2つの著名なデータベースについて説明する:MongoDBとVearchである。それぞれ、推薦エンジン、画像検索、セマンティック検索などのアプリケーションに必須の機能であるベクトル検索を扱うための堅牢な機能を提供している。私たちのゴールは、開発者やエンジニアに明確な比較を提供し、どのデータベースが彼らの特定の要件に最も合致するかを決定する手助けをすることです。
ベクターデータベースとは?
MongoDBと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のような軽量ベクトルデータベース。
- 小規模なベクトル検索が可能なベクトル検索アドオンを備えた従来のデータベース**。
MongoDBは、ベクトル検索をアドオンとして持つNoSQLデータベースである。Vearchは専用のベクトルデータベースである。この記事では、両者のベクトル検索機能を比較する。
MongoDB: 基礎編
MongoDB Atlasのベクトル検索は、MongoDB Atlasに保存されたデータに対してベクトルの類似性検索を行う機能です。ドキュメントデータと一緒に高次元のベクトル埋め込みデータをインデックス化してクエリし、データベース内でAIや機械学習を行うことができます。
Atlas Vector Searchの中核は、HNSW(Hierarchical Navigable Small World)アルゴリズムを使ったベクトルデータのインデックス化と検索です。これによりベクトル空間の多階層グラフが作成され、近似最近傍(ANN)検索が可能になる。これは大規模なベクトル検索におけるスピードと精度のバランスです。Atlas Vector Search は、10,000 ドキュメントまでのクエリに対して、パフォーマンスよりも精度を優先する Exact Nearest Neighbors (ENN) 検索もサポートしています。
Atlas Vector Searchの大きな利点の一つは、MongoDBの柔軟なドキュメントモデルとの統合です。ベクトル埋め込みを他のドキュメントデータと一緒に保存できるので、より文脈に沿った正確な検索ができます。最大4096次元まで埋め込むことができ、どのようなデータでもクエリできます。アトラスベクター検索では、ベクトルの類似検索と従来の文書フィルタリングを組み合わせることができます。例えば、商品のセマンティック検索は、カテゴリー、価格帯、在庫状況でフィルタリングすることができます。
また、Atlas Vector Searchはハイブリッド検索にも対応しており、ベクトル検索とフルテキスト検索を組み合わせることで、より詳細な検索結果を得ることができます。これは、キーワードベースの検索に特化したAtlas Searchとは異なる。このプラットフォームは一般的なAIサービスやツールと統合されているため、OpenAIやVoyageAI、その他Hugging Faceに掲載されている多くのプロバイダーのモデルを埋め込んで使用することができる。また、大規模言語モデル(LLM)を使用するアプリケーションを構築するためのLangChainやLlamaIndexのようなオープンソースのフレームワークもサポートしています。
スケーラビリティとパフォーマンスを保証するために、MongoDBアトラスは、アトラスサーチとベクターサーチのワークロード専用のインフラを提供するサーチノードを提供しています。これにより、最適化されたコンピュートリソースと、検索ニーズの独立したスケーリングが可能になり、スケール時のパフォーマンスが向上します。
これらの機能をMongoDBエコシステム内に持つことで、Atlas Vector SearchはAIを活用したアプリケーション、レコメンデーションシステム、高度な検索機能を構築する開発者にとって完全なソリューションとなります。ベクターデータベースを別途用意する必要がなく、MongoDBのスケーラビリティと豊富な機能をベクター検索と共に利用することができます。
Vearch** とは?基本機能
Vearchは、高速で効率的な類似検索を必要とするAIアプリケーションを開発する開発者のためのツールです。超強力なデータベースのようなものだが、通常のデータを保存する代わりに、最新のAI技術の多くを支えるトリッキーなベクトル埋め込みを扱うように構築されている。
Vearchの最もクールな点は、そのハイブリッド検索だ。ベクトルによる検索(類似した画像やテキストを見つけることを想像してほしい)と、数値やテキストのような通常のデータによるフィルタリングができる。そのため、「このような商品を探す、ただし電子機器カテゴリーで500ドル以下」というような複雑な検索も可能だ。何百万ものベクトルからなるコーパスをミリ秒単位で検索できるのだ。
Vearchはニーズに応じて成長するように設計されている。クラスタのセットアップを使用し、コンピュータのチームが一緒に働くようなものだ。異なるタイプのノード(マスター、ルーター、パーティション・サーバー)があり、メタデータの管理からデータの保存や計算まで、異なるジョブを処理する。これにより、Vearchはデータの増加に合わせてスケールアウトし、信頼性を高めることができる。より多くのデータやトラフィックを処理するために、汗をかくことなくマシンを追加することができます。
開発者にとっては、Vearchは生活を容易にする素晴らしい機能をいくつか備えている。リアルタイムでインデックスにデータを追加できるので、検索結果は常に最新の状態に保たれます。複雑なデータに便利な、1つのドキュメントに複数のベクトル・フィールドをサポートする。また、Python SDKも用意されており、迅速な開発とテストが可能だ。Vearchは、インデックス作成方法(IVFPQとHNSW)に柔軟性があり、CPUとGPUの両方のバージョンをサポートしているので、特定のハードウェアやユースケースに合わせて最適化することができます。レコメンデーションシステム、類似画像検索、または高速な類似マッチングを必要とするAIアプリの構築など、Vearchはそれを効率的に実現するツールを提供します。
##主な違い
ベクトル検索を必要とするAIアプリケーションを構築する場合、2つのツールが思い浮かぶ:MongoDB Atlas Vector SearchとVearchだ。どちらも強力だが、あなたの決断を左右する重要な違いがある。いくつかの重要な点で、これらのツールの比較をしてみよう。
検索方法
MongoDB Atlas Vector Searchは、ベクトルデータのインデックス作成と検索にHNSW(Hierarchical Navigable Small World)アルゴリズムを使用しています。近似最近傍 (ANN) 検索のためにベクトル空間の多階層グラフを作成します。また、より小規模なデータセットのための厳密最近傍(ENN)検索もサポートしている。
一方、Vearchはインデックスの付け方に柔軟性がある。IVFPQアルゴリズムとHNSWアルゴリズムの両方をサポートしているので、ユースケースに合わせて最適化できるオプションが増えます。
データ
MongoDB Atlas Vector Search は MongoDB ドキュメントモデルとの統合に優れています。ベクトル埋め込みを他のドキュメントデータと一緒に保存できるので、より文脈に沿った正確な検索ができます。これは特に、ベクトルの類似検索とドキュメントのフィルタリングを組み合わせる必要があるアプリケーションに便利です。
Vearchはハイブリッド検索もサポートしており、ベクトルによる検索と通常のデータによるフィルタリングが可能です。また、1つの文書内で複数のベクトルフィールドを扱うことができるので、複雑なデータ構造にも対応できる。
スケーラビリティとパフォーマンス
MongoDB Atlasには、ベクター検索ワークロード専用の検索ノードがあり、検索を独立してスケールできます。これは、特に大規模なデータセットに対して、スケール時のパフォーマンスが向上することを意味します。
Vearchは、異なるタイプのノード(マスター、ルーター、パーティションサーバー)が異なるタスクを処理するクラスタセットアップを持っています。このアーキテクチャにより、Vearchはデータの増加に合わせてスケールアウトし、より多くのデータやトラフィックを処理するためにマシンを追加することができます。
柔軟性とカスタマイズ
MongoDB Atlas Vector Searchは、最大4096次元まで埋め込むことができるあらゆるデータをクエリできます。また、ベクトル類似検索とドキュメントフィルタリングや全文検索を組み合わせることもできます。
Vearch はインデックス作成方法に柔軟性があり、CPU 版と GPU 版の両方をサポートしているので、ハードウェアやユースケースに合わせて最適化できます。
統合とエコシステム
MongoDB Atlas Vector Searchは、一般的なAIサービスやツールと統合できます。OpenAIやVoyageAIのエンベッディングモデルと連携し、Large Language Models (LLM)を使ったアプリケーション構築のためにLangChainやLlamaIndexをサポートしています。
Vearchには、迅速な開発とテストのためのPython SDKがあるが、他のAIツールやフレームワークとの統合に関する情報はない。
使いやすさ
MongoDB Atlas Vector Searchは、多くの開発者がすでに慣れ親しんでいるMongoDBエコシステムの一部であることから、すでにMongoDBを使用しているチームにとっては学習曲線が低くなる可能性がある。
Vearchはリアルタイムのインデックス機能とPython SDKを備えており、開発やテストが容易だが、分散アーキテクチャのため、セットアップやメンテナンスの知識がより必要になる。
コスト
MongoDB Atlasはマネージドサービスであるため、運用は簡素化されるが、利用状況によってはコストが高くなる可能性がある。
Vearchはオープンソースなので、直接的なコストは抑えられるが、インフラや管理への投資が増える。
セキュリティ
MongoDB Atlasには、暗号化、認証、アクセス制御など、MongoDBの強固なセキュリティ機能が備わっている。
Vearchのセキュリティはあなた次第だ。
MongoDB Atlas ベクターサーチを使うとき
MongoDB Atlas Vector Search は、複雑なドキュメントベースのデータで、 従来のクエリとベクトル検索の両方が必要な場合に使います。高度な商品レコメンデーションシステムやコンテンツディスカバリプラットフォームのように、 ベクトル類似検索とドキュメントフィルタリングを組み合わせる必要があるアプリケーションに最適です。すでにデータにMongoDBを使用していて、別のベクトルデータベースを導入することなくAIを活用した検索を追加したい場合、Atlas Vector Searchはシームレスな統合が可能です。また、様々なプロバイダーのモデルの埋め込みをサポートし、LangChainやLlamaIndexともうまく動作するため、一般的なAIサービスやツールとの緊密な統合を必要とするプロジェクトにも適しています。
Vearchを使うとき
Vearchは、インデックス作成方法やハードウェアの最適化をよりコントロールする必要がある場合に適しています。リアルタイムのインデックス作成が必要で、1つのドキュメントで複数のベクトルフィールドを扱えるプロジェクトに最適です。大量のベクトルデータを扱うためにスケールアウトが必要なアプリケーションを構築するのであれば、Vearchのクラスタベースのアーキテクチャが適しているかもしれない。また、ハードウェアのセットアップに応じてCPUとGPUの実装を柔軟に選択したい開発者にも向いている。Vearchはまた、オープンソースのソリューションを好み、ベクトル検索インフラをよりコントロールしたいチームにとっても、より良い選択肢かもしれない。
まとめ
MongoDB Atlas Vector Search と Vearch はどちらも優れたベクトル検索ソリューションだが、ニーズは異なる。MongoDB Atlas Vector Searchはドキュメントベースのデータとベクトル検索を統合するのに適しており、MongoDBエコシステム内のマネージドサービスである。Vearchはインデックス作成方法の柔軟性、ハードウェアの最適化、スケーラブルなアーキテクチャに優れている。この2つのどちらを選ぶかは、ユースケース、既存のインフラ、パフォーマンス要件、チームの専門知識に基づいてください。データの複雑さ、スケーリングの必要性、統合の要件、マネージドサービスとオープンソースのソリューションのどちらを選択するか、カスタマイズの幅を考慮する必要がある。
MongoDBと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)
読み続けて

Smarter Autoscaling in Zilliz Cloud: Always Optimized for Every Workload
With the latest upgrade, Zilliz Cloud introduces smarter autoscaling—a fully automated, more streamlined, elastic resource management system.

Vector Databases vs. Graph Databases
Use a vector database for AI-powered similarity search; use a graph database for complex relationship-based queries and network analysis.

Introducing DeepSearcher: A Local Open Source Deep Research
In contrast to OpenAI’s Deep Research, this example ran locally, using only open-source models and tools like Milvus and LangChain.
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.


