Slide 1

Slide 1 text

©Fusic Co., Ltd. 1 検索拡張⽣成(RAG)をAWSで作る⽅法 2024.4.24 苑⽥ 朝彰 @sonoda_mj Fusic Tech Live Vol.19

Slide 2

Slide 2 text

©Fusic Co., Ltd. 2 苑⽥ 朝彰 Sonoda Tomotada - X: sonoda_mj - 2023 AWS Jr.Champions - 2024 Community Builders(ML & GenAI) コメント 最近AWS StepFunctionsにハマってる ⾃⼰紹介 はじめに 株式会社Fusic

Slide 3

Slide 3 text

©Fusic Co., Ltd. 3 CONTENTS ⽬次 1. 検索拡張⽣成(RAG)とは 2. RAGをAWSで作ってみる 3. まとめ

Slide 4

Slide 4 text

©Fusic Co., Ltd. 4 検索拡張⽣成(RAG)とは 1

Slide 5

Slide 5 text

©Fusic Co., Ltd. 5 Retrieval Augmented Generation(RAG) ⽣成系の⾔語 AI モデルに外部メモリをつけるというコンセプトのことを指す 検索拡張⽣成(RAG)とは Vector Database LLM 質問 検索 返答 検索結果 引用:https://github.com/aws-samples/jp-rag-sample

Slide 6

Slide 6 text

©Fusic Co., Ltd. 6 事前に学習したデータに関しては返答することができる 検索拡張⽣成(RAG)とは LLM AWSについて教えて AWSってのはな

Slide 7

Slide 7 text

©Fusic Co., Ltd. 7 しかし、プライベート情報や新しい情報など、学習していない内容に関しては答 えられない 検索拡張⽣成(RAG)とは 苑⽥について教えて 私の知識はxxxx年まででぇ LLM

Slide 8

Slide 8 text

©Fusic Co., Ltd. 8 外部のデータベースなどを紐づけることで、新しい情報やプライベートの情報に 関する回答を⽣成することができる 検索拡張⽣成(RAG)とは Vector Database 苑⽥について教えて

Slide 9

Slide 9 text

©Fusic Co., Ltd. 9 外部のデータベースなどを紐づけることで、新しい情報やプライベートの情報に 関する回答を⽣成することができる 検索拡張⽣成(RAG)とは Vector Database 苑⽥について教えて

Slide 10

Slide 10 text

©Fusic Co., Ltd. 10 外部のデータベースなどを紐づけることで、新しい情報やプライベートの情報に 関する回答を⽣成することができる 検索拡張⽣成(RAG)とは Vector Database 検索結果を返す

Slide 11

Slide 11 text

©Fusic Co., Ltd. 11 外部のデータベースなどを紐づけることで、新しい情報やプライベートの情報に 関する回答を⽣成することができる 検索拡張⽣成(RAG)とは Vector Database 苑⽥ってのは…

Slide 12

Slide 12 text

©Fusic Co., Ltd. 12 Fusicの公開情報から構成されるRAG Fusic-RAG メンバー紹介 ニュース 開発事例 その他

Slide 13

Slide 13 text

©Fusic Co., Ltd. 13 RAGはどういう処理を⾏っているのか 1. 質問をベクトル化する 2. ベクトル化した質問を元に、Vector DBから似ているベク トル(上位n個)を探す 3. 検索結果と質問からプロンプトを作成 4. LLMにプロンプトを投げる

Slide 14

Slide 14 text

©Fusic Co., Ltd. 14 今回の登場⼈物 User Embedding Model Vector DB LLM 質問をする⼈ テキストをベクトル にするモデル ベクトル⽤のDB テキストを⽣成する モデル

Slide 15

Slide 15 text

©Fusic Co., Ltd. 15 Vector DBにデータを⼊れる AWSを業務で使っています。 テキストを ベクトル化する Vector DB Embedding Model LLM データソース

Slide 16

Slide 16 text

©Fusic Co., Ltd. 16 Vector DBにデータを⼊れる [0.1, 0.5, 0,3 …] Vector DB Embedding Model LLM データソース

Slide 17

Slide 17 text

©Fusic Co., Ltd. 17 Vector DBにデータを⼊れる ≈≈ { [0.1, 0.5, 0,3 …] metadata: { text: AWSを業務で使っています。 dataSource: sonoda.md } } Vector DB Embedding Model LLM データソース

Slide 18

Slide 18 text

©Fusic Co., Ltd. 18 1. 質問をベクトル化する 苑⽥さんって誰ですか? Vector DB Embedding Model LLM

Slide 19

Slide 19 text

©Fusic Co., Ltd. 19 1. 質問をベクトル化する [0.1, 0.5, 0,3 …] Vector DB Embedding Model LLM

Slide 20

Slide 20 text

©Fusic Co., Ltd. 20 2. ベクトル化した質問を元に、Vector DBから似ているベクトルを探す [0.1, 0.5, 0,3 …]に似ている ベクトルを探す Vector DB Embedding Model LLM

Slide 21

Slide 21 text

©Fusic Co., Ltd. 21 2. ベクトル化した質問を元に、Vector DBから似ているベクトルを探す { [0.1, 0.5, 0,3 …] metadata: { text: AWSを業務で使っています。 dataSource: sonoda.md } } 似てるのあったわ Vector DB LLM

Slide 22

Slide 22 text

©Fusic Co., Ltd. 22 Embedding Model 3. 検索結果と質問からプロンプトを作成 あなたはhogehogeです 以下の質問に答えてください # 情報 AWSを業務で使っています。 # 質問 苑⽥さんって誰ですか? Vector DB LLM

Slide 23

Slide 23 text

©Fusic Co., Ltd. 23 Embedding Model 4. LLMにプロンプトを投げる Vector DB LLM あなたはhogehogeです 以下の質問に答えてください # 情報 AWSを業務で使っています。 # 質問 苑⽥さんって誰ですか?

Slide 24

Slide 24 text

©Fusic Co., Ltd. 24 4. LLMにプロンプトを投げる AWSを業務で使ってます Vector DB Embedding Model LLM

Slide 25

Slide 25 text

©Fusic Co., Ltd. 25 会話履歴も⼊れてみる 苑田とは誰ですか? AWSエンジニアです 詳細を教えてください 詳細とは何でしょうか? 苑田とは誰ですか? AWSエンジニアです 詳細を教えてください 彼はAWSだけではなく、Rubyも書ける ようです。緑のタイツを着ています。 会話履歴を使⽤しない場合 会話履歴を使⽤した場合

Slide 26

Slide 26 text

©Fusic Co., Ltd. 26 RAGをAWSで作ってみた 2

Slide 27

Slide 27 text

©Fusic Co., Ltd. 27 AI21 Labs、Anthropic、Cohere、Meta、Stability AI、Amazon などの⼤⼿ AI 企業が提供する⾼性 能な基盤モデル (FM) を単⼀の API で選択できるフルマネージド型サービス Amazon Bedrockとは

Slide 28

Slide 28 text

©Fusic Co., Ltd. 28 RAGはどういう処理を⾏っているのか(再掲) 1. 質問をベクトル化する 2. ベクトル化した質問を元に、Vector DBから似ているベク トル(上位n個)を探す 3. 検索結果と質問からプロンプトを作成 4. LLMにプロンプトを投げる

Slide 29

Slide 29 text

©Fusic Co., Ltd. 29 RAGはどういう処理を⾏っているのか(再掲) 1. 質問をベクトル化する 2. ベクトル化した質問を元に、Vector DBから似ているベク トル(上位n個)を探す 3. 検索結果と質問からプロンプトを作成 4. LLMにプロンプトを投げる 簡単に作成できる!!

Slide 30

Slide 30 text

©Fusic Co., Ltd. 30 Amazon Bedrock 内から基盤モデルをデータソースに接続して、検索拡張⽣成 (RAG) を⾏うことができる。 Knowledge Base for Amazon Bedrock Bedrock LLM Bedrock Embedding Model Vector DB Data Source or or or S3 様々なデータを⼊れる .txt, .md, .html, .doc/docx .csv, .xls/.xlsx, .pdf

Slide 31

Slide 31 text

©Fusic Co., Ltd. 31 Knowledge Base for Amazon Bedrock(Pythonでの使い⽅)

Slide 32

Slide 32 text

©Fusic Co., Ltd. 32 AWSで作成した場合の構成図 or

Slide 33

Slide 33 text

©Fusic Co., Ltd. 33 AWSで作成した場合の構成図 or フロントエンド (アプリ、Slackなど)

Slide 34

Slide 34 text

©Fusic Co., Ltd. 34 AWSで作成した場合の構成図 or Knowledge Base for Amazon Bedrock RAGを簡単に使⽤できる

Slide 35

Slide 35 text

©Fusic Co., Ltd. 35 AWSで作成した場合の構成図 or AWS Lambda サーバーレスでKBを呼び出す

Slide 36

Slide 36 text

©Fusic Co., Ltd. 36 AWSで作成した場合の構成図 or Pinecone(VectorDB) Freeプランを使⽤すると無料で検証できる

Slide 37

Slide 37 text

©Fusic Co., Ltd. 37 AWSで作成した場合の構成図 or DynamoDB 会話ログを保管する

Slide 38

Slide 38 text

©Fusic Co., Ltd. 38 実際の流れ or

Slide 39

Slide 39 text

©Fusic Co., Ltd. 39 実際の流れ or 苑⽥って誰ですか?

Slide 40

Slide 40 text

©Fusic Co., Ltd. 40 実際の流れ or RAGの処理 会話ログの保存 RAGの処理 1. 質問をベクトル化する 2. ベクトル化した質問を元に、 Vector DBから似ているベクトル (上位n個)を探す 3. 検索結果と質問からプロンプトを 作成 4. LLMにプロンプトを投げる 5. 回答を受け取る

Slide 41

Slide 41 text

©Fusic Co., Ltd. 41 実際の流れ or 苑⽥ってのはな

Slide 42

Slide 42 text

©Fusic Co., Ltd. 42 まとめ 3

Slide 43

Slide 43 text

©Fusic Co., Ltd. 43 まとめ 検索拡張⽣成(RAG)は、⾔語AIモデルに外部メモリを付けることで、未学習データにも対応可能にする技術。 Point 01 AWSではKnowledge Base for Amazon Bedrockを活⽤することでRAGを簡単に実装可能。 Point 02 サーバレスで構築することで、格安で検証可能。 Point 03

Slide 44

Slide 44 text

©Fusic Co., Ltd. 44 Thank You We are Hiring! https://recruit.fusic.co.jp/ ご清聴いただきありがとうございました