MongoDB ベクトル検索を構成して、Atlas クラスター内のテキスト データのvector embeddingsを自動的に生成および管理できます。自動埋め込みを有効にすると、 MongoDB ベクトル検索 は、コレクション内の指定されたテキストフィールドのインデックス時にと、クエリ内のテキスト string のクエリ時に、指定された Vyage AI embedding model を使用して埋め込みを自動的に生成します。
自動埋め込み により、セマンティック検索を構築するプロセスが簡素化されます。vector embeddingsを自分で生成、保存、または管理する必要はありません。Atlas は埋め込みの生成、更新、クエリをネイティブに処理します。
注意
自動埋め込みを使用すると、MongoDB ベクトル検索は生成されたベクトル埋め込みをクラスターに保存します。
専有クラスター(M10+)で自動埋め込みを使用する場合は、ストレージのオートスケーリングを有効にする必要があります。クラスターのディスクスペースが不足すると、MongoDB ベクトル検索は埋め込み生成を一時停止し、インデックスは Stale 状態に移行します。ディスクスペースが解放されると、MongoDB ベクトル検索は埋め込み生成を再開します。
MongoDB ベクトル検索を配置し、 MongoDB ベクトル検索インデックスへの 自動埋め込み により、テキストデータに対してAIを使用したインテリジェントなセマンティック検索を有効にできます。MongoDB の自動埋め込み機能により、ベクトル検索実装の従来の複雑なプロセスが単一ステップのソリューションに変換されます。埋め込みインフラストラクチャ、モデル選択、統合コードを個別に管理する代わりに、簡単なフィールド構成でセマンティック検索を実装できるようになりました。
MongoDB Vector Searchインデックスを構成すると、選択した最新の Voyage AI埋め込みモデルを使用して、コレクション内のテキスト データのベクトル埋め込みが自動的に生成され、データが変更されるたびに埋め込みが同期されます。また、自然言語テキスト クエリの使用もサポートします。これらのベクトル埋め込みは、データ内の意味のある関係をキャプチャし、キーワードではなく意向に基づいて検索を可能にします。
重要
Automated Embeddings is available as a Preview feature. The feature and the corresponding documentation might change at any time during the Preview period. Do not use this feature in your production environment. We do not use any customer data from this feature to train our models at this time. To learn more, see Preview Features.
自動埋め込みの有効化と使用
自動埋め込みを有効にするには、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演算子用のMongoDBドライバー を使用する配置で使用できます。自動埋め込み機能はまだMongoDB Enterprise Edition では利用できません。
With a simple configuration change, you can enable semantic search, RAG, and memory for AI Agents, without writing embedding code, managing model infrastructure, or handling vector pipelines. That is, when deploying the MongoDB Community Edition with the MongoDB Search and Vector Search process, mongot, you can provide the Voyage AI API keys to use for generating embeddings, ideally one for indexing operations and another for query operations from different projects.
配置後:
コレクションから、セマンティック検索を有効にするテキストフィールドを選択します。
使用可能な埋め込みモデルのリストから、埋め込みモデルを選択します。
MongoDB Vector Searchインデックス定義で、
autoEmbedタイプを使用して自動埋め込みを構成します。
自動埋め込み用のMongoDB ベクトル検索インデックスの構成の詳細については、 「 ベクトル検索のフィールドにインデックスを作成する方法 」を参照してください。
MongoDB Vector Search は、 MongoDB Community Edition の初期化中に指定したAPIキーを使用して、挿入または更新した既存と新規のドキュメントの埋め込みを自動的に生成します。
クエリには、$vectorSearch パイプライン ステージのquery.textオプションを使用します。MongoDB ベクトル検索は、インデックス定義と同じ埋め込みモデルを使用してテキスト クエリの埋め込みを生成します。$vectorSearch パイプライン ステージのmodelオプションを使用して別の埋め込みモデルを指定できますが、指定した埋め込みモデルはインデックス時に使用された埋め込みモデルと互換性がある必要があります。MongoDB ベクトル検索は、MongoDB Communityの初期化中に提供したクエリ API キーを使用して、クエリ時に埋め込みを生成します。さらに学ぶには、「ベクトル検索近似最近傍探索と厳密最近傍探索クエリを実行する。」を参照してください。
You incur charges for generating embeddings using the API keys. To learn more, see Manage Billing.
埋め込みを自動化し、サンプルクエリを実行するには、MongoDB ベクトル検索クイックスタートチュートリアル を参照してください。
Voyage AI APIキー
インデックス時とクエリ時に単一のAPIキーを使用して埋め込みを生成できますが、クエリ操作がインデックス操作に悪影響を与えないようにするために、個別のAPIキーを使用することをお勧めします。
APIキーは、次の方法で生成できます。
(推奨) Atlas アカウントの使用により、Atlas UIから Voyage AI埋め込みモデルAPIキーを管理できます。
レート制限( TPM と RPM の組み合わせ)の構成や APIキーの使用状況のモニタリング など、 API キーの生成と管理の詳細については、 モデルAPIキー を参照してください。
Voyage AIから作成されたAPIキーの管理の詳細については、「APIキー」を参照してください。
After creating the keys, you must specify the keys you want to use for automated embedding when configuring mongot during deployment with MongoDB Community Edition. MongoDB Vector Search uses the Voyage AI API key that you provided during deployment of mongot to automatically generate embeddings for your data at index- and for your query text at query-time.
埋め込みストレージ
自動埋め込みインデックスはvector embeddingsを非同期に生成し、別の 予約データベース上のMongoDBクラスターに永続化します。各自動埋め込みインデックスには、対応する生成された埋め込みコレクションが 1 つだけあります。生成された埋め込みコレクションは、同じクラスター上の専用の内部データベースに保存されます。
詳細については、生成された埋め込みコレクション を参照してください。
利用可能なモデル
MongoDB Vector Search は、それぞれ特定のユースケースに合わせて最適化された、Voyage AI の最新の埋め込みモデルと統合します。
埋め込みモデル | 説明 | 1M トークンあたりの価格 |
|---|---|---|
| 大規模でコストのかかるアプリケーションに最適化されます。 | $0.02 |
| (推奨)一般的なテキスト検索のバランスの取れたパフォーマンス。 | $0.06 |
| 複雑なセマンティック関係の最大精度。 | $0.12 |
| ( コードに推奨) コード検索と技術ドキュメントに特殊化されています。 | $0.12 |
| Legacy model specialized for code search and technical documentation. Use | $0.18 |
注意
voyage-code-4 requires an Atlas deployment. On self-managed deployments, use voyage-code-3 for code search and technical documentation.
詳細については、自動埋め込みのmodel を参照してください。
重要な概念
- 埋め込みモデル
Embedding modelsは、データのセマンティックまたは基礎となる意味を取得するvector embeddingsにデータを変換するアルゴリズムです。これらのベクトルによりベクトル検索が可能になります。
To learn more about the embedding models for Automated Embedding, see Available Models.
- ベクトル埋め込み
ベクトル埋め込みは数値の配列であり、各次元はデータの異なる機能または属性を表します。ベクトルは、テキスト、画像、ビデオから非構造化データまで、任意のタイプのデータを表すために使用できます。埋め込みモデルにデータを渡すことでベクトル埋め込みを作成し、これらの埋め込みをMongoDBのようなベクトル埋め込みをサポートするデータベースに保存できます。
自動埋め込みの埋め込みストレージの詳細については、生成された埋め込みコレクション を参照してください。
- tokens
埋め込みモデルと LLM のコンテキストでは、トークンとは、埋め込みの作成やテキストの生成のためにモデルが処理する単語、サブワード、文字などのテキストの基本単位です。トークンは、埋め込みモデルと LLM の使用量に対して課金される方法を示します。
自動埋め込みのトークンの詳細については、自動埋め込みの請求の管理 を参照してください。
- レート制限
レート制限は、ユーザーが特定の時間枠内で実行できるリクエスト数に対してAPIプロバイダーによって課せられる制限であり、1 分あたりのトークン(TPM)または 1 分あたりのリクエスト数(RPM)で測定されます。これらの制限により、均等な使用が確保され、不正を防ぎ、すべてのユーザーに対してサービスの安定性とパフォーマンスが維持されます。
自動埋め込みのレート制限の詳細については、レート制限を参照してください。
- 量子化
Quantizationによりvector embeddingsの精度が低下することで、メモリとストレージの使用量が削減されますが、検索精度がトレードオフされます。自動埋め込みの場合、 MongoDB ベクトル検索 は次の quantization タイプをサポートします。
Quantization タイプ説明floatvector embeddingsを 32 ビットのfloat値として保存します。
scalar各ベクトル次元を 32 ビット float から 8 ビット整数に縮小します。
binary各ベクトルdimensionsを 1 ビットに縮小し、上位結果を再スコア付けします。
binaryNoRescore各ベクトルdimensionsを再スコアリングせずに 1 ビットに縮小します。
自動埋め込みのquantizationの詳細については、quantizationについてを参照してください。
- 次元数
次元数は、各documentの埋め込みベクトルの長さ(配列内の数値の数)を指定します。dimensionsが大きいほど、よりセマンティックな詳細がキャプチャされ、一般的に検索精度が向上しますが、ストレージとコンピューティングのコスト(インデックスサイズ、 RAM使用量、場合によってはレイテンシ)が増加します。
詳しくは、「
numCandidates選択 」を参照してください。- 類似性
類似性関数は、2 つのベクトル間の類似性、またはクエリベクトルがインデックス内のベクトルに近接していることを測定するために使用されます。MongoDB ベクトル検索 は次の類似性関数をサポートしています。
cosine- ベクトル間の角度に基づいて類似性を測定します。scalar量子化のような非正規化ベクトルには、この類似度関数をお勧めします。dotProduct-cosineと同様の類似性を測定しますが、ベクトルの大きさを考慮します。フロート (完全な忠実度) 量子化のような正規化されたベクトルには、この類似度関数をお勧めします。euclidean- ベクトルの端点間の距離を測定します。この類似度関数は、ベクトルが圧縮され、アセットまたはユークリッド空間の距離が適切なシグナルである、binaryまたはbinaryNoRescoreの quantization に推奨します。
自動埋め込みの類似性関数の詳細については、類似性関数についてを参照してください。