Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
AmazonBedrockを使⽤した⾃作RAGの作り⽅ DAIMYO Meetup #4 2024.2.28 苑⽥朝彰 1
Slide 2
Slide 2 text
⾃⼰紹介 苑⽥ 朝彰 Sonoda Tomotada - ID - Github︓tomomj - Twitter︓@sonoda_mj - Work at - 株式会社 Fusic (フュージック) 技術創造部⾨所属 - 新卒3年⽬ - 最近MLを勉強し出した - Skill - AWS/React(Native)/Ruby on Rails 2
Slide 3
Slide 3 text
アジェンダ 3 l 背景 l 事前知識 l AmazonBedrockを使用した自作RAGの作り方 l まとめ
Slide 4
Slide 4 text
01 背景
Slide 5
Slide 5 text
新しい情報やプライベートの情報に関する 内容について回答してくれる、ChatGPTの ようなアプリを個人開発で作りたい!
Slide 6
Slide 6 text
でもいいネタが思いつかん!!
Slide 7
Slide 7 text
参考:https://fusic.co.jp/members
Slide 8
Slide 8 text
ちょうどええデータ あるやん
Slide 9
Slide 9 text
これ使ってみよか〜
Slide 10
Slide 10 text
作ったもの
Slide 11
Slide 11 text
苑田(webにない情報) って誰ですか? Webアプリ
Slide 12
Slide 12 text
苑田っていうのはな。。。 Webアプリ
Slide 13
Slide 13 text
02 事前知識
Slide 14
Slide 14 text
事前知識 14 l 検索拡張生成(RAG)とは l Amazon Bedrockとは
Slide 15
Slide 15 text
事前知識 15 l 検索拡張生成(RAG)とは l Amazon Bedrockとは
Slide 16
Slide 16 text
検索拡張⽣成(RAG)とは 16 Retrieval Augmented Generation(RAG) 生成系の言語 AI モデルに外部メモリをつけるというコンセプトのことを指す Vector Database LLM 質問 検索 返答 検索結果 引用:https://github.com/aws-samples/jp-rag-sample
Slide 17
Slide 17 text
検索拡張⽣成(RAG)とは 17 事前に学習したデータに関しては返答することができる AWSについて教えて AWSってのはな・・・ LLM
Slide 18
Slide 18 text
検索拡張⽣成(RAG)とは 18 しかし、学習していない内容に関しては答えられない 苑田について教えて 誰やねん 私の知識はxxxx年まででぇ〜
Slide 19
Slide 19 text
検索拡張⽣成(RAG)とは 19 外部のデータベースなどを紐づけることで、新しい情報やプライベートの情報に関す る回答を生成することができる Vector Database 苑田について教えて 新しいデータをベクトル化 して格納
Slide 20
Slide 20 text
検索拡張⽣成(RAG)とは 20 外部のデータベースなどを紐づけることで、新しい情報やプライベートの情報に関す る回答を生成することができる Vector Database 近いベクトルを探す 「苑田について教えて」を ベクトル化
Slide 21
Slide 21 text
検索拡張⽣成(RAG)とは 21 外部のデータベースなどを紐づけることで、新しい情報やプライベートの情報に関す る回答を生成することができる Vector Database 検索結果を返す
Slide 22
Slide 22 text
検索拡張⽣成(RAG)とは 22 外部のデータベースなどを紐づけることで、新しい情報やプライベートの情報に関す る回答を生成することができる Vector Database 苑田ってのはな
Slide 23
Slide 23 text
RAGはどういう処理をしているのか 23 ベクターDB テキストをベクトル化する モデル 生成系AI
Slide 24
Slide 24 text
RAGはどういう処理をしているのか 24 ベクターDB テキストをベクトル化する モデル 生成系AI ベクトル化して 格納 [0.1, 0.2, 0.3, …]
Slide 25
Slide 25 text
RAGはどういう処理をしているのか 25 ベクターDB テキストをベクトル化する モデル 生成系AI 苑田って誰ですか??
Slide 26
Slide 26 text
RAGはどういう処理をしているのか 26 ベクターDB テキストをベクトル化する モデル 生成系AI [0.1, 0.2, 0.5, …]
Slide 27
Slide 27 text
RAGはどういう処理をしているのか 27 ベクターDB テキストをベクトル化する モデル 生成系AI [0.1, 0.2, 0.5, …]
Slide 28
Slide 28 text
RAGはどういう処理をしているのか 28 ベクターDB テキストをベクトル化する モデル 生成系AI {vector : [0.1, 0.2, 0.5, …], text: “緑タイツを着てます”} 似たようなものあったわ! 2つくらい送るな! {vector : [0.1, 0.1, 0.2, …], text: “AWSエンジニアです”}
Slide 29
Slide 29 text
RAGはどういう処理をしているのか 29 ベクターDB テキストをベクトル化する モデル 生成系AI + 苑田って誰ですか? { “緑タイツを着てます”} { “AWSエンジニアです”}
Slide 30
Slide 30 text
RAGはどういう処理をしているのか 30 ベクターDB テキストをベクトル化する モデル 生成系AI 苑田っていうのはな?
Slide 31
Slide 31 text
事前知識 31 l 検索拡張生成(RAG)とは l Amazon Bedrockとは
Slide 32
Slide 32 text
Bedrockとは 32 "*-BCTɺ"OUISPQJDɺ$PIFSFɺ.FUBɺ4UBCJMJUZ"*ɺ"NB[POͳͲͷେख "*اۀ͕ఏڙ͢Δ ߴੑೳͳج൫Ϟσϧ '. Λ୯Ұͷ "1*ͰબͰ͖ΔϑϧϚωʔδυܕαʔϏε ↓これらのmodelのAPIが使える
Slide 33
Slide 33 text
ファインチューニング 33 追加学習させて新しくモデルを作れる
Slide 34
Slide 34 text
playground(chat) 34 マネコン上で実際にmodelを使用することができる
Slide 35
Slide 35 text
playground(text) 35 推論パラメータをいじれる パラメータいじれる ↑トークン足りてない
Slide 36
Slide 36 text
03 AmazonBedrockを使⽤した ⾃作RAGの作り⽅
Slide 37
Slide 37 text
データソース 37 Fusicの公式ページ全て 参考: https://fusic.co.jp/members/108
Slide 38
Slide 38 text
構成図(1) 38
Slide 39
Slide 39 text
構成図(1) 39 ベクターDB テキストをベクトル化する モデル 生成系AI Bedrock Fargate
Slide 40
Slide 40 text
構成図(1) 40 ベクターDB テキストをベクトル化する モデル 生成系AI Bedrock Fargate
Slide 41
Slide 41 text
構成図(1) 41 ベクターDB テキストをベクトル化する モデル 生成系AI Bedrock Fargate 俺が作った
Slide 42
Slide 42 text
構成図(1) 42 New!!
Slide 43
Slide 43 text
構成図(1) 43 ベクトル化するモデル (を搭載したサーバー)
Slide 44
Slide 44 text
構成図(1) 44 RAGの処理を 全部やってくれるやつ
Slide 45
Slide 45 text
Lambdaの中⾝ 45 ベクターDB テキストをベクトル化する モデル 生成系AI Bedrock Fargate
Slide 46
Slide 46 text
No content
Slide 47
Slide 47 text
今までの会話履歴を記載 ベクターDBから持ってきたデータ
Slide 48
Slide 48 text
会話履歴を使用しない場合 会話履歴を指定する場合 苑田とは誰ですか? AWSエンジニアです 詳細を教えてください 詳細とは何でしょうか? 苑田とは誰ですか? AWSエンジニアです 詳細を教えてください 彼はAWSだけではなく、Rubyも書ける ようです。緑のタイツを着ています。 会話情報が保持される
Slide 49
Slide 49 text
構成図(1) 49
Slide 50
Slide 50 text
No content
Slide 51
Slide 51 text
構成図(1) 51 前処理(めんどくさいやつ)をBedrockで処理
Slide 52
Slide 52 text
データを前処理する 52 名前:苑田朝彰 コメント:ほげほげ 略歴:ほげほげ 担当・スキル:ほげほげ プライベート:ほげほげ 必要なところだけ取ったtxtファイル データの抽出
Slide 53
Slide 53 text
構成図(1) 53 ベクターDB Freeプラン使用
Slide 54
Slide 54 text
構成図(2) 54
Slide 55
Slide 55 text
構成図(2) 55
Slide 56
Slide 56 text
Knowledge Base for Amazon Bedrockとは 56 "NB[PO#FESPDLͷφϨοδϕʔεΛ༻͢Δͱɺ"NB[PO#FESPDL͔Β '.Λσʔλιʔ εʹଓͯ͠ݕࡧ֦ுੜ 3"( Λߦ͏͜ͱ͕Ͱ͖Δɻ͜ΕʹΑΓɺ'.ͷطଘͷڧྗͳػೳΛ ֦ு͠ɺಛఆͷυϝΠϯ৫ʹؔ͢ΔࣝΛਂΊΔ͜ͱ͕Ͱ͖Δɻ 引用:https://aws.amazon.com/jp/bedrock/knowledge-bases/
Slide 57
Slide 57 text
データの前処理 57 引用:https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html • ドキュメントを管理しやすいチャンクに分割し、効率的に取得できるようにする • ドキュメントをEmbedding Modelを使用してベクトル化する • Vector DBに格納する Titan
Slide 58
Slide 58 text
ランタイム実⾏ 58 引用:https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html • ユーザーのクエリをベクトル化する • ドキュメントのベクトルと比較し、意味的に類似したチャンクが検索される • 取得されたチャンクからの追加のコンテキストで拡張される Titan Claude
Slide 59
Slide 59 text
Knowledge Baseについて詳しく 59 or or Vector Database Data Source S3 Bedrock User LLM 様々な情報を入れる コードを書かなくとも一括で作成してくれる(S3以外) or
Slide 60
Slide 60 text
デモ
Slide 61
Slide 61 text
04 まとめ
Slide 62
Slide 62 text
まとめ Bedrockを使ってChatGPTのようなアプリを簡単に作ることができた Point 2 データの精度を上げるには前処理が重要 62 Point 1 Point 3 Knowledge Base for Amazon Bedrockを使うと、もっと簡単に作成できる
Slide 63
Slide 63 text
No content
Slide 64
Slide 64 text
ご清聴いただきありがとうございました Thank You We are Hiring ! https://recruit.fusic.co.jp/