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