[レポート] ビルダーズセッション Build a chat assistant with Amazon Bedrock を受講してきた #AIM329 #AWSreinvent

コンバンハ、千葉(幸)です。

以下のビルダーズセッションを受講してきたので、そのレポートを書きます。

AIM329-R | Build a chat assistant with Amazon Bedrock [REPEAT]

Join this builders’ session to build a conversational chat assistant using Amazon Bedrock. Explore how to use the Retrieval Augmented Generation (RAG) architecture with Amazon Bedrock and Amazon OpenSearch Service to quickly build a secure chat assistant that uses the most up-to-date information to converse with users. Learn how this chat assistant will use dialog-guided information retrieval to respond to users. You must bring your laptop to participate.

(機械翻訳) このビルダーズセッションに参加して、Amazon Bedrockを使って会話型チャットアシスタントを構築しましょう。Amazon BedrockとAmazon OpenSearch Serviceを使用したRAG(Retrieval Augmented Generation)アーキテクチャを使用して、最新の情報を使用してユーザーと会話する安全なチャットアシスタントを迅速に構築する方法を探ります。このチャット・アシスタントがどのようにダイアログ誘導型情報検索を使用してユーザーに応答するかを学びます。参加にはノートパソコンが必要です。

ちなみにビルダーズセッションとは、テーブルあたり10名に分かれて、エキスパートと一緒にAWS 上で構築を行うセッションのことです。

3行まとめ

  • ハンズオンに必要なものは PC とメールアドレス(AWSアカウントは不要)
  • ハンズオンはあらかじめ用意された Sagemaker ノートブック上でコマンド実行していくことで進んでいき、完結する
  • 生成 AI や LLMs(大規模言語モデル)に関する知識がある程度ないと、「ただやって終わり」になるかも

正直なところわたしはついていくのが精一杯で、画面上をひたすらポチポチしていたらひとまず完了していた、という状態でした。

生成 AI 関連の知識があれば、途中途中の説明がもう少し理解できたのかなと悔やまれます。

ハンズオンで作成するアーキテクチャ

最終的に作成するアーキテクチャは以下の通りです。

RAG_with_Opensearch_Serverless_and_Amazon_Bedrock

(ハンズオン資料より引用)

とはいえ、コマンドベースでセッションが進んでいくため具体的なリソースの作成方法を意識することはあまりありません。

セッションの流れ

冒頭に簡単な説明があったのち、45分程度かけてハンズオンが行われました。

以降、画角的に天井の照明がガッツリ写り込んでいますが簡単に写真を載せます。

Agenda は多くあるように見えますが、ざっくり「冒頭の簡単な説明 15 分」「ハンズオン 40 分」といった具合です。

AIM3291_jpg

LLMs とは何か、Amazon Bedrock とは何かという簡単な説明が行われます。エキスパートの方がテーブルの参加者と双方向でやり取りする場面もありました。

LLMs においては FM(Foundation models) という概念が大事なんですね。

チャットアプリケーションに LLMs が必要とされる理由について述べられます。やはり「自然であること」は重要な観点であると思います。

Amazon Bedrock についての説明が入ります。一つの API で複数のモデルを扱える、というところに特に熱を入れていたように思います。

ハンズオンセッションの流れ

冒頭の説明が完了すると、ハンズオンに移っていきます。

専用の workshop studio のリンクが QR コードで共有されるため、そこにアクセスします。以下を入力することで AWS マネジメントコンソールに遷移し環境を使用できるようになります。

  • 指定したメールアドレスに届いた9桁のコード
  • セッションで発表されたアクセスコード

AWS マネジメントコンソールでの操作

AWS マネジメントコンソールでは以下を行います。

  • Amazon Bedrock のモデルのリクエスト
  • Amazon Sagemaker ノートブックインスタンスへのアクセス

Amazon Bedrock のモデルのリクエスト

以下のモデルに対するアクセスを有効化します。基本的にはBedrock のコンソールからポチポチするだけです。

  • [Amazon] Titan Embeddings G1 - Text
  • [Authropic] Claude Instant

Authropic のモデルに対してリクエストを実行するにはユースケースを提出する必要があります。

RAG_with_Opensearch_Serverless_and_Amazon_Bedrock

提出後、通常数分でリクエスト可能な状態になります。

Amazon Sagemaker ノートブックインスタンスへのアクセス

使用する AWS アカウントにはあらかじめ Amazon Sagemaker ノートブックインスタンスが用意されているため、対象のインスタンスから JupyterLab を開きます。

RAG_with_Opensearch_Serverless_and_Amazon_Bedrock-1208894

(ハンズオン資料より画像引用)

以降はこのノートブックで操作をしていきます。

Amazon Sagemaker ノートブックでの操作

ノートブック上では、一連の手順の説明と実行するプログラムが記載されています。

プログラムを実行するとその結果が下部に表示され、正常に完了すると番号つきでチェックがついていきます。

aim329_ipynb_-_JupyterLab

エキスパートの方が画面投影しながら進めていくのですが、いかんせんノートブックが縦に長いので「いま何番の項目を画面投影しているのだろう?」というのに少し迷う時がありました。番号つきのチェックが入ることで現在地を確認しやすく、親切な設計だと感じました。最終的に 31 個のチェックがついたので、かなり大盛の内容でした。

事前のセットアップから構築までの一連の内容は以下の通りです。(セッション資料より抜粋)

screencapture-aim329-vhkv-notebook-us-west-2-sagemaker-aws-lab-tree-reinvent2023-aim-329-notebooks-2023-11-28-08_29_12_pdf

一通り構築が完了すると、最終的にノートブック上でチャットアシスタントに質問をすることができます。

JupyterLab2

まずは次の質問をしてみました。What is Classmethod, Inc.?

回答はこちら。残念ながら正しい内容ではありませんでした。

'AI: Classmethod, Inc. is an AI safety startup that was founded in 2021. They are working on techniques like constitutional AI to ensure powerful language models are helpful, harmless, and honest. Some of their notable projects include Claude, an AI assistant created using their techniques, and their research on improving model self-supervision and reducing harms from language models.' 'Here is my source: https://www-files.anthropic.com/production/images/Model-Card-Claude-2.pdf'

続いての質問。What is AWS re:invent?

こちらはかなり正確な内容が返ってきました。

"AI: AWS re:Invent is Amazon Web Services' largest annual conference focused on cloud computing. Some key things to know about AWS re:Invent:\n\n- It's held each year in Las Vegas, usually in November or December. \n\n- Over 50,000 IT professionals, developers, partners and customers attend to learn about AWS.\n\n- AWS announces new services, features and roadmap updates for their cloud platform. \n\n- There are hundreds of technical sessions on AWS services and best practices. \n\n- Notable keynotes from AWS CEO Andy Jassy outline their cloud vision and strategy.\n\n- Hands-on training, certifications and labs allow attendees to learn new skills. \n\n- The expo floor showcases AWS innovations through partner booths and demos.\n\n- It's a major opportunity each year for the cloud community to learn about AWS trends and innovations to help build, secure and modernize infrastructure and applications.\n\nIn summary, AWS re:Invent is Amazon's flagship annual conference focused on announcements, education and networking related to their cloud computing platform AWS." 'Here is my source: https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html'

かなり滑り込みで構築が完了したので色々試す余裕がなかったのですが、ひとまず走り切ることができました。

Key takeways(重要なポイント)

最後に以下のまとめとともに締め括られました。

  • LLMs は、自然で、辻褄のあったパーソナライズされた会話体験をチャットアプリケーションに提供する
  • Amazon Bedrock は基盤モデルを利用してチャットボットアプリケーションを簡単に構築可能にするフルマネージドサービスである
  • Amazon OpenSearch Service をベクターデータベースとすることで LLM で RAG を実装できる

AIM3296

終わりに

ビルダーズセッション AIM 329 Build a chat assistant with Amazon Bedrock の受講レポートでした。

ハンズオン自体に躓くことはなかったものの、(わたしの英語力と生成AI力の兼ね合いで)実行している内容が何を意味しているのかをほとんど理解できなかったので少し悔しさの残る結果となりました。

とはいえ、Python で記述されたプログラムの記述から、Bedrock を使用する際の各種パラメータの指定の仕方やクエリの仕方など、勘所の一端を垣間見れた気がします。

改めて生成 AI にキャッチアップしなくてはな、と思わせてくれるセッションでした。

以上、 チバユキ (@batchicchi) がお送りしました。