Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSでRAGを作る方法

 AWSでRAGを作る方法

【connpass】
福岡LLM勉強会
https://connpass.com/event/324157/

そのだ

July 19, 2024
Tweet

More Decks by そのだ

Other Decks in Technology

Transcript

  1. ©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
  2. ©Fusic Co., Ltd. 3 苑⽥ 朝彰 Sonoda Tomotada - X:

    sonoda_mj - 2023 AWS Jr.Champions - 2024 AWS Community Builders (ML & GenAI) - 2024 Japan AWS Top Engineers (Services) - 甲賀流忍者検定(初級) コメント 明⽇滝⾏してきます ⾃⼰紹介 はじめに 株式会社Fusic
  3. ©Fusic Co., Ltd. 4 CONTENTS ⽬次 1. 検索拡張⽣成(RAG)とは 2. Amazon

    Bedrockとは 3. AWSでRAGを作る⽅法 4. Knowledge Base for Amazon Bedrockを使い倒す 5. まとめ
  4. ©Fusic Co., Ltd. 6 Retrieval Augmented Generation(RAG) ⽣成系の⾔語 AI モデルに外部メモリをつけるというコンセプトのことを指す

    検索拡張⽣成(RAG)とは Vector Database LLM 質問 検索 返答 検索結果 引用:https://github.com/aws-samples/jp-rag-sample
  5. ©Fusic Co., Ltd. 15 AI21 Labs、Anthropic、Cohere、Meta、Stability AI、Amazon などの⼤⼿ AI 企業が提供する⾼性能な基盤モ

    デル (FM) を単⼀の API で選択できるフルマネージド型サービス Amazon Bedrock 引⽤: https://aws.amazon.com/jp/bedrock/
  6. ©Fusic Co., Ltd. 16 Amazon Bedrockの機能 • モデルカスタム • インポートモデル(プレビュー)

    • ガードレール • ウォーターマーク検出 • ナレッジベース • エージェント • プロンプトマネジメント(プレビュー) • プロンプトフロー (プレビュー) • モデル評価
  7. ©Fusic Co., Ltd. 17 Amazon Bedrockの機能 • モデルカスタム • インポートモデル(プレビュー)

    • ガードレール • ウォーターマーク検出 • ナレッジベース • エージェント • プロンプトマネジメント(プレビュー) • プロンプトフロー (プレビュー) • モデル評価
  8. ©Fusic Co., Ltd. 18 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 OpenSearch Serverless Aurora
  9. ©Fusic Co., Ltd. 19 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 OpenSearch Serverless Aurora
  10. ©Fusic Co., Ltd. 21 ランタイム実⾏ • ユーザーのクエリをベクトル化する • ドキュメントのベクトルと⽐較し、意味的に類似したチャンクが検索される •

    取得されたチャンクからの追加のコンテキストで拡張される 引⽤:https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html Cohere Amazon Titan Text Embeddings Claude系
  11. ©Fusic Co., Ltd. 23 AWSでRAGを作る⽅法 • Amazon Kendra + Amazon

    Bedrock • Vector DB + Amazon Bedrock • Knowledge Base for Amazon Bedrock
  12. ©Fusic Co., Ltd. 27 検証として使⽤したい場合はPineconeとBedrock組み合わせを使った⽅が安く済む データソースの種類が多く、すぐに構築したいならKendra 構築がめんどくさく、料⾦もそこそこ払えるならKnowledge Base for Amazon

    Bedrock KendraとPineconeの使い分けのまとめ Kendra + Bedrock Pinecone + Bedrock Knowledge Base for Amazon Bedrock ドキュメント ◎ 多様な形式に対応 △ 標準的な形式 ◯ 最近コネクション増加 値段 × かなり⾼コスト ◎ ⽐較的安価 ◯ Kendraよりは安い 実装の容易さと柔軟性 ◯ 導⼊が容易 △ ⼀部専⾨知識必要 ◯ 導⼊が容易 ◎:とても良い ◯:良い △:普通 ×:悪い
  13. ©Fusic Co., Ltd. 28 検証として使⽤したい場合はPineconeとBedrock組み合わせを使った⽅が安く済む データソースの種類が多く、すぐに構築したいならKendra 構築がめんどくさく、料⾦もそこそこ払えるならKnowledge Base for Amazon

    Bedrock KendraとPineconeの使い分けのまとめ Kendra + Bedrock Pinecone + Bedrock Knowledge Base for Amazon Bedrock ドキュメント ◎ 多様な形式に対応 △ 標準的な形式 ◯ 最近コネクション増加 値段 × かなり⾼コスト ◎ ⽐較的安価 ◯ Kendraよりは安い 実装の容易さと柔軟性 ◯ 導⼊が容易 △ ⼀部専⾨知識必要 ◯ 導⼊が容易 ◎:とても良い ◯:良い △:普通 ×:悪い
  14. ©Fusic Co., Ltd. 33 ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明

    データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って チャンク分割 ドキュメント ベクトル化 OpenSearchに登録 Amazon Titan Text Embeddings OpenSearch Serverless
  15. ©Fusic Co., Ltd. 34 Amazon Titan Text Embeddings ドキュメント #

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

    データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って チャンク分割 ドキュメント ベクトル化 内容を重複させる Amazon Titan Text Embeddings OpenSearchに登録 OpenSearch Serverless
  17. ©Fusic Co., Ltd. 36 データをセマンティックな意味に基づいてセグメント化し、関連情報が論理的なチャンクにまとめる。コンテキスト関係 を維持することで、RAG モデルはより関連性の⾼い⼀貫性のある結果を取得できる。 ⾼度なデータチャンクオプション(セマンティックチャンキング) ドキュメント #

    AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って 似たような意味を持つチャンクに分ける 分けた⽂章をベクトル化して、類似していたら まとめる
  18. ©Fusic Co., Ltd. 37 データをセマンティックな意味に基づいてセグメント化し、関連情報が論理的なチャンクにまとめる。コンテキスト関係 を維持することで、RAG モデルはより関連性の⾼い⼀貫性のある結果を取得できる。 ⾼度なデータチャンクオプション(セマンティックチャンキング) ドキュメント #

    AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って 似たような意味を持つチャンクに分ける
  19. ©Fusic Co., Ltd. 38 ⾼度なデータチャンクオプション(セマンティックチャンキング) パラメータ名 詳細 周囲の⽂をグループ化するための最⼤バッファサイズ 意味的類似性を評価するときにグループ化する⽂の数。 バッファ

    サイズに 1 を選択すると、⽂をグループ化する ときに、前の⽂、対象の⽂、次の⽂が含まれる チャンクの最⼤トークン テキスト チャンクに含めることができるトークンの最⼤数 ⽂グループ間の類似性のブレークポイントしきい値 ⽂グループを意味的に⽐較したときに、⽂グループがどの 程度類似しているかを (パーセンテージしきい値で) 指定す る
  20. ©Fusic Co., Ltd. 39 ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明

    データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って ⾼度なデータチャンクオプション(階層的チャンキング) ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って 親チャンク ⼦チャンク① ⼦チャンク② ⼦チャンク③ データを階層構造に整理し、データ内の固有の関係に基づいて、より詳細かつ効率的な取得を可能にする。 (複雑な書式設定とネストされたテーブルを持つ技術マニュアル、法律⽂書、学術論⽂など、ネストされた構造または階 層構造を持つ複雑なドキュメントに最適)
  21. ©Fusic Co., Ltd. 40 ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明

    データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って ⾼度なデータチャンクオプション(階層的チャンキング) ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って 親チャンク ⼦チャンク① ⼦チャンク② ⼦チャンク③ データを階層構造に整理し、データ内の固有の関係に基づいて、より詳細かつ効率的な取得を可能にする。 (複雑な書式設定とネストされたテーブルを持つ技術マニュアル、法律⽂書、学術論⽂など、ネストされた構造または階 層構造を持つ複雑なドキュメントに最適) ⼦チャンクに対して セマンティック検索を⾏う
  22. ©Fusic Co., Ltd. 41 ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明

    データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って ⾼度なデータチャンクオプション(階層的チャンキング) ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って 親チャンク ⼦チャンク① ⼦チャンク③ データを階層構造に整理し、データ内の固有の関係に基づいて、より詳細かつ効率的な取得を可能にする。 (複雑な書式設定とネストされたテーブルを持つ技術マニュアル、法律⽂書、学術論⽂など、ネストされた構造または階 層構造を持つ複雑なドキュメントに最適) ヒットした⼦チャンクの 親チャンクをFMに返す
  23. ©Fusic Co., Ltd. 47 まとめ Amazon Bedrockは単⼀のAPI で選択できるフルマネージド型サービス Point 01

    Knowledge Base for Amazon Bedrockは簡単にRAGを構築することができる Point 02