AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

自動埋め込みの概要

MongoDB ベクトル検索を構成して、Atlas クラスター内のテキスト データのvector embeddingsを自動的に生成および管理できます。自動埋め込みを有効にすると、 MongoDB ベクトル検索 は、コレクション内の指定されたテキストフィールドのインデックス時にと、クエリ内のテキスト string のクエリ時に、指定された Vyage AI embedding model を使用して埋め込みを自動的に生成します。

自動埋め込み により、セマンティック検索を構築するプロセスが簡素化されます。vector embeddingsを自分で生成、保存、または管理する必要はありません。Atlas は埋め込みの生成、更新、クエリをネイティブに処理します。

注意

自動埋め込みは、無料(M0)、フレキシブル階層、専有(M10+)クラスターでサポートされています。

専有クラスター(M10+)でオートメーション埋め込みを使用するには、ストレージとクラスター階層のオートスケーリングの両方を有効にする必要があります。大規模なdatasetsでの初期インデックス構築のためにリソースを増やすには、オートスケーリングが必要です。インデックス構築が完了すると、新しいインデックスサイズにはそれ以上のストレージリソースが必要ないため、クラスターは元のコンピュート階層にスケールダウンします。

オートスケーリング設定を次のように設定します。

  • 現在のクラスター層が M10 または M20(バースト可能な CPU インスタンス)の場合は、最大インスタンスサイズを M30 以上に設定します。

  • 現在のクラスター階層が M30 以上の場合は、最大インスタンスサイズを現在の階層よりも大きい階層に設定します。

  • NVMeストレージを使用するクラスターの場合は、「ストレージが低く実行中場合は NVMEクラスター階層を増やす 」オプションを選択します。

MongoDB ベクトル検索を配置し、 MongoDB ベクトル検索インデックスへの 自動埋め込み により、テキストデータに対してAIを使用したインテリジェントなセマンティック検索を有効にできます。MongoDB の自動埋め込み機能により、ベクトル検索実装の従来の複雑なプロセスが単一ステップのソリューションに変換されます。埋め込みインフラストラクチャ、モデル選択、統合コードを個別に管理する代わりに、簡単なフィールド構成でセマンティック検索を実装できるようになりました。

MongoDB Vector Searchインデックスを構成すると、選択した最新の Voyage AI埋め込みモデルを使用して、コレクション内のテキスト データのベクトル埋め込みが自動的に生成され、データが変更されるたびに埋め込みが同期されます。また、自然言語テキスト クエリの使用もサポートします。これらのベクトル埋め込みは、データ内の意味のある関係をキャプチャし、キーワードではなく意向に基づいて検索を可能にします。

自動埋め込みを有効にするには、autoEmbed タイプを使用してMongoDB ベクトル検索インデックスを作成します。autoEmbed タイプは、自動埋め込みを有効にするフィールドと使用するembedding modelを指定します。1 つ以上のフィールドを含めて、filter タイプを使用してデータを事前にフィルターすることもできます。

1{
2 "fields": [
3 {
4 "type": "autoEmbed",
5 "modality": "text",
6 "path": "<field-to-index>",
7 "model": "<embedding-model>"
8 },
9 {
10 "type": "filter",
11 "path": "<field-to-index>"
12 },
13 ...
14 ]
15}

インデックス構文とフィールドの詳細については、 「ベクトル検索のフィールドにインデックスを作成する方法」 を参照してください。

MongoDB ベクトル検索 は、挿入または更新した既存と新規のdocumentの埋め込みを自動的に生成します。

インデックスを 作成 したら、クエリを実行できます。MongoDB ベクトル検索 は、インデックスで指定したのと同じembedding modelを使用して、クエリテキストの埋め込みを自動的に生成します。オプションで、$vectorSearchパイプラインステージで model オプションを使用して別のembedding modelを指定できますが、指定されたembedding modelは、インデックス時に使用されるembedding modelと互換性がある必要があります。

1[
2 {
3 "$vectorSearch": {
4 "index": "<index-name>",
5 "path": "<field-to-index>",
6 "query": "<query-text>",
7 "model": "<embedding-model>"
8 }
9 },
10 {
11 "$project": {
12 "_id": 0,
13 "<field-to-index>": 1,
14 "score": { "$meta": "vectorSearchScore" }
15 }
16 }
17]

詳細については、「ベクター検索クエリの実行」を参照してください。

注意

この機能は、Docker、tarball、またはパッケージマネージャーを使用するMongoDB SearchおよびMongoDB ベクトル検索のデプロイメント、およびMongoDB 8.2以降のCommunity EditionでKubernetes Operator用MongoDB 演算子を使用するデプロイメントで利用できます。自動埋め込み機能はまだMongoDB Enterprise Edition では利用できません。

簡単な構成変更により、埋め込みコードを記述したり、モデル インフラストラクチャを管理したり、ベクトルパイプラインを処理したりせずに、 AIエージェントのセマンティック検索、RAG、メモリを有効にできます。つまり、MongoDB Community Edition をMongoDB Search およびベクトル検索プロセス mongot で配置する場合、埋め込みの生成に使用するための Voyage AI APIキー を提供できます。理想的には、インデックスの作成操作用で、もう 1 つは別のプロジェクトのクエリ操作用です。

配置後:

  1. コレクションから、セマンティック検索を有効にするテキストフィールドを選択します。

  2. 使用可能な埋め込みモデルのリストから、埋め込みモデルを選択します。

  3. MongoDB Vector Searchインデックス定義で、autoEmbed タイプを使用して自動埋め込みを構成します。

自動埋め込み用のMongoDB ベクトル検索インデックスの構成の詳細については、 「 ベクトル検索のフィールドにインデックスを作成する方法 」を参照してください。

MongoDB Vector Search は、 MongoDB Community Edition の初期化中に指定したAPIキーを使用して、挿入または更新した既存と新規のドキュメントの埋め込みを自動的に生成します。

クエリには、$vectorSearchパイプラインステージで query.text オプションを使用します。MongoDB ベクトル検索 は、インデックス定義で同じ embedding model を使用してテキストクエリの埋め込みを生成します。model オプションを使用して別のembedding modelを指定できますが、指定されたembedding modelは、$vectorSearchパイプラインステージでインデックス時に使用されるembedding modelと互換性がある必要があります。MongoDB ベクトル検索 は、 MongoDB Community の初期化中に提供したクエリAPIキーを使用して、クエリ時に埋め込みを生成します。詳細については、 ベクトル検索クエリの実行 を参照してください。

APIキーを使用して埋め込みを生成すると料金が発生します。詳しくは、請求の管理 を参照してください。

埋め込みを自動化し、サンプルクエリを実行するには、MongoDB ベクトル検索クイックスタートチュートリアル を参照してください。

インデックス時とクエリ時に単一のAPIキーを使用して埋め込みを生成できますが、クエリ操作がインデックスの作成操作に悪影響を与えないようにするために、個別のAPIキーを使用することをお勧めします。

APIキーは、次の方法で生成できます。

  • 推奨Atlas アカウントの使用により、Atlas UIから Voyage AI埋め込みモデルAPIキーを管理できます。

    レート制限( TPM RPM の組み合わせ)の構成やAPIキーの使用状況のモニタリングなど、 APIキーの生成と管理の詳細については、「 モデルAPIキー 」を参照してください。

  • Voyage AI.

    Voyage AIから作成されたAPIキーの管理の詳細については、「APIキー」を参照してください。

キーの作成後、 MongoDB Community Edition を使用した配置中に mongot を構成するときに、自動埋め込みに使用するキーを指定する必要があります。MongoDB Vector Search は、mongot の配置中に提供した Voyage AI API キーを使用して、インデックス時にデータの埋め込みを自動的に生成し、クエリ時にクエリテキストの埋め込みを自動的に生成します。

自動埋め込みインデックスはvector embeddingsを非同期に生成し、別の 予約データベース上のMongoDBクラスターに永続化します。各自動埋め込みインデックスには、対応する生成された埋め込みコレクションが 1 つだけあります。生成された埋め込みコレクションは、同じクラスター上の専用の内部データベースに保存されます。

詳細については、生成された埋め込みコレクション を参照してください。

MongoDB Vector Search は、それぞれ特定のユースケースに合わせて最適化された、Voyage AI の最新の埋め込みモデルと統合します。

埋め込みモデル
説明
1M トークンあたりの価格

voyage-4-lite

大規模でコストのかかるアプリケーションに最適化されます。

$0.02

voyage-4

推奨)一般的なテキスト検索のバランスの取れたパフォーマンス。

$0.06

voyage-4-large

複雑なセマンティック関係の最大精度。

$0.12

voyage-code-3

コード検索と技術ドキュメントに特殊化されています。

$0.18

詳細については、自動埋め込みのmodel を参照してください。

埋め込みモデル

Embedding modelsは、データのセマンティックまたは基礎となる意味を取得するvector embeddingsにデータを変換するアルゴリズムです。これらのベクトルによりベクトル検索が可能になります。

自動埋め込みのembedding modelの詳細については、利用可能なモデルを参照してください。

ベクトル埋め込み

ベクトル埋め込みは数値の配列であり、各次元はデータの異なる機能または属性を表します。ベクトルは、テキスト、画像、ビデオから非構造化データまで、任意のタイプのデータを表すために使用できます。埋め込みモデルにデータを渡すことでベクトル埋め込みを作成し、これらの埋め込みをMongoDBのようなベクトル埋め込みをサポートするデータベースに保存できます。

自動埋め込みの埋め込みストレージの詳細については、生成された埋め込みコレクション を参照してください。

tokens

埋め込みモデルと LVM のコンテキストでは、トークンとは、埋め込みの作成やテキストの生成のためにモデルが処理する単語、サブワード、文字などのテキストの基本単位です。トークンは、埋め込みモデルと LM の使用量に対して課金される方法を示します。

自動埋め込みのトークンの詳細については、自動埋め込みの請求の管理 を参照してください。

レート制限

レート制限は、ユーザーが特定の時間枠内で実行できるリクエスト数に対してAPIプロバイダーによって課せられる制限であり、1 分あたりのトークン(TPM)または 1 分あたりのリクエスト数(RPM)で測定されます。これらの制限により、均等な使用が確保され、不正を防ぎ、すべてのユーザーに対してサービスの安定性とパフォーマンスが維持されます。

自動埋め込みのレート制限の詳細については、レート制限を参照してください。

量子化

Quantizationによりvector embeddingsの精度が低下することで、メモリとストレージの使用量が削減されますが、検索精度がトレードオフされます。自動埋め込みの場合、 MongoDB ベクトル検索 は次の quantization タイプをサポートします。

Quantization タイプ
説明

float

vector embeddingsを 32 ビットのfloat値として保存します。

scalar

各ベクトル次元を 32 ビット float から 8 ビット整数に縮小します。

binary

各ベクトルdimensionsを 1 ビットに縮小し、上位結果を再スコア付けします。

binaryNoRescore

各ベクトルdimensionsを再スコアリングせずに 1 ビットに縮小します。

自動埋め込みのquantizationの詳細については、quantizationについてを参照してください。

次元数

次元数は、各documentの埋め込みベクトルの長さ(配列内の数値の数)を指定します。dimensionsが大きいほど、よりセマンティックな詳細がキャプチャされ、一般的に検索精度が向上しますが、ストレージとコンピューティングのコスト(インデックスサイズ、 RAM使用量、場合によってはレイテンシ)が増加します。

詳しくは、numCandidates 選択 」を参照してください。

類似性

類似性関数は、2 つのベクトル間の類似性、またはクエリベクトルがインデックス内のベクトルに近接していることを測定するために使用されます。MongoDB ベクトル検索 は次の類似性関数をサポートしています。

  • cosine - ベクトル間の角度に基づいて類似性を測定します。

  • dotProduct - は cosine と同様の類似性を測定しますが、ベクトルの大きさを考慮します。この類似性関数は、フル忠実度または scalar quantization に推奨されます。

  • euclidean - ベクトルの端点間の距離を測定します。この類似度関数は、ベクトルが圧縮され、アセットまたはユークリッド空間の距離が適切なシグナルである、binary または binaryNoRescore の quantization に推奨します。

自動埋め込みの類似性関数の詳細については、類似性関数についてを参照してください。

ルール バッジを取得する

「MongoDB を使用した RAG」を無料でマスターしましょう!

詳細