LangChain、Amazon SageMaker JumpStart、MongoDB Atlas セマンティック検索による検索拡張生成 | アマゾン ウェブ サービス

LangChain、Amazon SageMaker JumpStart、MongoDB Atlas セマンティック検索による検索拡張生成 | アマゾン ウェブ サービス

生成AI モデルには企業運営に革命をもたらす可能性がありますが、企業はデータの保護や AI 生成コンテンツの品質確保などの課題を克服しながら、その力を活用する方法を慎重に検討する必要があります。

検索拡張生成 (RAG) フレームワークは、ドキュメント リポジトリ、データベース、API などの複数のソースからの外部データでプロンプトを拡張し、ドメイン固有のタスクに効果的な基盤モデルを作成します。 この投稿では、RAG モデルの機能を紹介し、Vector Search 機能を備えた MongoDB Atlas の変革の可能性を強調します。

MongoDBアトラス は、データ駆動型アプリケーションの開発を加速および簡素化するデータ サービスの統合スイートです。 そのベクトル データ ストアは運用データ ストレージとシームレスに統合されているため、別個のデータベースが必要ありません。 この統合により、次のような強力なセマンティック検索機能が可能になります。 ベクトル検索、セマンティック検索と AI を活用したアプリケーションを迅速に構築する方法。

アマゾンセージメーカー 企業が機械学習 (ML) モデルを構築、トレーニング、展開できるようにします。 Amazon SageMaker ジャンプスタート ML を始めるのに役立つ事前トレーニングされたモデルとデータを提供します。 SageMaker JumpStart ランディング ページを通じて、事前トレーニングされたモデルとデータにアクセス、カスタマイズ、デプロイできます。 Amazon SageMakerスタジオ 数回クリックするだけで。

Amazon Lex は、企業が自然で本物のような対話を行うチャットボットや音声ボットを作成するのに役立つ会話型インターフェイスです。 Amazon Lex を生成 AI と統合することで、企業はユーザー入力が一貫性のあるコンテキストに関連した応答にシームレスに移行する総合的なエコシステムを作成できます。

ソリューションの概要

次の図は、ソリューションのアーキテクチャを示しています。

ソリューションの概要

次のセクションでは、このソリューションとそのコンポーネントを実装する手順を説明します。

MongoDB クラスターをセットアップする

無料枠の MongoDB Atlas クラスターを作成するには、次の手順に従ってください。 クラスターを作成する。 データベースをセットアップする アクセス およびネットワーク アクセス.

SageMaker 埋め込みモデルをデプロイする

埋め込みモデル (ALL MiniLM L6 v2) を選択できます。 SageMaker JumpStart モデル、ノートブック、ソリューション ページで見やすくするために変数を解析したりすることができます。

SageMaker JumpStart モデル、ノートブック、ソリューション

選択する 配備します モデルをデプロイします。

モデルが正常にデプロイされていることを確認し、エンドポイントが作成されていることを確認します。

モデルは正常にデプロイされました

ベクトルの埋め込み

ベクトルの埋め込み テキストまたは画像をベクトル表現に変換するプロセスです。 次のコードを使用すると、SageMaker JumpStart でベクター埋め込みを生成し、ドキュメントごとに作成されたベクターでコレクションを更新できます。

payload = {"text_inputs": [document[field_name_to_be_vectorized]]}
query_response = query_endpoint_with_json_payload(json.dumps(payload).encode('utf-8'))
embeddings = parse_response_multiple_texts(query_response) # update the document
update = {'$set': {vector_field_name :  embeddings[0]}}
collection.update_one(query, update)

上記のコードは、コレクション内の単一のオブジェクトを更新する方法を示しています。 すべてのオブジェクトを更新するには、次のようにします 説明書.

MongoDB ベクター データ ストア

MongoDB アトラス ベクトル検索 は、MongoDB にベクトル データを保存および検索できる新機能です。 ベクトル データは、高次元空間内の点を表すデータの一種です。 このタイプのデータは、ML および人工知能アプリケーションでよく使用されます。 MongoDB Atlas Vector Search は、と呼ばれる手法を使用します。 k最近傍 (k-NN) を使用して類似ベクトルを検索します。 k-NN は、指定されたベクトルに最も類似した k 個のベクトルを見つけることによって機能します。 最も類似したベクトルとは、ユークリッド距離の観点から指定されたベクトルに最も近いベクトルです。

ベクトル データを運用データの隣に保存すると、異なるストレージ システム間でデータを移動する必要性が減り、パフォーマンスが向上します。 これは、ベクトル データへのリアルタイム アクセスが必要なアプリケーションにとって特に有益です。

ベクトル検索インデックスを作成する

次のステップは、 MongoDB ベクトル検索インデックス 前のステップで作成したベクトルフィールド上で。 MongoDB は knnVector ベクトル埋め込みのインデックスの型。 ベクトル フィールドは、数値の配列として表す必要があります (BSON int32、int64、または double データ型のみ)。

参照する knnVector タイプの制限を確認する の制限の詳細については、 knnVector タイプ。

次のコードはインデックス定義のサンプルです。

{ "mappings": { "dynamic": true, "fields": { "egVector": { "dimensions": 384, "similarity": "euclidean", "type": "knnVector" } } }
}

ディメンションは埋め込みモデルのディメンションと一致する必要があることに注意してください。

ベクター データ ストアにクエリを実行する

次を使用してベクター データ ストアにクエリを実行できます。 ベクター検索集約パイプライン。 ベクトル検索インデックスを使用して、 セマンティック検索 ベクター データ ストア上にあります。

次のコードは、検索定義のサンプルです。

{ $search: { "index": "<index name>", // optional, defaults to "default" "knnBeta": { "vector": [<array-of-numbers>], "path": "<field-to-search>", "filter": {<filter-specification>}, "k": <number>, "score": {<options>} } }
}

SageMaker の大規模言語モデルをデプロイする

SageMaker JumpStart 基盤モデル テキストの要約、質問応答、自然言語推論など、さまざまな自然言語処理 (NLP) タスクを解決するために使用される、事前トレーニングされた大規模言語モデル (LLM) です。 さまざまなサイズと構成が用意されています。 このソリューションでは、 ハグ顔 FLAN-T5-XLモデル。

SageMaker JumpStart で FLAN-T5-XL モデルを検索します。

FLAN-T5-XL を検索する

選択する 配備します FLAN-T5-XL モデルをセットアップします。

配備します

モデルが正常にデプロイされ、エンドポイントがアクティブであることを確認します。

LangChain、Amazon SageMaker JumpStart、MongoDB Atlas セマンティック検索による検索拡張生成 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。

Amazon Lex ボットを作成する

Amazon Lex ボットを作成するには、次の手順を実行します。

  1. Amazon Lexコンソールで、選択します ボットを作成する.

ボットを作成する

  1. ボット名、名前を入力します。
  2. ランタイムの役割選択 基本的なAmazonLex権限を持つロールを作成します.
    LangChain、Amazon SageMaker JumpStart、MongoDB Atlas セマンティック検索による検索拡張生成 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。
  3. 言語設定を指定し、選択します クリックします.
    LangChain、Amazon SageMaker JumpStart、MongoDB Atlas セマンティック検索による検索拡張生成 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。
  4. サンプル発話を追加します NewIntent UIと選択 意図を保存.
    LangChain、Amazon SageMaker JumpStart、MongoDB Atlas セマンティック検索による検索拡張生成 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。
  5. に移動します FallbackIntent デフォルトで作成されたものを選択して切り替えます アクティブ セクションに フリフィルメント のセクションから無料でダウンロードできます。
    アクティブに切り替える
  6. 選択する 完成に向けてあなたの背中を押してくれる、執筆のための持続可能で本物のモーメンタムを作り出す。 ビルドが成功したら、選択します ホイール試乗.
    ビルドとテスト
  7. テストする前に、歯車アイコンを選択します。
    LangChain、Amazon SageMaker JumpStart、MongoDB Atlas セマンティック検索による検索拡張生成 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。
  8. 特定します AWSラムダ MongoDB Atlas および LLM と対話して応答を提供する関数。 ラムダ関数を作成するには次のようにします これらのステップ.
    9. AWS Lambda 関数を指定する
  9. これで、LLM と対話できるようになります。

クリーンアップ

リソースをクリーンアップするには、次の手順を実行します。

  1. Amazon Lex ボットを削除します。
  2. Lambda 関数を削除します。
  3. LLM SageMaker エンドポイントを削除します。
  4. エンベディング モデルの SageMaker エンドポイントを削除します。
  5. MongoDB Atlas クラスターを削除します。

まとめ

この投稿では、MongoDB Atlas セマンティック検索を使用し、SageMaker JumpStart のモデルと統合する単純なボットを作成する方法を示しました。 このボットを使用すると、MongoDB Atlas で生成されたコンテキストと組み合わせながら、SageMaker Jumpstart でさまざまな LLM とのユーザー操作のプロトタイプを迅速に作成できます。

いつものように、AWS はフィードバックを歓迎します。 フィードバックや質問をコメント欄に残してください。


著者について

LangChain、Amazon SageMaker JumpStart、MongoDB Atlas セマンティック検索による検索拡張生成 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。

イゴール・アレクゼーフ AWS のデータおよび分析ドメインのシニア パートナー ソリューション アーキテクトです。 彼の役割では、Igor は戦略的パートナーと協力して、AWS に最適化された複雑なアーキテクチャの構築を支援しています。 AWS に入社する前は、データ/ソリューション アーキテクトとして、Hadoop エコシステムのいくつかのデータ レイクを含む、ビッグ データ ドメインで多くのプロジェクトを実装しました。 データ エンジニアとして、AI/ML を不正検出やオフィス オートメーションに適用することに携わっていました。


LangChain、Amazon SageMaker JumpStart、MongoDB Atlas セマンティック検索による検索拡張生成 |アマゾン ウェブ サービス PlatoBlockchain データ インテリジェンス。垂直検索。あい。バブスリニバサン
MongoDB のシニア パートナー ソリューション アーキテクトです。 現在の役割では、AWS と協力して、AWS および MongoDB ソリューションの技術的統合と参照アーキテクチャを構築しています。 彼は、データベースおよびクラウド テクノロジで XNUMX 年以上の経験を持っています。 彼は、複数の地域にまたがる複数のグローバル システム インテグレータ (GSI) と連携する顧客に技術ソリューションを提供することに情熱を注いでいます。

タイムスタンプ:

より多くの AWS機械学習