「Amazon Bedrock のエージェント付きカスタマーサービスボットの基盤モデル(FM)を構築する」

「Amazon Bedrockのエージェント付きカスタマーサービスボットの基盤モデル(FM)を構築する方法」

会話エクスペリエンスの向上からエージェントの支援まで、生成型人工知能(AI)およびファウンデーションモデル(FM)は、より高速かつより良いサポートを提供するために様々な方法を提供しています。 FMsの利用可能性と多様性が増えるにつれて、最新のモデルバージョンで実験し、最新を追い続けることは困難です。 Amazon Bedrock は、AI21 Labs、Anthropic、Cohere、Meta、Stability AI、Amazonなど、AIのリーディング企業から高性能のFMを選択できるフルマネージドサービスです。 Amazon Bedrockの包括的な機能を使用して、さまざまなトップFMを簡単に実験し、ファインチューニングやRetrieval Augmented Generation(RAG)などのテクニックを使用してデータをカスタマイズできます。

Amazon Bedrockのエージェント

7月に、AWSはAmazon Bedrockのエージェント のプレビューを発表しました。開発者はわずかなクリックで完全に管理されたエージェントを作成するための新しい機能です。 エージェントは、コードを書かずに旅行の予約や保険の申請処理、広告キャンペーンの作成や在庫管理など、複雑なビジネスタスクを実行できます。 完全に管理されたエージェントを使用すると、インフラストラクチャのプロビジョニングや管理の心配はする必要がありません。

この記事では、顧客サービスのボットを作成するためのストームパンキングの手順を提供します。このソリューションには、テキスト生成モデル(Anthropic Claude V2)とAmazon Bedrockのエージェントを使用します。 このソリューションの構築に必要なリソースをプロビジョニングするためのAWS CloudFormationテンプレートを提供し、次に、Amazon Bedrockのエージェントを作成する手順を説明します。

ReAct Prompting

FMは、ReActと呼ばれる技術を使用してユーザーオーダータスクを解決する方法を決定します。これは、FMと推論と行動を組み合わせた一般的なパラダイムです。ReActは、FMに対して、タスクに対する口頭推論のトレースと行動を生成するように指示します。 これにより、システムは動的な推論を実行し、推論に追加の情報を組み込みながら、計画を作成、維持、調整できます。 構造化されたプロンプトには、質問、思考、行動、観察のシーケンスが含まれます。

  • 質問は、ユーザーが依頼したタスクや解決すべき問題です。
  • 思考は、FMが問題に取り組み、実行すべき行動を特定するために、推論ステップを助けるものです。
  • 行動は、モデルが呼び出せる許可されたAPIのセットからのAPIです。
  • 観察は、行動を実行した結果です。

Amazon Bedrockのエージェントのコンポーネント

Amazon Bedrockのエージェントは、ユーザーの依頼タスクのプロンプトエンジニアリングとオーケストレーションを自動化します。 会社固有の情報をプロンプトに安全に追加して、自然な言語でユーザーに応答できます。 エージェントは、ユーザーの依頼タスクを複数のステップに分割し、FMのサポートを受けてサブタスクをオーケストレーションします。 アクショングループは、エージェントが自律的に実行できるタスクです。 アクショングループは、API呼び出しを行うためのAWS Lambda関数と関連するAPIスキーマにマッピングされます。以下の図は、エージェントの構造を示しています。

Amazon Bedrockのエージェントのコンポーネント

ソリューション概要

靴の小売業者のユースケースを使用して、顧客サービスボットを構築します。 ボットは人間のような会話で顧客に靴の購入オプションを提供して購入をサポートします。顧客は自然な言語でボットと会話し、サブタスクを実行するために外部APIを複数のステップで呼び出します。 次の図は、サンプルのプロセスフローを示しています。

ユースケースのシーケンス図

以下の図は、このソリューションの高レベルアーキテクチャを示しています。

ソリューションアーキテクチャ図
  1. Anthropic Claude V2などのAmazon BedrockでサポートされるFMを使用してエージェントを作成できます。
  2. ビジネスロジックを含むAPIスキーマ(Amazon Simple Storage Service(Amazon S3)バケット内)と、Lambda関数をエージェントにアタッチします。(注:これは一度だけのセットアップ手順です。)
  3. エージェントは顧客のリクエストを使用してReActフレームワークを使用してプロンプトを作成し、APIスキーマを使用してLambda関数内の対応するコードを呼び出します。
  4. メール通知の送信、データベースへの書き込み、Lambda関数内でのアプリケーションAPIのトリガーなど、さまざまなタスクを実行できます。

この記事では、Lambda関数を使用して顧客の詳細を取得し、顧客が好むアクティビティに一致する靴の一覧を表示し、最終的に注文を行います。コードはインメモリのSQLiteデータベースによってバックアップされています。永続的なデータストアに書き込むためには、同様の構造を使用できます。

前提条件

この記事で提供されているソリューションを実装するためには、AWSアカウントとエージェントが有効になったAmazon Bedrockへのアクセスが必要です(現在はプレビュー版)。解決策に必要なリソーススタックを作成するために、AWS CloudFormationテンプレートを使用します。

us-east-1 CloudFormationスタック

CloudFormationテンプレートは2つのIAMロールを作成します。これらのロールを更新して、セキュリティのベストプラクティスで議論されている最小特権の権限を適用します。エージェントに使用するためのIAM機能については、ここで使用できるIAM機能について学ぶことができます。

  1. LambdaBasicExecutionRoleには、Amazon S3のフルアクセス権限とログへのCloudWatchアクセス権限があります。
  2. AmazonBedrockExecutionRoleForAgentsには、Amazon S3のフルアクセス権限とLambdaのフルアクセス権限があります。

重要:Amazon Bedrockのエージェントには、ロール名にAmazonBedrockExecutionRoleForAgents_*の接頭辞を付ける必要があります。

Bedrockエージェントのセットアップ

次の2つのセクションでは、エージェントの作成とテストの手順を説明します。

Amazon Bedrockのエージェントを作成する

エージェントを作成するには、Amazon Bedrockコンソールを開き、左のナビゲーションペインでAgentsを選択します。そして、Create Agentを選択します。

これにより、エージェントの作成ワークフローが開始されます。

  1. エージェントの詳細を提供:エージェントに名前と説明(オプション)を付けます。 CloudFormationスタックで作成されたサービスロールを選択し、次へを選択します。
エージェントの詳細
  1. ファンデーションモデルを選択:  モデルを選択画面で、モデルを選択します。エージェントに、どのタスクを実行し、ユーザーとのやり取りをどのように行うかについて、明確かつ正確な指示を提供してください。

ファンデーションモデルを選択

  1. アクショングループを追加: アクションは、エージェントがAPIコールを行うことによって実行できるタスクです。アクショングループは、一連のアクションから成り立ちます。アクショングループ内のすべてのAPIを定義するAPIスキーマを提供してください。APIスキーマは、OpenAPIスキーマのJSON形式で提供する必要があります。Lambda関数には、APIコールを実行するために必要なビジネスロジックが含まれています。各アクショングループには、Lambda関数を関連付ける必要があります。

アクショングループに名前と説明を付け、Lambda関数を選択し、APIスキーマファイルを提供し、次へを選択してください。

エージェントアクショングループ
  1. 最後のステップでは、エージェントの設定を確認し、エージェントを作成を選択します。

Amazon Bedrockのエージェントのテストと展開

  1. エージェントのテスト: エージェントが作成されると、エージェントの概要と作業用のドラフトがダイアログボックスに表示されます。Amazon Bedrockコンソールは、エージェントをテストするためのUIを提供します。

  1. 展開: テストが成功した後、エージェントを展開することができます。アプリケーションにエージェントを展開するには、エイリアスを作成する必要があります。Amazon Bedrockは、そのエイリアス用のバージョンを自動的に作成します。

前述のエージェントのセットアップとこの投稿で提供されたLambdaコードによって以下のアクションが発生します:

  1. エージェントは、開発者からの指示(例:“顧客が靴を購入するのを手助けするエージェントです。”)、タスクの完了に必要なAPIスキーマ、およびデータソースの詳細からプロンプトを作成します。自動的なプロンプトの作成により、さまざまなFM用のプロンプトの実験にかかる時間を短縮できます。
  2. エージェントは、顧客が要求したタスク(例:“靴を探しています。”)を顧客の詳細を取得する、顧客の希望するアクティビティとシューズのアクティビティをマッチングする、靴の注文を行うなどの小さなサブタスクに分割します。エージェントは、正しいタスクのシーケンスを決定し、途中で発生するエラーシナリオを処理します。

次のスクリーンショットは、エージェントからのいくつかの例の応答を表示しています。

エージェントのサンプル応答

各応答に対してShow traceを選択すると、エージェントが使用した推論手法とFMによって生成された最終応答を示すダイアログボックスが表示されます。

エージェントのトレース1
Agent trace2
Agent trace3

クリーンアップ

将来の料金を発生させないために、リソースを削除してください。CloudFormationコンソールからスタックを削除することでこれを行うことができます。

Delete CloudFormation stack

本投稿で使用したコードはGitHubのAmazon Bedrockリポジトリのエージェントからダウンロードしてテストしてください。また、Amazon Bedrockのエージェントはプログラム的にも呼び出すことができます。リポジトリには例のJupyter Notebookも提供されています。

結論

Amazon Bedrockのエージェントは、生産性の向上、顧客サービスの向上、またはDevOpsタスクの自動化に役立つことがあります。この投稿では、エージェントを使用して顧客サービスボットを作成する方法を紹介しました。

Amazon Bedrockのその他の機能についても学ぶことをお勧めします。本投稿で提供される例のコードを使用して、独自の実装を作成してみてください。Amazon Bedrockにおけるハンズオン体験をするために、ワークショップをお試しください。

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

Related articles

Discover more

機械学習

ONNXモデル | オープンニューラルネットワークエクスチェンジ

はじめに ONNX(Open Neural Network Exchange)は、深層学習モデルの表現を容易にする標準化されたフォーマットとして広く認...

データサイエンス

分散システム設計におけるコンセンサスアルゴリズムの役割の探索

この記事では、信頼性、データの一貫性、および耐障害性を確保する責任を負う人々の重要性と役割について探求します

機械学習

ドレスコードの解読👗 自動ファッションアイテム検出のためのディープラーニング

電子商取引の活気ある世界では、ファッション業界は独自のランウェイですしかし、もし我々がこのランウェイのドレスコードを...

人工知能

ChatGPTを使用したメール自動化の方法

ChatGPT内を出たりすることなく、ChatGPTにメールを書いて送信することができます

AI研究

このAI研究論文は、視覚の位置推定とマッピングのための深層学習に関する包括的な調査を提供しています

もし私があなたに「今どこにいるの?」または「周りの様子はどうですか?」と尋ねたら、人間の多感覚知覚という独特な能力の...

機械学習

AutoML - 機械学習モデルを構築するための No Code ソリューション

はじめに AutoMLは自動機械学習としても知られています。2018年、GoogleはクラウドAutoMLを発表し、大きな関心を集め、機械学...