Docs Menu
Docs Home
/ /

MongoDBによる検索拡張生成(RAG)

検索拡張生成(RAG)は、大規模な言語モデル(llm)を追加のデータで強化して、より正確な応答を生成できるようにするために使用されるアーキテクチャです。MongoDB ベクトル検索を基盤とした検索システムと LVM を組み合わせて、生成系AIアプリケーションに RAG を実装できます。

MongoDB ベクトル検索で RAG をすばやく試すには、 MongoDB Search Playground で チャットボット Demo Builder を使用します。詳しくは、検索プレイグラウンドのチャットボット デモ ビルダを参照してください。

MongoDB ベクトル検索を使用して独自の RAG システムを実装するには、このページのチュートリアルを参照してください。

LLM を使用する際、以下の制限事項に直面する可能性があります。

  • 古いデータ: LLM は特定の時点まで静的なデータセットで訓練されます。これは、その知識ベースが限られており、古いデータを使用する可能性があることを意味します。

  • 追加データへのアクセスなし:LLM は、ローカルデータ、パーソナライズされたデータ、またはドメイン固有のデータにアクセスできません。したがって、特定の領域に関する知識が不足している可能性があります。

  • 幻覚: 不完全なデータまたは古いデータに基づくと、LLMは不正確な応答を生成する可能性があります。

RAGを実装するには次の手順を持つことで、これらの制限に対処できます。

  1. 取り込み: MongoDBなどのベクトルデータベースにカスタム データをベクトル埋め込みとして保存します。これにより、最新のパーソナライズされたデータの知識ベースを作成できます。

  2. 検索: MongoDB ベクトル検索などの検索ソリューションを使用して、ユーザーの質問に基づいてデータベースからセマンティックに類似したドキュメントを検索します。これらのドキュメントは、TLM に関連するデータを追加します。

  3. 生成: LLM にプロンプトを出します。LLM は取得されたドキュメントをコンテキストとして使用し、より正確で関連性の高い応答を生成して、ハルシネーションを減らします。

RAGは、AIシステムがパーソナライズされたドメイン固有の応答を提供できるようにするため、AIチャットボットを構築するための効果的なアーキテクチャです。本番環境のチャットボットを作成するには、リクエストをルーティングするサーバーを設定し、RAG実装の上にユーザーインターフェースをビルドしてください。

MongoDB ベクトル検索で RG を実装するには、 MongoDBにデータを取り込み 、 MongoDB ベクトル検索を使用してドキュメントを検索し、 LM を使用して応答を生成します。このセクションでは、 MongoDB ベクトル検索を使用した基本的な、またはネイティブの RAG実装のコンポーネントについて説明します。段階的な手順については、「 チュートリアル 」を参照してください。

MongoDB ベクトル検索を使用した RG フローチャート

RG のデータ取り込みには、カスタム データを処理し、ベクトルデータベースに保存して取得に準備する方法が含まれます。MongoDBをベクトルデータベースとして基本的な取り込みパイプラインを作成するには、次の手順を実行します。

  1. データを準備します。

    データをロードし、処理し、チャンク化して、RAG アプリケーション用に準備します。チャンク処理とは、最適な検索のためにデータを小さな単位に分割する処理です。

  2. データをベクトル埋め込みに変換します。

    埋め込みモデル を使用してデータを ベクトル埋め込み に変換します。詳細については、「ベクトル埋め込みの作成方法」を参照してください。

  3. データと埋め込みをMongoDBに保存します。

    これらの埋め込みをクラスターに保存します。埋め込みは、コレクション内の他のデータと一緒にフィールドとして保存します。

取得システムを構築するには、ベクトルデータベースから最も関連するドキュメントを検索して返すことが含まれ、TLM で増加します。 MongoDB ベクトル検索で関連するドキュメントを検索するには、ユーザーの質問をベクトル埋め込みに変換し、MongoDBコレクション内のデータに対してベクトル検索クエリーを実行し、最も類似した埋め込みを持つドキュメントを検索します。

MongoDB ベクトル検索を使用して基本的な検索を実行するには、次の手順を実行します。

  1. ベクトル埋め込みを含むコレクションにMongoDB ベクトル検索インデックスを定義します。

  2. ユーザーの質問に基づいてドキュメントを取得するには、次のいずれかの方法を選択します。

    • MongoDB ベクトル検索 を一般的なフレームワークまたはサービスと統合して使用します。これらの統合には、 MongoDB ベクトル検索で検索システムを簡単に構築できる組み込みのライブラリとツールが含まれています。

    • 独自の検索システムをビルドします。独自の関数とパイプラインを定義して、ユースケースに固有のMongoDB ベクトル検索クエリを実行できます。

      MongoDB ベクトル検索を使用して基本的な検索システムを構築する方法については、チュートリアル を参照してください。

応答を生成するには、検索システムを LLM と組み合わせます。ベクトル検索を実行して関連するドキュメントを取得した後、ユーザーの質問と関連するドキュメントをコンテキストとして LLM に提供し、LLM がより正確な応答を生成できるようにします。

LLM に接続するには、次のいずれかの方法を選択します。

  • MongoDB ベクトル検索 を一般的なフレームワークまたはサービスと統合して使用します。これらの統合には組み込みのライブラリとツールが含まれており、最小限の設定で LM に接続するのに役立ちます。

  • LLM の API を呼び出します。ほとんどの AI プロバイダーは、応答を生成するために使用できる生成モデルへの API を提供しています。

  • オープンソース LVM をロードします。 APIキーまたはクレジットがない場合は、アプリケーションからローカルにロードすることで、オープンソースの LVM を使用できます。 実装例については、「 MongoDB ベクトル検索を使用してローカル RAG 実装を構築する 」チュートリアルを参照してください。

次の例は、MongoDB Vector Search を基盤とした検索システムで RAG を実装する方法を示しています。お好みの埋め込みモデル、LLM、プログラミング言語を選択して開始してください:

この例を完了するには、次のものが必要です。

その他の RAG チュートリアルについては、次のリソースを参照してください。

AIエージェントを構築し、エージェント RG を実装するには、MongoDBでAIエージェントを構築を参照してください。

RG アプリケーションを最適化するには、Voyage AIなどの強力な埋め込みモデルを使用して高品質のベクトル埋め込みを生成していることを確認してください。

さらに、 MongoDB ベクトル検索 は高度な検索システムをサポートします。ベクトルデータをクラスター内の他のデータとシームレスにインデックスできます。これにより、コレクション内の他のフィールドを事前にフィルタリングしたり、セマンティック検索と全文検索結果を組み合わせたハイブリッド検索を実行したりすることで、結果を向上させることができます。

次のリソースを使用することもできます。

埋め込みモデルの選択、チャンク化戦略、評価に関する詳細は、次のリソースを参照してください。

戻る

ユースケースと設計パターン

ルール バッジを取得する

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

詳細

項目一覧