Amazon Bedrockハンズオン:Knowledge base、Agentを使用してRAGを構築し、回答をSlack通知させてみた

おはようございます!ベンジャミンの木村と申します! AWS最大のカンファレンスイベントであるre:Invent2023に参加し、そこで発表されたAmazon BedrockのKnowledge baseとAgentを使用してRAGを構築したので、ここで構築手順を紹介させて頂けたらと思います! 内容は、外部公開されていない弊社情報をAmazon Bedrockにインプットさせ、質問の回答をSlackに通知させてみる、といったものになります。 目次 Amazon Bedrockとは AmazonやAIスタートアップ企業が提供するすでに出来上がったFM(基盤モデル)をAPIを通じて利用できるようにするAWSマネージドサービスです。FM(基盤モデル)については下記をご参照ください。 基盤モデル(Foundation Model)とは? このブログが書かれている時点(2024/1/13)でBedrockにて利用可能なFMは以下になります。 RAGとは RAG(Retrieval Augmented Generation)とは、あらかじめ用意したデータストアから事実を検索して、最新の正確な情報に基づいて大規模言語モデル(LLM)に 回答を生成させることです。 いくら優秀なスタートアップが作ったFM(基盤モデル)といえど、外部に公開されていないデータや、最新の情報まではインプットされていないため、その場合は古い情報の回答を返したり、事実と異なる回答を返すことがあります。これをハルシネーションといいます。 FMに質問する前に、事前に外部公開されていないデータや最新の情報をデータストアにインプットしておくことで、FMはデータストアに保存されている正確&最新の情報を利用して回答を生成するようになり、ハルシネーションが軽減されます。 1. IAMユーザーを作成してログイン ※rootユーザーではなく、IAMユーザーでログインしないとBedrock操作時にエラーになります。 1-1.下記URLよりの IAMコンソール画面に移動 https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/users 1-1. 左ペインの「ユーザー」→表示されたボタンで「ユーザーの作成」をクリック 1-2. 以下の通り入力し、「次へ」をクリック 1-3. 以下の通り入力し、「次へ」をクリック 1-4. 設定内容を確認して、「ユーザーの作成」をクリック 1-5. 表示された下記事項を控え(もしくはcsvをダウンロードし)、「ユーザーリストに戻る」をクリック 1-6. 右上にあるアカウント情報をクリックし、「サインアウト」する 1-7. 1-5で控えた「コンソールのURL」をブラウザに入力し、表示された画面で「ユーザー名」、「パスワード」も入力し、「サインイン」をクリックする 1-8. 「パスワード」を変更し、「パスワードの変更を確認」をクリックする 1-9. コンソールにログインできれば完了 2. Amazon Bedrockのモデルアクセスを申請 Amazon BedrockのFMを使用する前に、FMの使用許可の申請が必要になります。今回はAnthropic’s Claudeをだけ申請します。 2-1. 下記URLよりのAmazon Bedrockコンソール画面に移動 ※リージョンはバージニア北部にする必要があります。 https://us-east-1.console.aws.amazon.com/bedrock 2-2. 左ペインの「モデルアクセス」をクリックし、「モデルアクセスを管理」をクリック 2-3. 表示された画面で「ユースケースの詳細を送信」をクリック 2-4. 以下の通り入力し、「送信」をクリック ※生成された情報を何に使うか(ミッションクリティカルなことに使わないか等)を確認する項目になります。 2-5. 「Anthoropic」と「Amazon」を選択し、「モデルアクセスをリクエスト(もしくは「変更を保存」)」をクリック ※ここにチェック入れないと、Knowledgebaseの検証でロールエラーとなります。 2-6. ステータスが「進行中」から「アクセスが付与されました」に変更されたら、申請完了 ※申請までに少し時間がかかります。(1~10分ほど) 3. SNS作成 それではまず、通知先を指定したいと思います。 通知先に用いるのはSlackのメールアドレスになります。Slackチャンネルのメールアドレスの取得方法は下記を参照ください。 チャンネルまたは DM 用メールアドレスを作成する … Continue reading Amazon Bedrockハンズオン:Knowledge base、Agentを使用してRAGを構築し、回答をSlack通知させてみた