Slide 1

Slide 1 text

©Fusic Co., Ltd. 1 RAG構築におけるKendraとPineconeの使い分け 2024.6.29 苑⽥ 朝彰 @sonoda_mj DevelopersIO 2024 in FUKUOKA Day2

Slide 2

Slide 2 text

©Fusic Co., Ltd. 2 苑⽥ 朝彰 Sonoda Tomotada - X: sonoda_mj - 2023 AWS Jr.Champions - 2024 AWS Community Builders (ML & GenAI) - 2024 Japan AWS Top Engineers (Services) - 甲賀流忍者検定(初級) コメント 最近忍者になりました。 ⾃⼰紹介 はじめに 株式会社Fusic

Slide 3

Slide 3 text

©Fusic Co., Ltd. 3 CONTENTS ⽬次 1. 背景 2. 検索拡張⽣成(RAG)とは 3. 各種サービスの紹介 4. RAG構築におけるKendraとPineconeの使い分け 5. まとめ

Slide 4

Slide 4 text

©Fusic Co., Ltd. 4 背景 1

Slide 5

Slide 5 text

©Fusic Co., Ltd. 5 背景 • 現状 • PineconeとKendraを使⽤してRAGを構築している • 新たな要望 • PDFやWord以外のドキュメントを使⽤したい • 精度を向上させたい • 運⽤コストが⾼いので下げたい • KendraとPineconeの使い分け • これらの要望を適切に応えるために、KendraとPineconeのどち らを使うべきかを検討し、その使い分けをまとめた。

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

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 外部のデータベースなどを紐づけることで、新しい情報やプライベートの情報に 関する回答を⽣成することができる 検索拡張⽣成(RAG)とは Vector Database 検索結果を返す

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

©Fusic Co., Ltd. 15 各種サービスの紹介 3

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

©Fusic Co., Ltd. 17 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 18

Slide 18 text

©Fusic Co., Ltd. 18 Amazon Kendra は、機械学習 (ML) を利⽤したインテリジェント検索サービス。ウェブサイトやアプリケーションのエン タープライズ検索を再構築する。組織内のさまざまな場所やコンテンツリポジトリにコンテンツが散在している場合でも、 ⽬的のコンテンツを⾒つけることが可能。 Amazon Kendra 引⽤: https://aws.amazon.com/jp/kendra/features/

Slide 19

Slide 19 text

©Fusic Co., Ltd. 19 サーバーレスで管理が容易かつスケーラブルな⾼性能ベクトルデータベース。 Pinecone Serverless 引⽤: https://www.pinecone.io/product/

Slide 20

Slide 20 text

©Fusic Co., Ltd. 20 Amazon Kendraを使⽤する場合のRAG

Slide 21

Slide 21 text

©Fusic Co., Ltd. 21 Amazon Kendraを使⽤する場合のRAG 質問を投げる

Slide 22

Slide 22 text

©Fusic Co., Ltd. 22 Amazon Kendraを使⽤する場合のRAG KendraのRetriever APIを使⽤し、 データを取得する

Slide 23

Slide 23 text

©Fusic Co., Ltd. 23 Amazon Kendraを使⽤する場合のRAG Textを⽣成してUserに返す

Slide 24

Slide 24 text

©Fusic Co., Ltd. 24 Pineconeを使⽤する場合のRAG

Slide 25

Slide 25 text

©Fusic Co., Ltd. 25 Pineconeを使⽤する場合のRAG 質問を投げる

Slide 26

Slide 26 text

©Fusic Co., Ltd. 26 Pineconeを使⽤する場合のRAG KBでPineconeからデータを取得する

Slide 27

Slide 27 text

©Fusic Co., Ltd. 27 Pineconeを使⽤する場合のRAG Textを⽣成してUserに返す

Slide 28

Slide 28 text

©Fusic Co., Ltd. 28 KendraとPineconeを使⽤するときの 判断基準 4

Slide 29

Slide 29 text

©Fusic Co., Ltd. 29 KendraとPineconeを使⽤するときの判断基準 • ドキュメントの種類 • 値段 • 実装の容易さと柔軟性

Slide 30

Slide 30 text

©Fusic Co., Ltd. 30 データがpdfやword, textファイルなどの場合、Knowledge Base for Amazon Bedrockで事⾜りる しかし、slackやgithubなど、AWS外部のサービスと連携する場合はAmazon Kendraを使⽤する必要がある ドキュメントの種類 KendraとPineconeを使⽤するときの判断基準 • Adobe Experience Manager • Alfresco • Aurora (MySQL) • Aurora (PostgreSQL) • Amazon FSx (Windows) • Amazon FSx (NetApp ONTAP) • Database data sources • Amazon RDS (Microsoft SQL Server) • Amazon RDS (MySQL) • Amazon RDS (Oracle) • Amazon RDS (PostgreSQL) • Amazon S3 buckets • Amazon Kendra Web Crawler • Amazon WorkDocs • Box • Confluence • Custom data sources • Dropbox • Drupal • GitHub • Gmail • Google Workspace Drives • IBM DB2 • Jira • Microsoft Exchange • Microsoft OneDrive • Microsoft SharePoint • Microsoft Teams • Microsoft SQL Server • Microsoft Yammer • MySQL • Oracle Database • PostgreSQL • Quip • Salesforce • ServiceNow • Slack • Zendesk

Slide 31

Slide 31 text

©Fusic Co., Ltd. 31 特に制限がないのであればKendra、検証として使⽤するのであればPinecone 値段 KendraとPineconeを使⽤するときの判断基準 引⽤:Amazon Kendraの料⾦(https://aws.amazon.com/jp/kendra/pricing/)

Slide 32

Slide 32 text

©Fusic Co., Ltd. 32 特に制限がないのであればKendra、検証として使⽤するのであればPinecone 値段 KendraとPineconeを使⽤するときの判断基準 引⽤:Amazon Kendraの料⾦(https://aws.amazon.com/jp/kendra/pricing/) 1ヶ⽉何もしなくても 最低⽉810ドルかかる

Slide 33

Slide 33 text

©Fusic Co., Ltd. 33 特に制限がないのであればKendra、検証として使⽤するのであればPinecone 値段 KendraとPineconeを使⽤するときの判断基準 引⽤:Amazon Kendraの料⾦(https://aws.amazon.com/jp/kendra/pricing/) それ以外にも費⽤がかかる 可能性がある

Slide 34

Slide 34 text

©Fusic Co., Ltd. 34 特に制限がないのであればKendra、検証として使⽤するのであればPinecone 値段 KendraとPineconeを使⽤するときの判断基準 引⽤:Pineconeの料⾦(https://www.pinecone.io/pricing/)

Slide 35

Slide 35 text

©Fusic Co., Ltd. 35 特に制限がないのであればKendra、検証として使⽤するのであればPinecone 値段 KendraとPineconeを使⽤するときの判断基準 引⽤:Pineconeの料⾦(https://www.pinecone.io/pricing/) 使⽤範囲内であれば 無料で使える

Slide 36

Slide 36 text

©Fusic Co., Ltd. 36 特に制限がないのであればKendra、検証として使⽤するのであればPinecone 値段 KendraとPineconeを使⽤するときの判断基準 引⽤:Pineconeの料⾦(https://www.pinecone.io/pricing/)

Slide 37

Slide 37 text

©Fusic Co., Ltd. 37 Kendraの場合だと、データソース先と同期するだけで構築できる 実装の容易さと柔軟性 KendraとPineconeを使⽤するときの判断基準

Slide 38

Slide 38 text

©Fusic Co., Ltd. 38 Kendraの場合だと、データソース先と同期するだけで構築できる 実装の容易さと柔軟性 KendraとPineconeを使⽤するときの判断基準 データソースを選択するだけで使えるように なるので、構築コストが少ない

Slide 39

Slide 39 text

©Fusic Co., Ltd. 39 Kendraの場合だと、データソース先と同期するだけで構築できる 実装の容易さと柔軟性 KendraとPineconeを使⽤するときの判断基準 クエリ拡張やリランキングなど 別のところに⼯数を使⽤できる

Slide 40

Slide 40 text

©Fusic Co., Ltd. 40 Pineconeの場合でもKBを使えばS3にデータを⼊れるだけで同期できるが、データのチューニングは⾃分で⾏う必要があ る 実装の容易さと柔軟性 KendraとPineconeを使⽤するときの判断基準

Slide 41

Slide 41 text

©Fusic Co., Ltd. 41 Pineconeの場合でもKBを使えばS3にデータを⼊れるだけで同期できるが、データのチューニングは⾃分で⾏う必要があ る 実装の容易さと柔軟性 KendraとPineconeを使⽤するときの判断基準

Slide 42

Slide 42 text

©Fusic Co., Ltd. 42 ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って Pineconeを使⽤する場合のRAG ドキュメント ベクトル化 Pineconeに登録 Amazon Titan Text Embeddings

Slide 43

Slide 43 text

©Fusic Co., Ltd. 43 Amazon Titan Text Embeddings ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って Pineconeを使⽤する場合のRAG ドキュメント ベクトル化 Pineconeに登録 データのまとまりがない

Slide 44

Slide 44 text

©Fusic Co., Ltd. 44 Amazon Titan Text Embeddings ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って Pineconeを使⽤する場合のRAG ドキュメント ベクトル化 Pineconeに登録 ⽂字を分割するサイズを変更

Slide 45

Slide 45 text

©Fusic Co., Ltd. 45 ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って Pineconeを使⽤する場合のRAG ドキュメント ベクトル化 Pineconeに登録 内容を重複させる Amazon Titan Text Embeddings

Slide 46

Slide 46 text

©Fusic Co., Ltd. 46 ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って Pineconeを使⽤する場合のRAG ドキュメント ベクトル化 Pineconeに登録 LLM LLMを使ってドキュメントの データを抽出する

Slide 47

Slide 47 text

©Fusic Co., Ltd. 47 検証として使⽤したい場合はPineconeとKBの組み合わせを使った⽅が良さそう データソースの種類が多く、すぐに構築したいならKendra KendraとPineconeの使い分けのまとめ Kendra Pinecone ドキュメント ◯ 多様な形式に対応 △ 標準的な形式 値段 × かなり⾼コスト ◎ ⽐較的安価 実装の容易さと柔軟性 ◯ 導⼊が容易 △ ⼀部専⾨知識必要 ◎:とても良い ◯:良い △:普通 ×:悪い

Slide 48

Slide 48 text

©Fusic Co., Ltd. 48 検証として使⽤したい場合はPineconeとKBの組み合わせを使った⽅が良さそう データソースの種類が多く、すぐに構築したいならKendra KendraとPineconeの使い分けのまとめ Kendra Pinecone ドキュメント ◯ 多様な形式に対応 △ 標準的な形式 値段 × かなり⾼コスト ◎ ⽐較的安価 実装の容易さと柔軟性 ◯ 導⼊が容易 △ ⼀部専⾨知識必要 ◎:とても良い ◯:良い △:普通 ×:悪い Webクローリングしたデータを使って 迅速にデモアプリを作成

Slide 49

Slide 49 text

©Fusic Co., Ltd. 49 検証として使⽤したい場合はPineconeとKBの組み合わせを使った⽅が良さそう データソースの種類が多く、すぐに構築したいならKendra KendraとPineconeの使い分けのまとめ Kendra Pinecone ドキュメント ◯ 多様な形式に対応 △ 標準的な形式 値段 × かなり⾼コスト ◎ ⽐較的安価 実装の容易さと柔軟性 ◯ 導⼊が容易 △ ⼀部専⾨知識必要 ◎:とても良い ◯:良い △:普通 ×:悪い mdで管理されているドキュメントを 使ってRAGを構築

Slide 50

Slide 50 text

©Fusic Co., Ltd. 50 まとめ 5

Slide 51

Slide 51 text

©Fusic Co., Ltd. 51 まとめ KendraとPineconeは強みが異なるので、プロジェクトの要件に合わせて選択する必要がある。 Point 01 Kendraは多機能だが⾼コスト、Pineconeは⽐較的安価だが専⾨知識が必要 Point 02 Kendraは導⼊が容易、Pineconeはカスタマイズ性が⾼いが専⾨知識が必要 Point 03

Slide 52

Slide 52 text

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