Slide 1

Slide 1 text

re:Inventのアップデートを使って RAGアプリ開発とRAGOpsに 入門してみた! 2025/01/14 JAWS-UG初心者支部 x 千葉支部 re:Invent 2024 re:Cap & 新年LT大会 福地開

Slide 2

Slide 2 text

Who am I ? 福地 開 (ふくち はるき) @har1101mony Japan AWS Jr.Champions目指してます! NECソリューションイノベータ株式会社 2年目 インフラエンジニア(AWS) 趣味:ブログ書くこと、バスケ、競馬 (中山競馬場で行われた有馬記念は大敗しました。) re:Invent中の過ごし方: 日本でお留守番(毎日朝4時寝9時半起き)

Slide 3

Slide 3 text

本日お話すること・しないこと ◆ 話すこと! ✓Amplify AI Kitのご紹介 ✓生成AIアプリにおける評価とは? ✓ナレッジベース評価機能を使ってみる! ◆話さないこと! ✓RAGの詳細解説 ✓Amplifyでの具体的な開発方法 ✓評価基盤の具体的な構築方法 →構築方法については別途ブログに纏めてあるので、こちらをご参照ください!

Slide 4

Slide 4 text

re:Invent 2024は RAGがアツかった!

Slide 5

Slide 5 text

RAGのアップデートは8件! ◆Amazon Bedrock Knowledge BasesがGraphRAGに対応 ◆Amazon Bedrock Knowledge Basesが構造化データの取り込みをサポート ◆Amazon Bedrock Knowledge Basesがマルチモーダルデータに対応 ◆Amazon Bedrock Knowledge Basesが応答のストリーミングをサポート ◆Amazon Bedrock Knowledge Basesの自動クエリフィルタ機能を発表 ◆Amazon Bedrock Knowledge BasesがAPIによるデータ操作に対応 ◆Amazon Bedrock Knowledge BasesでRAGの評価機能をプレビュー開始 ◆Amazon KendraのGenAI Indexを発表

Slide 6

Slide 6 text

Pre:Inventでもアップデートが! ◆Amazon Bedrock Knowledge BasesがGraphRAGに対応 ◆Amazon Bedrock Knowledge Basesが構造化データの取り込みをサポート ◆Amazon Bedrock Knowledge Basesがマルチモーダルデータに対応 ◆Amazon Bedrock Knowledge Basesが応答のストリーミングをサポート ◆Amazon Bedrock Knowledge Basesの自動クエリフィルタ機能を発表 ◆Amazon Bedrock Knowledge BasesがAPIによるデータ操作に対応 ◆Amazon Bedrock Knowledge BasesでRAGの評価機能をプレビュー開始 ◆Amazon KendraのGenAI Indexを発表 ◆AWS Amplify が Amazon Bedrock 向けのフルスタック AI キットをリリース ◆Amazon Bedrock Knowledge BasesがRAG アプリケーションを構築するため のバイナリベクトル埋め込みをサポート

Slide 7

Slide 7 text

今日触っていくのはこの2つ! ◆Amazon Bedrock Knowledge BasesがGraphRAGに対応 ◆Amazon Bedrock Knowledge Basesが構造化データの取り込みをサポート ◆Amazon Bedrock Knowledge Basesがマルチモーダルデータに対応 ◆Amazon Bedrock Knowledge Basesが応答のストリーミングをサポート ◆Amazon Bedrock Knowledge Basesの自動クエリフィルタ機能を発表 ◆Amazon Bedrock Knowledge BasesがAPIによるデータ操作に対応 ◆Amazon Bedrock Knowledge BasesでRAGの評価機能をプレビュー開始 ◆Amazon KendraのGenAI Indexを発表 ◆AWS Amplify が Amazon Bedrock 向けのフルスタック AI キットをリリース ◆Amazon Bedrock Knowledge BasesがRAG アプリケーションを構築するため のバイナリベクトル埋め込みをサポート

Slide 8

Slide 8 text

RAGって何だっけ?(ざっくり) ◆RAG:Retrieval-Augmented Generation →日本語に訳すと、検索拡張生成 ◆生成AIが事前学習していない情報を検索して取得し、 その情報も用いて回答を生成する機能

Slide 9

Slide 9 text

RAGって何だっけ?(ざっくり) ◆RAG:Retrieval-Augmented Generation →日本語に訳すと、検索拡張生成 ◆生成AIが事前学習していない情報を検索して取得し、 その情報も用いて回答を生成する機能 ※前提:生成AIは最新情報や社内機密情報などを知らない

Slide 10

Slide 10 text

RAGって何だっけ?(ざっくり) ◆RAG:Retrieval-Augmented Generation →日本語に訳すと、検索拡張生成 ◆生成AIが事前学習していない情報を検索して取得し、 その情報も用いて回答を生成する機能

Slide 11

Slide 11 text

RAGって何だっけ?(ざっくり) ◆RAG:ベクトルを用いて検索する →単語・文章を数値の配列に変換して、類似度を検索 犬 猫 お茶 カレー チャーハン (2次元に変換したイメージです。) ペルシャ猫

Slide 12

Slide 12 text

RAGをAWS上で簡単に構築するには? ◆Amazon Bedrock Knowledge Basesを使います! ◆Bedrockコンソール上からGUIで簡単に作成可能! (もちろんCLI, CloudFormation, CDKでも可能)

Slide 13

Slide 13 text

RAGをAWS上で簡単に構築するには? ◆ドキュメントのベクトル化、ベクトルストア作成、 検索と回答生成の仕組みなどを全部作ってくれる!

Slide 14

Slide 14 text

今回作成したのは社内チャットボット用のRAG ◆架空の企業「株式会社ユニコーンレンタル」の 就業規定・福利厚生規定をドキュメントとして用意 S3に格納しておく (後は自動でベクトル化して ベクトルDB内へ格納してくれる)

Slide 15

Slide 15 text

Amplify AI Kitを用いて RAGアプリケーションを作成!

Slide 16

Slide 16 text

Amplify AI Kitとは? ◆Amplify(フルスタックアプリケーションを構築できるサービス)で、 生成AIアプリを爆速開発できるようにしたもの! ◆基盤モデルに加えて、ナレッジベースも利用できる!

Slide 17

Slide 17 text

GitHubのサンプルを用いて、ナレッジベースと接続 ◆とはいえAmplifyを使うにはフロントエンドの知識も必要 ◆今回は公式のサンプルを拝借し、動作確認してみることに https://github.com/aws-samples/amplify-ai-examples

Slide 18

Slide 18 text

GitHubのサンプルを用いて、ナレッジベースと接続 ◆サンプルには必要な処理はほぼ記載されている ◆修正箇所は作成したナレッジベースのIDを入力するくらい

Slide 19

Slide 19 text

GitHubのサンプルを用いて、ナレッジベースと接続 ◆接続できました!

Slide 20

Slide 20 text

公式ドキュメントも読もう! ◆今回はサンプルを使ったので理解が曖昧な部分も… ◆公式ドキュメントを読んできちんと実装できるように! (自分への戒めとして) https://docs.amplify.aws/react/ai/

Slide 21

Slide 21 text

Knowledge Basesの評価機能 を使って、RAGOpsを実践!

Slide 22

Slide 22 text

そもそも「評価」って何? ◆AIの出力結果の良し悪しを定量的・定性的に判断すること

Slide 23

Slide 23 text

そもそも「評価」って何? ◆AIの出力結果の良し悪しを定量的・定性的に判断すること ◆わかりやすく言うと、 ✓回答に嘘が含まれていないか ✓回答が論理的に矛盾していないか ✓すべての質問に回答できているか ✓回答に有害な内容が含まれていないか などをチェックすることを「評価」と言います

Slide 24

Slide 24 text

「評価」には2種類ある ◆オフライン評価 ◆アプリケーションリリース前や、アップデート時に実施する ◆模範解答とAIの回答を比較することで、AIの回答精度を評価する ◆Knowledge Basesの評価機能はこちら ◆オンライン評価 ◆アプリケーションが実稼働した後の評価 ◆実際にユーザーにどの程度役に立ったのかを定量的に測定する →売上、満足度、購入率、人件費などがどう変わったかを測定 ◆労力はかかるが、最も重要なビジネスへの影響度を測定できる

Slide 25

Slide 25 text

Knowledge Basesの評価機能とは? 1. 自分で模擬質問と模範解答を準備する 2. 模擬質問を用いて、ナレッジベースに回答を出力させる 3. 自分が作成した模範解答とナレッジベースの回答を比較して、 AIの回答精度を評価する 模範解答とナレッジベース回答を AI自身に比較させる、 LLM-as-a-Judge という手法を 用いて評価を行う

Slide 26

Slide 26 text

Knowledge Basesの評価機能を試してみる! 1. 自分で模擬質問と模範解答を準備する ※注意点としては、 ・質よりも量を優先する。 ・異常な入力などもテストケースに含める。 https://docs.anthropic.com/en/docs/build-with-claude/develop-tests#example-edge-cases

Slide 27

Slide 27 text

Knowledge Basesの評価機能を試してみる! 2. 模擬質問を用いて、ナレッジベースに回答を出力させる 3. 自分が作成した模範解答とナレッジベースの回答を比較して、 AIの回答精度を評価する ↑評価に用いる基盤モデルを選択 (LLM-as-a-Judge)

Slide 28

Slide 28 text

Knowledge Basesの評価機能を試してみる! ◆評価が完了!上の5つのパラメータは1に近いほどGood!

Slide 29

Slide 29 text

Knowledge Basesの評価機能を試してみる! ◆評価が完了!下の3つのパラメータは0に近いほどGood!

Slide 30

Slide 30 text

まとめ ◆Amplify AI Kitを用いることで、 簡単に生成AIアプリを実装できるようになりました! ◆Knowledge Basesの評価機能によって、 RAGOpsをAWS上で実施する第一歩になりました! ◆AWS上でのRAGアプリ開発・RAGOpsにAWS上で 挑戦してみてはいかがでしょう!?