「Amazon SageMaker JumpStartを使用して、Generative AIとRAGを活用して安全なエンタープライズアプリケーションを構築する」

Building secure enterprise applications using Amazon SageMaker JumpStart, Generative AI, and RAG.

生成AIは、会話、ストーリー、画像、動画、音楽など、新しいコンテンツやアイデアを作成できるAIの一種です。これは、膨大な量のデータで事前に訓練された大規模な言語モデル(LLM)によって動作します。これらのモデルは、基礎モデル(FM)とも呼ばれます。

これらのLLMまたはFMの登場により、顧客は広告、知識管理、およびカスタマーサポート向けの生成AIベースのアプリケーションを簡単に構築できます。これらのアプリケーションの影響を実感することで、顧客により洞察が提供され、組織のパフォーマンス効率にポジティブな影響を与えることができます。情報の簡単な検索と一部の時間のかかるタスクの自動化も可能です。

AWS上の生成AIを使用すると、アプリケーションを再構築し、完全に新しい顧客体験を作り出し、全体的な生産性を向上させることができます。

この記事では、AWS Amplifyを使用してセキュアなエンタープライズアプリケーションを構築し、Amazon SageMaker JumpStart基礎モデル、Amazon SageMakerエンドポイント、およびAmazon OpenSearch Serviceを呼び出す方法について説明します。この記事は、AWSサービスを使用して生成AI領域でのセキュアなエンタープライズアプリケーションを構築するための参考資料として使用できます。

ソリューションの概要

このソリューションでは、SageMaker JumpStartモデルを使用して、テキストからテキスト、テキストから画像、およびテキスト埋め込みモデルをSageMakerエンドポイントとして展開します。これらのSageMakerエンドポイントは、Amazon API GatewayとAWS Lambda関数を介してAmplify Reactアプリケーションから消費されます。アプリケーションとAPIへの意図しないアクセスから保護するために、Amazon CognitoがAmplify React、API Gateway、およびLambda関数に統合されています。SageMakerエンドポイントとLambdaはプライベートVPCに展開されているため、API GatewayからLambda関数への通信はAPI Gateway VPCリンクを使用して保護されます。次のワークフロー図は、このソリューションを示しています。

このワークフローには、次のステップが含まれます:

  1. 初期セットアップ:SageMaker JumpStart FMはSageMakerエンドポイントとして展開され、SageMaker JumpStartモデルから3つのエンドポイントが作成されます。テキストから画像を生成するために使用されるモデルは、Stability AI Stable Diffusion基礎モデルです。ソリューションで使用するテキストからテキストを生成するためのテキストモデルは、Hugging Face Flan T5 XLモデルです。入力された質問の文脈を検索するため、埋め込みを生成するために使用するテキスト埋め込みモデルは、Hugging Face GPT 6B FP16埋め込みモデルです。使用ケースとモデルのパフォーマンスベンチマークに基づいて、別のLLMを展開することも可能です。基礎モデルについての詳細は、「Amazon SageMaker JumpStartのはじめ方」を参照してください。
  2. コンピュータからReactアプリケーションにアクセスします。Reactアプリケーションには、画像のプロンプトを受け取り生成された画像を表示するページ、テキストのプロンプトを受け取り生成されたテキストを表示するページ、および質問を受け取り、質問に一致する文脈を見つけ、テキストからテキストモデルによって生成された回答を表示するページがあります。
  3. Amplifyライブラリを使用して構築されたReactアプリケーションはAmplifyにホストされ、AmplifyホストURLでユーザーに提供されます。AmplifyはReactアプリケーションのホスティング環境を提供します。Amplify CLIを使用してAmplifyホスティング環境をブートストラップし、コードをAmplifyホスティング環境に展開します。
  4. 認証されていない場合、Amplify React UIライブラリを使用してAmazon Cognitoに対して認証されます。
  5. 入力を提供してフォームを送信すると、リクエストはAPI Gatewayを介して処理されます。
  6. Lambda関数はユーザーの入力をサニタイズし、対応するSageMakerエンドポイントを呼び出します。Lambda関数は、サニタイズされたユーザーの入力からLLMが期待する形式のプロンプトを構築します。これらのLambda関数は、LLMからの出力を再フォーマットし、レスポンスをユーザーに送信します。
  7. テキストからテキスト(Flan T5 XXL)、テキストから埋め込み(GPTJ-6B)、およびテキストから画像モデル(Stability AI)のためにSageMakerエンドポイントが展開されます。推奨されるデフォルトのSageMakerインスタンスタイプを使用して、3つの別々のエンドポイントが展開されます。
  8. ドキュメントの埋め込みは、テキストから埋め込みモデルを使用して生成され、これらの埋め込みはOpenSearch Serviceにインデックスされます。 k-Nearest Neighbor(k-NN)インデックスが有効になっており、OpenSearch Serviceからの埋め込みの検索が可能です。
  9. AWS Fargateジョブはドキュメントを取り、それらをより小さなパッケージに分割し、テキストから埋め込みLLMモデルを呼び出し、返された埋め込みをOpenSearch Serviceにインデックスして以前説明したように文脈を検索します。

データセットの概要

このソリューションで使用するデータセットは、Hugging Faceのリポジトリ内のpile-of-lawです。このデータセットは、法務・行政データの大規模なコーパスです。この例では、このリポジトリ内のtrain.cc_casebooks.jsonl.xzを使用します。これは、LLMsが要求するJSONL形式でキュレーションされた教育ケースブックのコレクションです。

前提条件

開始する前に、以下の前提条件を満たしていることを確認してください:

  • AWSアカウント。
  • AWS Identity and Access Management(IAM)実行ロールに、Amazon SageMaker Studioドメインの管理ポリシーがアタッチされていること。ロールに権限を割り当てる手順については、「Amazon SageMaker API Permissions: Actions, Permissions, and Resources Reference」を参照してください。この場合、Amazon Augmented AI(Amazon A2I)に割り当てられた権限を割り当てる必要があります。詳細については、「Amazon SageMaker Identity-Based Policy Examples」を参照してください。
  • Amazon Simple Storage Service(Amazon S3)バケット。手順については、「Creating a bucket」を参照してください。
  • このポストでは、Pythonを使用してAWS Cloud Development Kit(AWS CDK)を使用します。ローカル環境をセットアップし、開発アカウントをブートストラップするための手順については、「Getting Started with the AWS CDK」の指示に従ってください。
  • このAWS CDKプロジェクトでは、SageMakerインスタンス(ml.g5.2xlargeが2つ、ml.p3.2xlargeが1つ)が必要です。クォータの増加をリクエストする必要があるかもしれません。

ソリューションの実装

このAWS CDKプロジェクトには、すべてのアーキテクチャコンポーネントが含まれています。このソリューションを実装するには、以下の手順を実行してください:

  1. GitHubリポジトリをコンピュータにクローンします。
  2. ルートフォルダに移動します。
  3. Python仮想環境を初期化します。
  4. requirements.txtファイルで指定された必要な依存関係をインストールします。
  5. プロジェクトフォルダでAWS CDKを初期化します。
  6. プロジェクトフォルダでAWS CDKをブートストラップします。
  7. AWS CDKのデプロイコマンドを使用して、スタックをデプロイします。
  8. プロジェクトフォルダ内のAmplifyフォルダに移動します。
  9. Amplifyを初期化し、CLIが提供するデフォルトを受け入れます。
  10. Amplifyホスティングを追加します。
  11. Amplifyフォルダ内からAmplifyフロントエンドを公開し、実行の最後に提供されるドメイン名をメモします。
  12. Amazon Cognitoコンソールに移動し、デプロイでプロビジョニングされたAmazon Cognitoインスタンスにユーザーを追加します。
  13. ステップ11でのドメイン名に移動し、Amazon Cognitoのログイン詳細を提供してアプリケーションにアクセスします。

OpenSearchのインデックス作成ジョブをトリガーする

AWS CDKプロジェクトは、GenAIServiceTxt2EmbeddingsOSIndexingLambdaという名前のLambda関数をデプロイしました。Lambdaコンソールでこの関数に移動します。

次のスクリーンショットに示すように、空のペイロードでテストを実行します。

このLambda関数は、VPC内で実行されるAmazon Elastic Container Service(Amazon ECS)上のFargateタスクをトリガーします。このFargateタスクは、AWS CDKプロジェクトの一部としてデプロイされたテキストから埋め込みインデックスを作成するために、含まれているJSONLファイルをセグメント化します。各セグメントの埋め込みは、テキストから埋め込みを呼び出すLLMエンドポイントの結果です。

クリーンアップ

将来の料金を避けるために、SageMakerのエンドポイントを削除し、すべてのLambda関数を停止します。また、アプリケーションワークフローの実行中に作成したAmazon S3の出力データも削除します。バケットを削除する前に、S3バケット内のデータを削除する必要があります。

結論

このポストでは、Generative AIとRAGを使用して安全でエンタープライズアプリケーションを作成するためのエンドツーエンドのアプローチを示しました。このアプローチは、AWS上で安全かつスケーラブルなGenerative AIアプリケーションを構築するために使用することができます。AWS CDKアプリをアカウントにデプロイし、Generative AIソリューションを構築することをお勧めします。

追加のリソース

Generative AIアプリケーションに関する詳細情報については、以下を参照してください:

  • Amazon SageMakerの基礎モデルを使用した自動クイズ生成によるAWS認定試験の学習を加速させる
  • Amazon SageMaker、Amazon OpenSearch Service、Streamlit、およびLangChainを使用した強力な質問応答ボットの構築
  • AWS CDKを使用してAmazon SageMaker JumpStartから生成AIモデルを展開する
  • Amazon SageMaker JumpStartを使用したAWS上での生成AIの始め方
  • Amazon SageMaker JumpStartを使用して、大規模な言語モデルを活用したサーバーレスの会議要約バックエンドの構築

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AIニュース

「新しい取り組みによる輸送とエネルギーの排出削減法」

これらの新製品の特徴と展開は、人々、都市計画者、政策立案者が持続可能な未来を構築するための行動を取るのに役立ちます

AIニュース

「LlaMA 2の始め方 | メタの新しい生成AI」

イントロダクション OpenAIからGPTがリリースされて以来、多くの企業が独自の堅牢な生成型大規模言語モデルを作成するための...

AI研究

新しい人工知能(AI)の研究アプローチは、統計的な視点からアルゴリズム学習の問題として、プロンプトベースのコンテキスト学習を提示します

インコンテキスト学習は、最近のパラダイムであり、大規模言語モデル(LLM)がテストインスタンスと数少ないトレーニング例を...

機械学習

AIHelperBotとの出会い 秒単位でSQLクエリを構築する人工知能(AI)ベースのSQLエキスパート

現代のデジタルテクノロジーの魅力的な世界では、人工知能(AI)チャットボットが人々のオンライン体験を向上させます。人工...

データサイエンス

スコア! チームNVIDIAが推薦システムでトロフィーを獲得しました

5人の機械学習の専門家が4つの大陸に分散し、最先端のレコメンデーションシステムを構築するための激しい競争で3つのタスク全...

AIニュース

Adobe Illustratorの「Generative Recolor」AIであなたの画像を変換しましょう

デザインソフトウェアの有名企業Adobeは、デザイナーとマーケターを強化する発表をしました。Adobe Illustratorの最先端のAI...