Docs Menu
Docs Home
/
Atlas

Atlas Vector Search の概要

Atlas をベクトルデータベースとして使用することで、Atlas ベクトル検索を使用してベクトルデータを他のMongoDBデータと並行してシームレスに検索し、インデックスことができます。 Atlas ベクトル検索 を使用すると、セマンティックな意味に基づいてデータをクエリしたり、ベクトル検索と全文検索を組み合わせたり、コレクション内の他のフィールドでクエリをフィルタリングしたりできるため、 のユースケースに最も関連する結果を検索できます。

Atlas ベクトル検索を使用して、 検索拡張生成 (RAG)(RAG) を実装し、 AIアプリケーションとエージェント システムを強化します。 Atlas ベクトル検索 を一般的なAIフレームワークやサービスと統合して、 AIアプリケーションとエージェントを迅速に構築できます。

Atlas Vector Search を使い始める

注意

Atlas Vector Search で近似最近傍探索をサポートしているのは、MongoDB v6.0.11、または v7.0.2 以降を実行しているクラスターです。また、厳密最近傍探索をサポートしているのは、MongoDB v6.0.16、v7.0.10、またはv7.3.2 以降を実行しているクラスターです。

ベクトル検索は、データのセマンティックまたは基礎となる意味に基づいて結果を返す検索メソッドです。 テキスト一致を検索する従来の全文検索とは異なり、ベクトル検索は多次元空間内の検索クエリに近いベクトルを検索します。 ベクトルがクエリに近づくほど、それらの意味は大きくなります。

ベクトル検索では、検索クエリとデータの意味を解釈することで、検索者の意図と検索コンテキストを考慮して、より関連性の高い結果を検索できます。

たとえば、「赤色の結果」という用語を検索した場合、全文検索ではこれらのキーワードを明示的に含むデータのみが返されます。 ただし、セマンティック検索では、リンゴ や いちご のような赤色の植物など、意味において類似したデータが返される場合があります。

Atlas Vector Search は、次のベクトル検索のユースケースをサポートしています。

Atlas ベクトル検索 は、任意のAIプロバイダーの埋め込みモデルと生成モデルで使用できます。 MongoDBとその提携パートナーは、 AIベースのアプリケーションで Atlas ベクトル検索 を活用するための特定の製品統合も提供しています。これらの統合には、ベクトル検索、RAG、 AIエージェントを迅速に実装できるフレームワーク、プラットフォーム、ツールが含まれます。

詳細については、 「 MongoDB AtlasとAIテクノロジーの統合 」を参照してください。

ベクトル

ベクトルは、データを複数の次元で表す数値の配列です。 ベクトルは、テキスト、画像、オーディオを含むデータから非構造化データまで、あらゆるタイプのデータを表すことができます。 セマンティック類似性は、ベクトル間の距離を測定することによって判断されます。

ベクトルの次元は、配列内の要素数を指し、したがってベクトルがプロットされるベクトル空間の次元数を意味します。

具体的には、Atlas Vector Search は高密度ベクトルを使用します。これは、より小さいストレージとセマンティックの豊富性を優先する高次元ベクトルのタイプです。 スパースベクトルとは対照的に、高密度ベクトルにはより多くのデータを埋め込むことができるため、Atlas Vector Search はより複雑な関係をキャプチャできます。

ベクトル埋め込み

ベクトル埋め込みは、データを表現するために使用するベクトルです。これらの埋め込みは、データ内の意味のある関係をキャプチャし、セマンティック検索や取得などのタスクを可能にします。データを埋め込みモデルに通してベクトル埋め込みを作成し、これらの埋め込みは、ドキュメントのフィールドとして Atlas で保存できます。

Atlas Vector Search は、クエリベクトルに最も近い距離にあるベクトル埋め込みを識別することにより、セマンティック類似性を判断します。

詳細については、「ベクトル埋め込みの作成方法」を参照してください。

埋め込みモデル

埋め込みモデルは、データをベクトル埋め込みに変換するために使用するアルゴリズムです。 これを行うために、埋め込みモデルは、大規模なデータコーパスでトレーニングされた機械学習モデルである LLM を使用して、データのセマンティックな意味をキャプチャするベクトル埋め込みを生成します。

選択された埋め込みモデルは、ベクトル埋め込みの次元を決定します。これらの次元を Atlas Vector Search インデックスのフィールドとして指定する必要があります。

埋め込みモデルは、モデルがどのように訓練されたかによって異なります。したがって、データとユースケースに応じて、異なるモデルには異なる利点が得られます。詳細については、「 埋め込みモデルの選択 」を参照してください。最新の埋め込みモデルには、 投票AIを使用します。

Atlas のデータに対してベクトル検索を実行するには、Atlas Vector Search インデックスを作成する必要があります。 Atlas Vector Search インデックスは他のデータベース インデックスとは別であり、クエリ時にベクトル埋め込みを含むドキュメントを効率的に検索するために使用されます。 Atlas Vector Search インデックス定義では、埋め込みを含むコレクション内のフィールドにインデックスを付けて、それらのフィールドに対するベクトル検索を有効にします。 Atlas Vector Search は、長さが 次元より小さく、 8192次元に等しい埋め込みをサポートします。

また、Atlas Vector 検索クエリを実行するコレクション内の追加フィールドにインデックスを作成することで、データを事前にフィルタリングすることもできます。ブール値、date、objectId、numeric、string、UUID の値(これらの型の配列を含む)をフィルタリングできます。データをフィルタリングすると、 Atlas Search の範囲が狭まり、特定のベクトル埋め込みが比較対象に考慮されなくなります。

Atlas Vector Search のフィールドにインデックスを付ける方法については、「ベクトル検索のフィールドにインデックスを作成する方法」を参照してください。

Atlas Vector Search は Hierarchical Navigable Small Worlds アルゴリズムによる近似最近傍探索 (ANN) と、厳密最近傍探索 (ENN) をサポートします。

最も類似したベクトルを検索するために、Atlas Vector Search はすべてのベクトル埋め込みをスキャンせずに ANN 検索を実行し、すべてのインデックス作成されたベクトル埋め込みに対して厳密に ENN 検索を実行します。 詳細については、「 vectorSearch 定義」を参照してください。

Atlas Vector Search クエリは集計パイプライン ステージで構成されており、 $vectorSearchステージはパイプラインの最初のステージです。 基本的な Atlas Vector Search クエリのプロセスは次のとおりです。

  1. [ANN] または [ENN ] 検索のいずれかを選択し、クエリ ベクトル (検索クエリを表すベクトル埋め込み)を指定します。

  2. Atlas Vector Search は、クエリベクトルに最も近いデータ内のベクトル埋め込みを検索します。

  3. Atlas Vector Search は、最も類似したベクトルを含むドキュメントを返します。

ベクトル検索クエリをカスタマイズするには、サポートされている 比較 または 集計演算子 を含む MQL 一致式を使用して、インデックスを作成したフィールドのデータを事前にフィルター処理できます。また、追加の 集計ステージ を追加して、結果をさらに処理および整理することもできます。

Atlas Vector Search クエリの作成および実行方法については、「 Vector Search クエリの実行」を参照してください。

Atlas Vector Search インデックスの作成、およびサンプル データに対して Atlas Vector Search クエリの実行に関する実践的な情報については、「 MongoDB University の Atlas Vector Search コース」と次のページのチュートリアルをお試しください。

最適なパフォーマンスを得るには、ワークロード分離のために個別の検索ノードを配置することをお勧めします。検索ノードは、個々のクエリのレイテンシを改善するためにクエリの同時実行をサポートします。 詳しくは、「配置オプションの確認」を参照してください。

ルール バッジを取得する

マスター「ベクトル検索の基礎」を無料でマスターします。

詳細

項目一覧