このクイック スタートでは、ベクトル埋め込みを含むサンプルドキュメントを Atlas クラスターまたはローカル Atlas 配置にロードし、それらの埋め込みに Atlas Vector Search インデックスを作成し、セマンティック検索を実行してクエリに似たドキュメントを返す方法について説明します。
所要時間: 15 分
目的
このクイック スタートでは、次の手順を完了します。
plot_embedding_voyage_3_large
フィールドをvector
型としてインデックスするsample_mflix.embedded_movies
コレクションのインデックス定義を作成します。voyage-3-large
フィールドには、Voyage AI のplot_embedding_voyage_3_large
埋め込みモデルを使用して作成された埋め込みが含まれます。インデックス定義では2048
ベクトル次元を指定し、dotProduct
を使用して類似性を測定します。サンプル
sample_mflix.embedded_movies
コレクションを検索する Atlas Vector Search クエリを実行します。クエリは、$vectorSearch
ステージを使用してplot_embedding_voyage_3_large
フィールドを検索します。このフィールドには Voyage AI のvoyage-3-large
埋め込みモデルを使用して作成された埋め込みが含まれます。このクエリは、ベクトル埋め込みを使用してplot_embedding_voyage_3_large
フィールドでタイムトラベルという文字列を検索します。最大150
の最近傍を考慮し、結果として10
ドキュメントを返します。
詳細については、「 ラーニングの概要」を参照してください。
学習の概要
このクイック スタートでは、指定されたクエリにセマンティックに関連するテキストを含むドキュメントを Atlas クラスターから取得する方法に焦点を当てています。 ただし、画像やビデオなど、Atlas クラスターに書き込む可能性のある任意のデータを表す埋め込みにベクトル検索インデックスを作成することはできます。
サンプル データ
このクイック スタートでは、映画の詳細を含むsample_mflix.embedded_movies
コレクションを使用します。 コレクション内の各ドキュメントで、 plot_embedding_voyage_3_large
フィールドには、 plot
フィールドの string を表すベクトル埋め込みが含まれています。 コレクション内のドキュメントのスキーマの詳細については、「 Mflix サンプル データセット 」を参照してください。
ソース データとそれに対応するベクトル埋め込みを同じドキュメントに保存することで、複雑なクエリやハイブリッド検索で両方のフィールドを活用できます。 同じドキュメントに異なる埋め込みモデルから生成されたベクトル埋め込みを保存して、特定のユースケースに応じてさまざまなベクトル埋め込みモデルのパフォーマンスをテストする際にワークフローを効率化することもできます。
ベクトル埋め込み
sample_mflix.embedded_movies
コレクションとサンプル クエリ内のベクトル埋め込みは、Voyage AI voyage-3-large
埋め込みモデルを使用して作成されました。埋め込みモデルの選択は、ベクトル検索インデックスで使用するベクトルの次元とベクトル類似度関数に影響を与えます。お好みの埋め込みモデルを使用することができ、特定のユースケースに応じてモデルごとに精度が異なる可能性があるため、さまざまなモデルを試す価値があります。
独自のデータのベクトル埋め込みを作成する方法については、「ベクトル埋め込みの作成方法 」を参照してください。
ベクトル インデックスの定義
インデックスは、特定のクエリのデータベースのパフォーマンスを向上させるコレクションのドキュメントのデータのサブセットを保持するデータ構造です。 ベクトル検索インデックスは、ベクトル埋め込みを含むフィールドを指し、ベクトルの次元、およびクエリのベクトルとデータベースに保存されているベクトル間の類似性を測定するために使用される関数が含まれます。
このクイック スタートで使用されているvoyage-3-large
埋め込みモデルは、データを2048次元のベクトル埋め込みに変換し、 cosine
関数をサポートしているため、このベクトル検索インデックスでは同じ数のベクトル次元と類似性関数を指定します。
ベクトル検索クエリ
このクイック スタートで実行したクエリは集計パイプラインであり、 $vectorSearch
ステージがANN(近似最近傍)検索を実行し、その後に結果を微調整する$project
ステージが続きます。 完全一致(enn)の使用や、 filter
オプションを使用してベクトル検索の範囲を絞り込む方法など、ベクトル検索クエリのすべてのオプションを確認するには、「ベクトル検索クエリの実行 」を参照してください。
次のステップ
データから埋め込みを作成し、Atlas にロードする方法については、「埋め込みの作成 」を参照してください。
検索拡張生成 (RAG)(RAG)の実装方法については、 「 MongoDBによる取得拡張生成(RAG) 」を参照してください。
Atlas ベクトル検索 を一般的なAIフレームワークおよびサービスと統合するには、 「 MongoDB をAIテクノロジーと統合 」を参照してください。
Atlas ベクトル検索を使用して本番環境に対応できるAIチャットボットを構築するには、 「 MongoDBチャットボット フレームワーク 」を参照してください。
APIキーやクレジットを必要とせずに RG を実装する方法については、「 Atlas ベクトル検索を使用してローカル RAG 実装を構築する 」を参照してください。