概要
生成 AI アプリケーションの構築における主な課題の 1 つは、クラウド設定が複雑であることと深い AI 専門知識が必要となることです。AWS の生成 AI アプリケーションビルダーはこのプロセスを簡素化し、AI に関する広範な知識がなくても AI アプリケーションの開発、テスト、デプロイを支援します。このソリューションは、ビジネスデータを簡単に組み込み、大規模言語モデル (LLM) のパフォーマンスを比較し、AI エージェントによる複数ステップのタスクを実行し、拡張可能なアプリケーションを迅速に構築し、エンタープライズグレードのアーキテクチャでデプロイすることで、AI 開発をスピードアップします。生成 AI アプリケーションビルダーには、すぐに使える生成 AI チャットボットと API が搭載されており、ビジネスプロセスやアプリケーションにすばやく統合できます。
このソリューションには、Amazon SageMaker にデプロイされた LLM に加えて、Amazon Bedrock とその LLM との統合も含まれています。検索拡張生成 (RAG) 用の Amazon Bedrock ツールを使用して AI への対応を強化し、Amazon Bedrock ガードレールを使用して保護手段を実装してハルシネーションを軽減し、Amazon Bedrock のエージェントを使用して複雑なタスク用のワークフローを作成します。LangChain または AWS Lambda を使用して他の AI モデルに接続することもできます。シンプルなコード不要のウィザードの使用を開始して、会話型検索、生成 AI 搭載チャットボット、テキスト生成、テキスト要約のための AI アプリケーションを構築しましょう。
メリット
このソリューションにより、ユーザーは設定の異なる複数のインスタンスをデプロイして出力とパフォーマンスを比較するのに必要な手間のかかる作業を省き、すばやく試すことができます。さまざまな LLM、プロンプトエンジニアリング、エンタープライズナレッジベース、ガードレール、AI エージェントその他のパラメータに関する複数の設定を試してみましょう。
Amazon Bedrock で入手可能なモデルなど、さまざまな LLM へのコネクタがあらかじめ組み込まれているため、このソリューションでは、お好みのモデルだけでなく、お好みの AWS や主要な FM サービスを柔軟にデプロイできます。Amazon Bedrock のエージェントがさまざまなタスクやワークフローを実行できるようにすることもできます。
AWS Well-Architected の設計原則に基づいて構築されたこのソリューションは、高可用性と低レイテンシーを実現するエンタープライズグレードのセキュリティとスケーラビリティをもたらし、高いパフォーマンス基準でアプリケーションへのシームレスな統合が可能になります。
既存のプロジェクトを統合するか、追加の AWS サービスをネイティブに接続することで、このソリューションの機能を拡張できます。このアプリケーションはオープンソースであるため、付属の LangChain オーケストレーションレイヤーや Lambda 関数を使用してお好みのサービスに接続できます。
技術的な詳細情報
このアーキテクチャは、実装ガイドと、次の 3 つのアーキテクチャをデプロイする付属の AWS CloudFormation テンプレートを使用して自動的にデプロイできます。
- エージェントユースケース – エージェントユースケースでは、ユーザーは Amazon Bedrock のエージェントを使用してタスクを引き継がせて完了させることができます。モデルを選択し、自然言語でいくつかの命令を記述すれば、Amazon Bedrock の AI エージェントがお客様のデータソースやその他の API に接続してタスクを分析、調整、完了し、お客様のリクエストに応えます。
- テキストのユースケース – テキストのユースケースでは、ユーザーは生成 AI を使用して自然言語インターフェイスを体験できます。このユースケースは、新規または既存のアプリケーションに統合でき、デプロイダッシュボードからデプロイすることも、提供された URL を使用して独立してデプロイすることもできます。
- デプロイダッシュボード – デプロイダッシュボードは、管理者ユーザーがユースケースを表示、管理、作成するための管理コンソールとして機能するウェブ UI です。このダッシュボードにより、お客様は複数の設定の LLM とデータを使用して、生成 AI アプリケーションを迅速に実験、反復、デプロイできます。
-
エージェントのユースケース
-
テキストユースケース
-
デプロイダッシュボード
-
エージェントのユースケース
-
ステップ 1
ビジネスユーザーは、デプロイダッシュボードを使用してユースケースをデプロイします。ビジネスユーザーはユースケース UI にサインインします。
ステップ 2
Amazon CloudFront が、Amazon Simple Storage Service (Amazon S3) バケットでホストされているウェブ UI を提供します。
ステップ 3
ウェブ UI は、Amazon API Gateway を使用して構築された WebSocket 統合を利用します。API Gateway は、認証ユーザーが属する Amazon Cognito グループに基づいて適切な AWS Identity and Access Management (IAM) ポリシーを返すカスタム AWS Lambda オーソライザー関数によってサポートされています。ステップ 4
Amazon Cognito はユーザーを認証し、CloudFront ウェブ UI と API Gateway の両方をサポートします。ステップ 5
ソリューションにより、ビジネスユーザーからの受信リクエストは、API Gateway から Amazon Simple Queue Service (Amazon SQS) キューに渡され、その後 Lambda 関数に渡されます。キューにより、API Gateway と Lambda 統合の非同期操作が可能になります。キューは接続情報を Lambda 関数に渡し、Lambda 関数は結果を API Gateway WebSocket 接続に直接送信して、長時間実行される推論呼び出しをサポートします。
ステップ 6
Lambda 関数は Amazon DynamoDB を使用して必要に応じてユースケース設定を取得します。
ステップ 7
Lambda 関数は、ユーザー入力と関連するユースケース設定を使用してリクエストペイロードを作成し、リクエストペイロードを Amazon Bedrock Agents に送信してユーザーの意図に応えます。ステップ 8
Amazon Bedrock のエージェントからレスポンスが返されると、Lambda 関数は API Gateway WebSocket を介してレスポンスを送信し、クライアントアプリケーションで使用できるようにします。ステップ 9
このソリューションは Amazon CloudWatch を使用して、さまざまなサービスから運用メトリクスを収集し、デプロイのパフォーマンスと運用状態を監視できるカスタムダッシュボードを生成します。
-
テキストユースケース
-
ステップ 1
管理者ユーザーは、デプロイダッシュボードを使用してユースケースをデプロイします。ビジネスユーザーはユースケース UI にログインします。
ステップ 2
CloudFront は S3 バケットでホストされているウェブ UI を提供します。ステップ 3
ウェブ UI は、API Gateway を使用して構築された WebSocket 統合を利用します。 API Gateway は、認証ユーザーが属する Amazon Cognito グループに基づいて適切な IAM ポリシーを返すカスタム Lambda オーソライザー関数によってサポートされています。ポリシーは DynamoDB に保存されます。ステップ 4
Amazon Cognito はユーザーを認証し、CloudFront ウェブ UI と API Gateway の両方をサポートします。
ステップ 5
ビジネスユーザーからの受信リクエストは、API Gateway から Amazon SQS キューに渡され、その後 LangChain Orchestrator に渡されます。 LangChain Orchestrator は、ビジネスユーザーからのリクエストに応えるためのビジネスロジックを提供する Lambda 関数とレイヤーのコレクションです。キューにより、API Gateway と Lambda 統合の非同期操作が可能になります。キューは接続情報を Lambda 関数に渡し、Lambda 関数は結果を API Gateway WebSocket 接続に直接送信して、長時間実行される推論呼び出しをサポートします。
ステップ 6
LangChain Orchestrator は、DynamoDB を使用して、設定された LLM オプションと必要なセッション情報 (チャット履歴など) を取得します。ステップ 7
デプロイにナレッジベースが設定されている場合、LangChain Orchestrator は Amazon Kendra または Amazon Bedrock Knowledge Bases を利用して検索クエリを実行し、ドキュメントの抜粋を取得します。ステップ 8
LangChain Orchestrator は、ナレッジベースからのチャット履歴、クエリ、コンテキストを使用して最終プロンプトを作成し、Amazon Bedrock または Amazon SageMaker でホストされている LLM にリクエストを送信します。ステップ 9
LLM からレスポンスが返されると、LangChain オーケストレーター は API Gateway WebSocket を介してレスポンスをストリーミングし、クライアントアプリケーションで使用できるようにします。ステップ 10
このソリューションは CloudWatch を使用して、さまざまなサービスから運用メトリクスを収集し、デプロイのパフォーマンスと運用状態を監視できるカスタムダッシュボードを生成します。 -
デプロイダッシュボード
-
ステップ 1
管理者ユーザーは、デプロイダッシュボードの UI にログインします。ステップ 2
CloudFront は S3 バケットでホストされているウェブ UI を提供します。
ステップ 3
AWS WAF は API を攻撃から保護します。このソリューションでは、ウェブアクセスコントロールリスト (ウェブ ACL) と呼ばれる一連のルールを設定して、設定可能なユーザー定義のウェブセキュリティルールと条件に基づき、ウェブリクエストを許可、ブロック、またはカウントします。
ステップ 4
ウェブ UI は、API Gateway を使用して公開される一連の REST API を活用します。
ステップ 5
Amazon Cognito はユーザーを認証し、CloudFront ウェブ UI と API Gateway の両方をサポートします。DynamoDB テーブルには、承認されたユーザーの IAM ポリシーが保存されます。ステップ 6
Lambda は REST エンドポイントのビジネスロジックを提供します。このバックアップ Lambda 関数は、AWS CloudFormation を使用してユースケースのデプロイを実行するために必要なリソースを管理および作成します。ステップ 7
DynamoDB はデプロイのリストを保存します。ステップ 8
管理者ユーザーが新しいユースケースを作成すると、バックアップ Lambda 関数はリクエストされたユースケースの CloudFormation スタック作成イベントを開始します。ステップ 9
管理者ユーザーがデプロイウィザードで指定する LLM 設定オプションはすべて、DynamoDB に保存されます。デプロイでは、この DynamoDB テーブルを使用して実行時に LLM を設定します。
ステップ 10
このソリューションは CloudWatch を使用して、さまざまなサービスから運用メトリクスを収集し、ソリューションのパフォーマンスと運用状態を監視できるカスタムダッシュボードを生成します。
関連コンテンツ
このガイダンスでは、Amazon SageMaker JumpStart が提供する生成 人工知能 (AI) モデルをデプロイし、AWS Cloud Development Kit (AWS CDK) を簡単に操作して、非同期の SageMaker エンドポイントを作成する方法を紹介します。
このガイダンスでは、ユーザーが自然言語クエリ (NLQ) を使用してリレーショナルデータベースに直接質問できるアプリケーションの構築方法を紹介します。
この導入事例では、放送会社である Megamedia が AWS を利用して、重要な公開情報へのアクセスを簡素化するために、生成 AI を利用するチャットボットを作成した方法をご覧いただけます。