[Workshop] Amazon Bedrock で生成 AI アプリケーションを構築し、拡張する #AWSreInvent #AIM371

2023.12.31

アノテーション 構築チームのいたくらです。
「Build and scale generative AI applications with Amazon Bedrock」という Workshop をラスベガス現地ではなく、自宅でやってみました。
個人アカウントでやってみたいと考えている方の参考になれば幸いです。

セッション情報

  • セッション ID : AIM371
  • タイトル: Build and scale generative AI applications with Amazon Bedrock
  • スピーカー: Philipp Kaindl, Vikesh Pandey
  • レベル: 300 - Advanced

ワークショップの概要

Amazon Bedrock is a fully managed service that helps you accelerate development of generative AI applications using foundation models (FMs) from Amazon and other leading AI companies. In this workshop, explore Amazon Bedrock fundamentals including the API, prompt engineering techniques, privacy capabilities, and an end-to-end generative AI application–building experience. Come away with a generative AI application ready to be deployed in your business. You must bring your laptop to participate.

訳: Amazon Bedrock は、Amazon や他の主要な AI 企業の基盤モデル(FM)を使用して、生成 AI アプリケーションの開発を加速させるフルマネージドサービスです。このワークショップでは、API 、プロンプトエンジニアリング技術、プライバシー機能、エンドツーエンドの生成 AI アプリケーション構築体験など、Amazon Bedrock の基礎を探求します。あなたのビジネスに導入できる生成 AI アプリケーションを手に入れましょう。

学べること

  • テキスト要約用のプロンプトを作成する方法

ワークショップ内容

  • 0. 前提条件
    • 1. AWS アカウントのセットアップ
    • 2. Bedrock コンソールのウォークスルー
    • 3. AWS Cloud9 のセットアップ
  • 1. ラボ 1 - プロンプトエンジニアリング手法を使用して洞察を抽出する
    • 1. Amazon Titan と Anthropic Claude の迅速なエンジニアリングの基礎
    • 2. ラボ 1a: テキストの要約
    • 3. ラボ 1b: 通話後の分析に関する洞察
  • 2. ラボ 2 - Bedrock を使用してマーケティング電子メール生成アプリケーションを構築する
    • 1. ラボ 2a: アプリケーションへのアクセス
    • 2. ラボ 2b: 顧客リスト
    • 3. ラボ 2c: プロンプトテンプレートを作成する
    • 4. ラボ 2d: プロンプトカタログ
    • 5. ラボ 2e: 電子メール生成ウィザード

※ 本ブログではラボ 2 は実施しておりません。理由は下記 0-3 を参照ください。

やってみた

0-1

今回はラスベガス現地ではなく自宅で実施したため、AWS アカウントは個人アカウントを利用しました。

0-2

Bedrock の準備は個人アカウントでも手順通りに進められました。

0-3

AWS Cloud9 のセットアップ手順を確認したところ、AWS から払い出されたアカウントを使用することを想定した手順になっていました。
手順はあらかじめ用意された「Workshop」という名前の Cloud9 環境を使用する想定で進んでいます。そのため、その「Workshop」を個人アカウントで複製できるようなテンプレートが配布されているかと思い、workshop studio 内を探してみましたが見つけられず…。
なので、ラボ 2 の準備ができませんでした(非常に残念)。

1-1

このセクションをしっかり読むだけでプロンプトエンジニアリングについての簡単な知識を得ることができました。
参考: プロンプトエンジニアリングとは何ですか? - AI プロンプトエンジニアリングの説明 - AWS

また、Amazon Titan Text Generation 1 (G1) - Express モデルと Anthropic Claude V2 モデルについての説明もありました。

■ Amazon Titan Text Generation 1 (G1) - Express
価格と性能のバランスが取れたテキスト to テキスト基盤モデルで、自由形式のテキスト生成、要約、質問応答、コード生成などのタスクに適する。

■ Anthropic Claude V2
Amazon Bedrock で利用可能。英語と他の複数の言語をサポートする汎用大規模言語モデル(LLM)。思慮深い対話、コンテンツ作成、複雑な推論などに適する。

他にも推論パラメータについても説明がありました。簡潔にまとまっていて分かりやすかったです。

1-2

このセクションを通して Amazon Titan Text G1 Express と Anthropic Claude V2 モデルを使用してテキスト要約をするプロンプトを作成しました。
このプロンプトを作成するために Amazon Bedrock Text playground を使用しました。
まずは Amazon Titan Text G1 Express から実施するので、最初に Text playground 上部のドロップダウンから以下の設定が必要です。

準備ができたら以下のプロンプト(実際は英語で入力)をテキストボックスに入力しました。

以下は、AWS によるブログ投稿の発表です。
<テキストを入力>
上記を 1 つの段落にまとめます。

推論パラメータ設定は指定されたものに、<テキストを入力> は事前に用意されていたテキストに置き換えました。

これで「Run」をクリックすると、テキスト内容を 1 つの段落にまとめた応答が返ってきます。

生成された文章はこんな感じでした。

AWS is launching new tools to help businesses of all sizes embrace generative AI, making it easy to build applications with security and privacy built in, focusing on the most performant and low-cost infrastructure, and providing generative AI-powered applications for the enterprise to transform work. Amazon Bedrock is a fully managed service that offers a choice of high-performing foundation models from leading providers, along with a broad set of capabilities that simplify development while maintaining privacy and security. All future FMs from Anthropic will be available within Amazon Bedrock with early access to unique features for model customization and fine-tuning capabilities.

訳: AWS は、あらゆる規模の企業が生成型 AI を導入できるようにする新しいツールを発表し、セキュリティとプライバシーが組み込まれたアプリケーションの構築を容易にし、最もパフォーマンスが高く低コストのインフラストラクチャに重点を置き、企業向けに生成型 AI を活用したアプリケーションを提供します。 仕事を変える。 Amazon Bedrock は、プライバシーとセキュリティを維持しながら開発を簡素化する幅広い機能とともに、大手プロバイダーの高性能基盤モデルの選択肢を提供するフルマネージド サービスです。 Anthropic の今後の FM はすべて Amazon Bedrock 内で利用可能になり、モデルのカスタマイズや微調整機能のための独自の機能に早期にアクセスできるようになります。

次に、Anthropic Claude V2 で実施します。
Text playground 上部のドロップダウンから以下の設定へ変更しました。

準備ができたら以下のプロンプト(実際は英語で入力)をテキストボックスに入力しました。

人間: あなたはテクノロジーの最新ニュースを報告するジャーナリストです。 AWS による以下のブログ投稿の簡単な要約を書いてください。
<text>
{{文章}}
</text>


アシスタント:

{{文章}} は事前に用意されていたテキストに置き換えました。

これで「Run」をクリックすると、アシスタントがテキスト内容を簡単に要約した応答が返ってきます。

生成された文章はこんな感じでした。

Here is a brief summary of the key points from the AWS blog post:

AWS announced new tools and capabilities to help businesses of all sizes adopt generative AI, including the general availability of Amazon Bedrock to build custom generative AI applications, a new CodeWhisperer feature to customize code recommendations using a company's own repositories, and a Generative BI authoring capability in preview for Amazon QuickSight. These allow companies to leverage leading foundation models while maintaining security, privacy, and scalability. Example customers like BBVA, Lonely Planet, and Persistent saw benefits like faster development cycles. AWS is focused on providing performant, low cost infrastructure to train models and run inference, and industry-specific generative AI applications to transform workflows. The post highlights how AWS's approach centers on enabling organizations to use their own data to customize foundation models and make them experts on proprietary business content.

訳: 以下は、AWS ブログ投稿の重要なポイントの簡単な要約です。AWS は、カスタム生成 AI アプリケーションを構築するための Amazon Bedrock の一般提供、企業独自のリポジトリを使用してコードの推奨をカスタマイズする新しい CodeWhisperer 機能、生成 BI オーサリング機能など、あらゆる規模の企業の生成 AI の導入を支援する新しいツールと機能を発表しました。 Amazon QuickSight のプレビュー中。 これらにより、企業はセキュリティ、プライバシー、拡張性を維持しながら、主要な基盤モデルを活用できるようになります。 BBVA、Lonely Planet、Persistent などの顧客例では、開発サイクルの短縮などのメリットが得られました。 AWS は、モデルをトレーニングして推論を実行するためのパフォーマンスが高く、低コストのインフラストラクチャと、ワークフローを変革する業界固有の生成 AI アプリケーションを提供することに重点を置いています。 この投稿では、組織が独自のデータを使用して基盤モデルをカスタマイズし、独自のビジネスコンテンツのエキスパートにできるようにすることを AWS のアプローチが中心にしていることを強調しています。

Amazon Titan Text G1 Express の方が端的に要約されていて、Anthropic Claude V2 の方が少し情報量多めで要約されている印象を持ちました。
基盤モデルによって出力結果に違いがあることがわかりやすいですね。

1-3

このセクションを通して Amazon Titan Text G1 Express と Anthropic Claude V2 モデルを使用して、プロンプトエンジニアリング手法を使用してコールセンターのトランスクリプトから洞察を抽出することができました。

■ 洞察 1 : 感情分析

今回はそのまま Anthropic Claude V2 を使用します。
空にしたテキストボックスに準備されたプロンプト(基盤モデルへの指示+顧客とエージェント間のトランスクリプトで構成されている)を貼り付けました。
プロンプトでは、基盤モデルに「顧客とエージェント間の会話の全体的な感情と感情スコアを検出してほしい」と指示しています。

「Run」をクリックして、基盤モデルが生成したテキスト応答がこちら(和訳済み)。

記録に基づくと、会話の全体的な感情は肯定的であると言えます。 お客様はアカウントのログインとデビット カードに関していくつかの問題を抱えていましたが、エージェントは問題を診断し、何が起こったのか説明し、解決するための手順の概要を説明することができました。 お客様はエージェントのトラブルシューティングと支援に満足しているようです。

私が気づいたいくつかの重要な点:

- お客様が問題を説明したとき、エージェントは礼儀正しく、共感的で、親切でした。 これによりポジティブな雰囲気が生まれました。
- エージェントは問題を理解し、情報を収集するために系統的に質問をしました。 これは能力を示します。
- エージェントは、ログインとデビット カードの問題の原因を説明しました。 お客様はエージェントの診断が正しかったことを確認しました。 これにより信頼が構築されます。
- エージェントは両方の問題の解決手順を明確に説明しました。 お客様は解決策に満足しているようでした。 これは前向きな解決につながります。
- クロージングは、顧客の問題が満足のいくまで解決されたことを示します。 エージェントは他に何も必要ないことを確認しました。 これで通話は肯定的に終了します。

全体として、私はこの会話が非常に前向きな感情を持っていると評価します。 -1 (非常に否定的) ~ 1 (非常に肯定的) のスケールで、この会話に 0.8 以上の感情スコアを与えます。 前向きな口調、能力の発揮、信頼の構築、満足のいく解決策は、全体的に非常に優れた顧客サービスのやり取りを示しています。 私の分析をさらに詳しく説明したい場合はお知らせください。

しっかり根拠も説明して、スコアも提示している。すごい。
さらにフォローアップの質問(内容: ポジティブな感情に影響を与えた特定の単語、フレーズ、またはコンテキストを特定する)を追加しました。

その応答がこちら(和訳済み)。

この会話でポジティブな感情をもたらした具体的な例をいくつか挙げます。
- エージェントの冒頭のセリフ: 「こんにちは! ごめんなさい。」 - 共感を示す
- エージェント: 「トラブルシューティングの手順をいくつか試してみましょう。」 - 積極的な支援の提供
- エージェント: 「わかりました、ログイン履歴からわかります...」 - 能力と理解を示しています
- エージェント: 「これらのアクションを実行したかどうか確認できますか?」 - 丁寧な確認
- 顧客: 「わかりました。先週食料品の購入にカードを使いました。」 - エージェントとの協力
- エージェント: 「問題ありません。喜んでお手伝いさせていただきます。」 - 礼儀正しく、喜んでお手伝いします
- エージェント: 「それでは、楽しい一日をお過ごしください。銀行取引をしていただきありがとうございます!」 - ポジティブクロージング

印象に残ったいくつかのキーフレーズ:
- 「資格情報をリセットさせてください」 - 所有権/アクションの取得
- 「いいえ、それは私ではありませんでした」 - 顧客はエージェントの診断を信頼します
- 「あなたのカードを永久にブロックします」 - 顧客を助けるための断固とした行動
- 「数日中に郵便で届きます。」 - 明確なコミュニケーション
- 「他にお手伝いできることはありますか?」 - さらに支援する意欲

双方の全体的に協力的で、共感的で、解決に焦点を当てたトーンが、ポジティブな感情に貢献しました。 エージェントの力量と顧客の信頼も明らかでした。

これだけしっかり分析してくれたら業務改善も捗りそうですね…。

■ 洞察 2 : 通話の特定部分について質問

通話について質問できるかどうかを確認するために、Amazon Titan Text G1 Express に切り替えました。
切り替え後、テキストボックスに先ほどと同様の顧客とエージェント間のトランスクリプトを貼り付け、更に「上記の情報に基づいて、問題を解決するためにお客様にどのようなトラブルシューティング手順が提案されましたか? 答えがわからない場合は、わからないと言ってください。」という指示を付け加えました。
「Run」をクリックして、基盤モデルが生成したテキスト応答がこちら(和訳済み)。

問題を解決するためにお客様に提案されたトラブルシューティング手順は次のとおりです。

1. ウェブサイトでパスワードをリセットします。
2. パスワードリセットメールを受信し、手順に従います。
3. ログイン履歴を確認し、正しい資格情報でログインを試みます。
4. 最後のデビットカード取引を確認して、それが不正なものであったかどうかを判断します。
5. 侵害されたデビットカードを永久にブロックし、新しいカードを発行します。
6. セキュリティを確保するために、バックエンドから顧客のアカウント資格情報をリセットします。
7. 電子メールで顧客に新しいログイン資格情報を提供します。

提案した内容がまとまって出力されていますね。
さらに「上記の情報をもとに、お客様ご自身でパスワードをリセットしてみたところ、ログインできましたか?」という質問をしたり、「上記の会話の要約を書いてもらえますか?」と指示をしたら、しっかりと会話の一部を理解して出力が作成されていました。

所感

こんなに簡単に生成 AI を触れるのか!試せるのか!と楽しい気持ちになれる Workshop でした。現地で受けてラボ 2 もやりたかったな~~とその点だけ悔やまれます。
何となく生成 AI に興味があるけど触ったことがない自分が Innovation Talk を通じて触ってみたいと思うようになり、探してみたら実際に触れる Workshop があって試すことができたので、生成 AI について無知だけど少し触ってみたいな~と思ってる方は是非軽く生成 AI 関連の Innovation Talk を見てからこの Workshop を実施することをお勧めします。Innovation Talk に目を通すだけで、この Workshop の理解度が少し高まります。
ラボ 1 だけなら 1 時間ほどで出来ちゃうので、興味がある方は是非やってみてください。
Build and scale Generative AI applications using Amazon Bedrock

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。
「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。
現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社 WEB サイトをご覧ください。