Couchbase vs MongoDB AIアプリに適したベクターデータベースの選択
ベクターデータベースとは?
CouchbaseとMongoDBを比較する前に、まずベクターデータベースの概念を探ってみよう;
ベクトルデータベース](https://zilliz.com/learn/what-is-vector-database)は、特に高次元のベクトルを格納し、クエリするように設計されています。これは非構造化データの数値表現です。これらのベクトルは、テキストの意味、画像の視覚的特徴、または製品の属性などの複雑な情報をエンコードします。効率的な類似検索を可能にすることで、ベクトルデータベースはAIアプリケーションにおいて極めて重要な役割を果たし、より高度なデータ分析と検索を可能にしている。
ベクトルデータベースの一般的なユースケースには、電子商取引の商品推奨、コンテンツ発見プラットフォーム、サイバーセキュリティにおける異常検知、医療画像分析、自然言語処理(NLP)タスクなどがある。また、AI幻覚のような問題を軽減するために、外部知識を提供することによって大規模言語モデル(LLM)の性能を向上させる技術である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のような軽量ベクトルデータベース。
- 小規模なベクトル検索が可能なベクトル検索アドオンを備えた従来のデータベース**。
Couchbaseは分散マルチモデルNoSQL文書指向データベースであり、MongoDBはJSONライクな文書でデータを格納するNoSQLデータベースである。どちらもアドオンとしてベクトル検索機能を持っている。この投稿では、両者のベクトル検索機能を比較する。 ;
Couchbase概要とコアテクノロジー
Couchbaseは分散型オープンソースのNoSQLデータベースで、クラウド、モバイル、AI、エッジコンピューティング向けのアプリケーション構築に利用できる。リレーショナルデータベースの強みとJSONの汎用性を兼ね備えている。Couchbaseはまた、ベクトルインデックスをネイティブサポートしていないにもかかわらず、ベクトル検索を実装する柔軟性を提供する。開発者は、ベクトル埋め込み-機械学習モデルによって生成された数値表現-をJSON構造の一部としてCouchbaseドキュメント内に格納することができる。これらのベクトルは、高次元空間で互いに近いデータポイントを見つけることが重要であるセマンティック検索に基づく推薦システムや検索拡張生成などの類似検索のユースケースで使用することができます。
Couchbaseでベクトル検索を可能にする1つのアプローチは、全文検索(FTS)を活用することです。FTSは一般的にテキストベースの検索用に設計されていますが、ベクトルデータを検索可能なフィールドに変換することで、ベクトル検索に対応させることができます。例えば、ベクトルをテキストライクなデータにトークン化することで、FTSはそれらのトークンに基づいてインデックスを作成し、検索することができる。これにより、近似ベクトル検索が容易になり、類似性の近いベクトルを持つドキュメントをクエリする方法を提供することができる。
あるいは、開発者は生のベクトル埋め込みをCouchbaseに保存し、アプリケーションレベルでベクトルの類似度計算を実行することができます。これは、ドキュメントを検索し、ベクトル間のコサイン類似度やユークリッド距離などのメトリックを計算し、最も近い一致を識別することを含む。この方法では、アプリケーションが数学的比較ロジックを処理する間、Couchbaseはベクトルのストレージソリューションとして機能することができます。
より高度なユースケースのために、一部の開発者は、効率的なベクトル検索を可能にする特殊なライブラリやアルゴリズム(FAISSやHNSWのような)とCouchbaseを統合しています。これらの統合は、外部ライブラリが実際のベクトル比較を実行しながら、Couchbaseがドキュメントストアを管理することを可能にします。このように、Couchbaseはまだベクトル検索をサポートするソリューションの一部であることができます。
これらのアプローチを使用することで、Couchbaseはベクトル検索機能を扱うように適応させることができ、類似検索に依存する様々なAIや機械学習タスクのための柔軟な選択肢となる。
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のスケーラビリティと豊富な機能をベクター検索と共に利用することができます。
主な違い
検索方法
Couchbase:ネイティブのベクトルインデックスはありませんが、全文検索(FTS)のためにベクトルをトークン化するなどの回避策で近似ベクトル検索が可能です。または、アプリケーションレベルで類似度計算を行うか、FAISSやHNSWのような外部ライブラリを使用します。これらのオプションは柔軟性を与えるが、実装と最適化のために多大な開発労力を必要とする。
MongoDB:Atlas Vector Search は、近似最近傍 (ANN) 検索のためのベクトル埋め込みと HNSW によるインデックス作成をネイティブでサポートしています。また、小規模なクエリのために Exact Nearest Neighbors (ENN) もサポートしています。複雑なクエリのためのハイブリッド検索(ベクトル検索と全文検索の組み合わせ)を内蔵。
データハンドリング
Couchbase:JSONドキュメントモデルで構造化データおよび半構造化データを扱う。JSON 構造の一部としてベクトル埋め込みを格納できますが、ベクトルを検索に統合するには追加のロジックが必要です。
MongoDB:MongoDBも柔軟なドキュメントモデルを採用しており、ベクトル埋め込みをクエリやインデックスに直接統合することができます。開発者は、コンテキストフィルタリングのために、ベクターと一緒に追加のメタデータを埋め込むことができる。
スケーラビリティとパフォーマンス
Couchbase:一般的なドキュメントの保存と検索には十分なスケール。しかし、ベクトル検索のパフォーマンスは実装戦略に依存する。生のベクトルを保存し、類似度計算を外部ライブラリにオフロードすると、特に大規模な場合、レイテンシに影響する。
MongoDB:アトラスベクター検索は、ベクターワークロード専用の検索ノードでうまくスケールするので、パフォーマンスは他のデータベース操作から切り離されます。
柔軟性とカスタマイズ
Couchbase:ベクトル検索のカスタムソリューションを構築するための高い柔軟性。外部ライブラリを組み合わせたり、アプリケーションレベルで計算したり、FTSを適応させることができます。しかし、この柔軟性はシンプルさを犠牲にし、より多くの技術的努力を必要とします。
MongoDB:MongoDB**:従来のドキュメントクエリやメタデータフィルタリングの柔軟性を保ちつつ、ベクトル検索機能を組み込んだ、すぐに使えるソリューション。ハイブリッド検索により、さまざまなタイプのクエリを簡単に扱うことができる。
統合とエコシステム
Couchbase:多くのアプリケーションとうまく統合されていますが、AI/MLフレームワークや埋め込みモデルとの直接的な統合はありません。開発者はパイプラインを自分で構築する必要がある。
MongoDB:OpenAIやHugging Faceのような埋め込みプロバイダーと統合し、LangChainやLlamaIndexのようなフレームワークをサポートする。つまり、MongoDBはAI/MLアプリケーションにとって、より開発者に優しい選択肢なのだ。
使いやすさ
Couchbase:ベクトル検索を実装するには、多くの手作業が必要。ドキュメントは良いが、ネイティブのベクトル検索がないため、ベクトル埋め込みに慣れていない開発者にとっては、学習曲線が急になる。
MongoDB:ネイティブのベクトル検索ツール、詳細なドキュメント、開発者向けリソースがある。アトラスベクターサーチはMongoDBエコシステムの一部なので、セットアップやメンテナンスが簡単です。
コスト
Couchbase:コストは使用するストレージと計算リソースに依存しますが、外部ツールの追加やカスタム開発により、全体的なコストが増加します。
MongoDB:Atlas Vector SearchはMongoDB Atlasの一部であり、コストはマネージドサービスと専用の検索インフラにかかる。初期費用は高くつくが、運用コストを相殺できる可能性がある。
セキュリティ
Couchbase:エンタープライズグレードのセキュリティ、暗号化、認証、アクセス制御がありますが、カスタムベクター検索の実装は、慎重に管理しない限り、セキュリティリスクが発生します。
MongoDB:強力なセキュリティ機能、暗号化、ロールベースのアクセスコントロール、AWSやGCPのようなマネージドサービスとの統合により、コンプライアンスに対応。ネイティブのベクトル検索は、外部ツールからの暴露を減らします。
Couchbaseを使用する場合
Couchbaseは、強力なJSONサポートを備えた高度に分散された柔軟なNoSQLデータベースを必要とするアプリケーションに適しています。主なユースケースが汎用的なデータの保存と検索であり、ベクトル検索は外部ライブラリやカスタムロジックを使用して後付けで追加できるユースケースに適しています。レコメンデーションシステム用の大規模な分散データの保存や、データベースの外部で計算を行う検索拡張生成タスクなど、ベクトル検索が二次的な要件となるシナリオに適している。
MongoDB を使うとき
MongoDBは、ドキュメントデータベースと完全に統合されたベクトル検索ソリューションを求める開発者に適している。ネイティブのアトラスベクター検索機能は、ベクターの類似性と全文検索を組み合わせたハイブリッドクエリのような高度なユースケースをサポートする。セマンティック検索エンジン、パーソナライズされたレコメンデーション、会話型AIなど、AIを活用したアプリケーションに適している。MongoDBは、一般的なエンベッディング・プロバイダーやAIフレームワークと統合されているため、最小限のセットアップで複雑な機械学習ワークフローを構築したいチームに適している。
まとめ
CouchbaseとMongoDBはどちらも強みがあり、Couchbaseは柔軟性と分散データストレージに適しており、MongoDBはベクトル検索やAI中心のアプリケーションに適している。選択はユースケースによる:CouchbaseはNoSQLの機能とスケーラビリティを優先するアプリケーションに適しており、MongoDBはAIワークフローや統合ベクトル検索を必要とするアプリケーションに適している。データの種類、統合要件、パフォーマンスニーズを評価し、どちらが適しているかを判断してください。
これを読めばCouchbaseとMongoDBの概要がわかるが、これらを評価するにはユースケースに基づいて評価する必要がある。それに役立つツールの一つが、ベクターデータベースを比較するためのオープンソースのベンチマークツールである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)
読み続けて

Zilliz Cloud Launches in AWS Australia, Expanding Global Reach to Australia and Neighboring Markets
We're thrilled to announce that Zilliz Cloud is now available in the AWS Sydney, Australia region (ap-southeast-2).

Similarity Metrics for Vector Search
Exploring five similarity metrics for vector search: L2 or Euclidean distance, cosine distance, inner product, and hamming distance.

Vector Databases vs. Spatial Databases
Use a vector database for AI-powered similarity search; use a spatial database for geographic and geometric data analysis and querying.
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.