Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AmazonBedrockを使用した自作RAGの作り方
Search
そのだ
February 28, 2024
Technology
1
1.1k
AmazonBedrockを使用した自作RAGの作り方
【connpass】
DAIMYO Meetup #4
https://nulab.connpass.com/event/307954/
そのだ
February 28, 2024
Tweet
Share
More Decks by そのだ
See All by そのだ
AIエージェントに脈アリかどうかを分析させてみた
sonoda_mj
2
160
Amazon Bedrock Knowledge Basesのアップデート紹介
sonoda_mj
2
350
Snowflake未経験の人がSnowflakeに挑戦してみた
sonoda_mj
1
48
生成AIアプリのアップデートと配布の課題をCDK Pipelinesで解決してみた
sonoda_mj
0
400
AWSでRAGを作る方法
sonoda_mj
1
420
緑一色アーキテクチャ
sonoda_mj
2
230
RAG構築におけるKendraとPineconeの使い分け
sonoda_mj
2
790
検索拡張生成(RAG)をAWSで作る方法
sonoda_mj
1
560
BedrockのToo Many Request解決してみた
sonoda_mj
2
3k
Other Decks in Technology
See All in Technology
滅・サービスクラス🔥 / Destruction Service Class
sinsoku
6
1.5k
サーバーレスアーキテクチャと生成AIの融合 / Serverless Meets Generative AI
_kensh
12
3k
現場で役立つAPIデザイン
nagix
29
10k
Kubernetes x k6 で負荷試験基盤を開発して 負荷試験を民主化した話 / Kubernetes x k6
sansan_randd
2
730
個人開発から公式機能へ: PlaywrightとRailsをつなげた3年の軌跡
yusukeiwaki
11
2.7k
Developer Summit 2025 [14-D-1] Yuki Hattori
yuhattor
19
5.1k
Fintech SREの挑戦 PCI DSS対応をスマートにこなすインフラ戦略/Fintech SRE’s Challenge: Smart Infrastructure Strategies for PCI DSS Compliance
maaaato
0
450
Datadog APM におけるトレース収集の流れ及び Retention Filters のはなし / datadog-apm-trace-retention-filters
k6s4i53rx
0
320
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
1
1.1k
『衛星データ利用の方々にとって近いようで触れる機会のなさそうな小話 ~ 衛星搭載ソフトウェアと衛星運用ソフトウェア (実物) を動かしながらわいわいする編 ~』 @日本衛星データコミニティ勉強会
meltingrabbit
0
120
FastConnect の冗長性
ocise
1
9.6k
技術負債の「予兆検知」と「状況異変」のススメ / Technology Dept
i35_267
1
1k
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Designing for Performance
lara
604
68k
Scaling GitHub
holman
459
140k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Automating Front-end Workflow
addyosmani
1367
200k
Speed Design
sergeychernyshev
25
780
Rails Girls Zürich Keynote
gr2m
94
13k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Docker and Python
trallard
44
3.3k
It's Worth the Effort
3n
184
28k
Become a Pro
speakerdeck
PRO
26
5.1k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Transcript
AmazonBedrockを使⽤した⾃作RAGの作り⽅ DAIMYO Meetup #4 2024.2.28 苑⽥朝彰 1
⾃⼰紹介 苑⽥ 朝彰 Sonoda Tomotada - ID - Github︓tomomj -
Twitter︓@sonoda_mj - Work at - 株式会社 Fusic (フュージック) 技術創造部⾨所属 - 新卒3年⽬ - 最近MLを勉強し出した - Skill - AWS/React(Native)/Ruby on Rails 2
アジェンダ 3 l 背景 l 事前知識 l AmazonBedrockを使用した自作RAGの作り方 l まとめ
01 背景
新しい情報やプライベートの情報に関する 内容について回答してくれる、ChatGPTの ようなアプリを個人開発で作りたい!
でもいいネタが思いつかん!!
参考:https://fusic.co.jp/members
ちょうどええデータ あるやん
これ使ってみよか〜
作ったもの
苑田(webにない情報) って誰ですか? Webアプリ
苑田っていうのはな。。。 Webアプリ
02 事前知識
事前知識 14 l 検索拡張生成(RAG)とは l Amazon Bedrockとは
事前知識 15 l 検索拡張生成(RAG)とは l Amazon Bedrockとは
検索拡張⽣成(RAG)とは 16 Retrieval Augmented Generation(RAG) 生成系の言語 AI モデルに外部メモリをつけるというコンセプトのことを指す Vector Database
LLM 質問 検索 返答 検索結果 引用:https://github.com/aws-samples/jp-rag-sample
検索拡張⽣成(RAG)とは 17 事前に学習したデータに関しては返答することができる AWSについて教えて AWSってのはな・・・ LLM
検索拡張⽣成(RAG)とは 18 しかし、学習していない内容に関しては答えられない 苑田について教えて 誰やねん 私の知識はxxxx年まででぇ〜
検索拡張⽣成(RAG)とは 19 外部のデータベースなどを紐づけることで、新しい情報やプライベートの情報に関す る回答を生成することができる Vector Database 苑田について教えて 新しいデータをベクトル化 して格納
検索拡張⽣成(RAG)とは 20 外部のデータベースなどを紐づけることで、新しい情報やプライベートの情報に関す る回答を生成することができる Vector Database 近いベクトルを探す 「苑田について教えて」を ベクトル化
検索拡張⽣成(RAG)とは 21 外部のデータベースなどを紐づけることで、新しい情報やプライベートの情報に関す る回答を生成することができる Vector Database 検索結果を返す
検索拡張⽣成(RAG)とは 22 外部のデータベースなどを紐づけることで、新しい情報やプライベートの情報に関す る回答を生成することができる Vector Database 苑田ってのはな
RAGはどういう処理をしているのか 23 ベクターDB テキストをベクトル化する モデル 生成系AI
RAGはどういう処理をしているのか 24 ベクターDB テキストをベクトル化する モデル 生成系AI ベクトル化して 格納 [0.1, 0.2,
0.3, …]
RAGはどういう処理をしているのか 25 ベクターDB テキストをベクトル化する モデル 生成系AI 苑田って誰ですか??
RAGはどういう処理をしているのか 26 ベクターDB テキストをベクトル化する モデル 生成系AI [0.1, 0.2, 0.5, …]
RAGはどういう処理をしているのか 27 ベクターDB テキストをベクトル化する モデル 生成系AI [0.1, 0.2, 0.5, …]
RAGはどういう処理をしているのか 28 ベクターDB テキストをベクトル化する モデル 生成系AI {vector : [0.1, 0.2,
0.5, …], text: “緑タイツを着てます”} 似たようなものあったわ! 2つくらい送るな! {vector : [0.1, 0.1, 0.2, …], text: “AWSエンジニアです”}
RAGはどういう処理をしているのか 29 ベクターDB テキストをベクトル化する モデル 生成系AI + 苑田って誰ですか? { “緑タイツを着てます”}
{ “AWSエンジニアです”}
RAGはどういう処理をしているのか 30 ベクターDB テキストをベクトル化する モデル 生成系AI 苑田っていうのはな?
事前知識 31 l 検索拡張生成(RAG)とは l Amazon Bedrockとは
Bedrockとは 32 "*-BCTɺ"OUISPQJDɺ$PIFSFɺ.FUBɺ4UBCJMJUZ"*ɺ"NB[POͳͲͷେख "*اۀ͕ఏڙ͢Δ ߴੑೳͳج൫Ϟσϧ '. Λ୯Ұͷ "1*ͰબͰ͖ΔϑϧϚωʔδυܕαʔϏε ↓これらのmodelのAPIが使える
ファインチューニング 33 追加学習させて新しくモデルを作れる
playground(chat) 34 マネコン上で実際にmodelを使用することができる
playground(text) 35 推論パラメータをいじれる パラメータいじれる ↑トークン足りてない
03 AmazonBedrockを使⽤した ⾃作RAGの作り⽅
データソース 37 Fusicの公式ページ全て 参考: https://fusic.co.jp/members/108
構成図(1) 38
構成図(1) 39 ベクターDB テキストをベクトル化する モデル 生成系AI Bedrock Fargate
構成図(1) 40 ベクターDB テキストをベクトル化する モデル 生成系AI Bedrock Fargate
構成図(1) 41 ベクターDB テキストをベクトル化する モデル 生成系AI Bedrock Fargate 俺が作った
構成図(1) 42 New!!
構成図(1) 43 ベクトル化するモデル (を搭載したサーバー)
構成図(1) 44 RAGの処理を 全部やってくれるやつ
Lambdaの中⾝ 45 ベクターDB テキストをベクトル化する モデル 生成系AI Bedrock Fargate
None
今までの会話履歴を記載 ベクターDBから持ってきたデータ
会話履歴を使用しない場合 会話履歴を指定する場合 苑田とは誰ですか? AWSエンジニアです 詳細を教えてください 詳細とは何でしょうか? 苑田とは誰ですか? AWSエンジニアです 詳細を教えてください 彼はAWSだけではなく、Rubyも書ける
ようです。緑のタイツを着ています。 会話情報が保持される
構成図(1) 49
None
構成図(1) 51 前処理(めんどくさいやつ)をBedrockで処理
データを前処理する 52 名前:苑田朝彰 コメント:ほげほげ 略歴:ほげほげ 担当・スキル:ほげほげ プライベート:ほげほげ 必要なところだけ取ったtxtファイル データの抽出
構成図(1) 53 ベクターDB Freeプラン使用
構成図(2) 54
構成図(2) 55
Knowledge Base for Amazon Bedrockとは 56 "NB[PO#FESPDLͷφϨοδϕʔεΛ༻͢Δͱɺ"NB[PO#FESPDL͔Β '.Λσʔλιʔ εʹଓͯ͠ݕࡧ֦ுੜ 3"(
Λߦ͏͜ͱ͕Ͱ͖Δɻ͜ΕʹΑΓɺ'.ͷطଘͷڧྗͳػೳΛ ֦ு͠ɺಛఆͷυϝΠϯ৫ʹؔ͢ΔࣝΛਂΊΔ͜ͱ͕Ͱ͖Δɻ 引用:https://aws.amazon.com/jp/bedrock/knowledge-bases/
データの前処理 57 引用:https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html • ドキュメントを管理しやすいチャンクに分割し、効率的に取得できるようにする • ドキュメントをEmbedding Modelを使用してベクトル化する • Vector
DBに格納する Titan
ランタイム実⾏ 58 引用:https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html • ユーザーのクエリをベクトル化する • ドキュメントのベクトルと比較し、意味的に類似したチャンクが検索される • 取得されたチャンクからの追加のコンテキストで拡張される Titan
Claude
Knowledge Baseについて詳しく 59 or or Vector Database Data Source S3
Bedrock User LLM 様々な情報を入れる コードを書かなくとも一括で作成してくれる(S3以外) or
デモ
04 まとめ
まとめ Bedrockを使ってChatGPTのようなアプリを簡単に作ることができた Point 2 データの精度を上げるには前処理が重要 62 Point 1 Point 3
Knowledge Base for Amazon Bedrockを使うと、もっと簡単に作成できる
None
ご清聴いただきありがとうございました Thank You We are Hiring ! https://recruit.fusic.co.jp/