Slide 1

Slide 1 text

AWS Amplify AI kitで 始めるRAGアプリ開発 宮崎 健太

Slide 2

Slide 2 text

今回が人生初登壇です 宜しくお願いします

Slide 3

Slide 3 text

宮崎 健太 主にB to B向けWebアプリのフロントエンドを担当 (と言いつつ、広く浅くで器用貧乏です) 趣味 • ゲーム (最近モンハン買いました。ハンターランク50くらいです。) • お酒 (最近クラフトジンを飲みます) Xアカウント:たけのこ(@K5ARULtkUA4594) 自己紹介

Slide 4

Slide 4 text

✓ AWS Amplify AI kitの概要 ✓ AWS Amplify AI kitを使ったRAGの作り方 ✓ 実際にRAGアプリを作ってみた 本日お話しすること

Slide 5

Slide 5 text

RAGってなんだっけ?

Slide 6

Slide 6 text

RAGとは LLMが回答する際、外部知識を参照させることでLLMを拡張する仕組み LLM 外部知識 ② 外部知識から情報を検索 ③ 過去に同じ事例あった! ① XXの手続き教えて! ④ 過去の事例から○○ですね! 例) △社の社内文章検索 アプリ

Slide 7

Slide 7 text

RAGをどうやって作るか 以下を用意する必要がある • LLM • ユーザーインターフェース • バックエンドAPI • インフラ • ベクトルDB RAGアプリを作るのって大変…

Slide 8

Slide 8 text

AWS Amplify AI kitを使ってみよう!

Slide 9

Slide 9 text

AWS Amplify AI kit とは

Slide 10

Slide 10 text

AWS Amplify AI kitとは • 2024年11月頃に一般公開された AWS Amplify の機能の1つ • Amazon Bedrock と連携したアプリを構築できる機能を提供 ➢ フロントエンドのUIコンポーネント ➢ Bedrockを呼び出すバックエンドAPI ➢ フロントエンドとバックエンドを繋ぐ処理

Slide 11

Slide 11 text

簡単に生成AIを活用したアプリが開発できる!! 自分、生成AI 使えます! 自分、開発環境を 提供できます! つまり・・・

Slide 12

Slide 12 text

AWS Amplify AI kit の機能とは

Slide 13

Slide 13 text

AWS Amplify AI kitの基本アーキテクチャ

Slide 14

Slide 14 text

AWS Amplify AI kitが提供する主な機能 AI kitは、以下の2種類の機能を提供 機能 概要 ユースケース Conversation リアルタイムに複数回の会話のやり取り(マルチターン)を 考慮したAI機能を提供 英会話のレッスンなど 対話型のアプリ Generation 指定した定義に従って構造化されたデータを同期的に 生成するAI機能を提供 文章の要約や画像生 成など Conversionの場合、裏ではConverse APIが呼ばれます。 Converse APIは、異なる基盤モデル(Claude、Cohereなど)を統一的なインターフェースで利用できます。

Slide 15

Slide 15 text

どうやってRAGアプリを作るか

Slide 16

Slide 16 text

Tool useからKnowledge Baseを呼ぶ • Tool useは、LLMにプロンプトと一緒にツールを渡すことで、LLMの能力 を拡張する機能 • クエリツールを使用し、Knowledge BaseのAPIを呼ぶことでRAGを実 現する 機能 概要 モデルツール Amazon DynamoDBのレコードをツールとして使用します クエリツール AWS AppSync のAPIを呼び出した実行結果をツールとして使用する Generation AWS Lambdaを呼び出した実行結果をツールとして使用する

Slide 17

Slide 17 text

※ 注意点 Bedrock の Knowledge Baseの構築は、AI kitと別途で必要

Slide 18

Slide 18 text

実際にRAGアプリを作ってみた ※まだ開発中です!

Slide 19

Slide 19 text

作成の背景 • 既に開始から数年が経過しているプロジェクトであり、プロジェクト特有の観点が多い • 開発メンバーの出入りが流動的で、知識が古参に頼っている状態 • チェックリストは存在するが、形骸化して誰も使ってない ➢ 結果: 顧客レビューの指摘が多発、内部レビューにも時間がかかる

Slide 20

Slide 20 text

実際のイメージ

Slide 21

Slide 21 text

アーキテクチャ Cognito

Slide 22

Slide 22 text

現状の課題 1. RAGの精度向上が必要 • 例えば、100文字入れたら100文字でベクトルDBに検索かけてるので、分割したい • Bedrock Knowledge Baseの設定もほぼデフォルトなので… 2. ユーザー意見の収集が必要 • 実際に使ってもらって、精度や改善項目について、アンケートしたい。 • アンケートの結果をもとに、改善したい。このサイクルを回したい。

Slide 23

Slide 23 text

まとめ 1. RAGの精度改善やUXなどに注力できる RAGアプリの立ち上げまでは爆速で出来る! (業務後に2日ほどで出来た) 2. 他AWSサービスとの親和性がある Cognitoと組み合わせて手軽に認証機能を入れられるなど、Amplifyならではの良さがある! 3. UIデザインの融通は効かず、カスタマイズが難しい 提供されるUIコンポーネントは、チャットアプリ形式なので、同じUIに引きずられる 4. バグがあると追うのが大変 (個人差あり) 良くも悪くもロジックが隠蔽されてるので、不具合っぽい動きの時、どこから追ってよいのか、わかりにくい。

Slide 24

Slide 24 text

以上です! ありがとうございました!