Share
Embed
Transcript
47 slides
-
©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 -
©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 -
©Fusic Co., Ltd. 4 CONTENTS ⽬次 1. 検索拡張⽣成(RAG)とは 2. Amazon
Bedrockとは 3. AWSでRAGを作る⽅法 4. Knowledge Base for Amazon Bedrockを使い倒す 5. まとめ -
©Fusic Co., Ltd. 6 Retrieval Augmented Generation(RAG) ⽣成系の⾔語 AI モデルに外部メモリをつけるというコンセプトのことを指す
検索拡張⽣成(RAG)とは Vector Database LLM 質問 検索 返答 検索結果 引用:https://github.com/aws-samples/jp-rag-sample -
©Fusic Co., Ltd. 15 AI21 Labs、Anthropic、Cohere、Meta、Stability AI、Amazon などの⼤⼿ AI 企業が提供する⾼性能な基盤モ
デル (FM) を単⼀の API で選択できるフルマネージド型サービス Amazon Bedrock 引⽤: https://aws.amazon.com/jp/bedrock/ -
©Fusic Co., Ltd. 16 Amazon Bedrockの機能 • モデルカスタム • インポートモデル(プレビュー)
• ガードレール • ウォーターマーク検出 • ナレッジベース • エージェント • プロンプトマネジメント(プレビュー) • プロンプトフロー (プレビュー) • モデル評価 -
©Fusic Co., Ltd. 17 Amazon Bedrockの機能 • モデルカスタム • インポートモデル(プレビュー)
• ガードレール • ウォーターマーク検出 • ナレッジベース • エージェント • プロンプトマネジメント(プレビュー) • プロンプトフロー (プレビュー) • モデル評価 -
©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 -
©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 -
©Fusic Co., Ltd. 20 データの前処理 • ドキュメントを管理しやすいチャンクに分割し、効率的に取得できるようにする • ドキュメントをEmbedding Modelを使⽤してベクトル化する
• Vector DBに格納する Cohere Amazon Titan Text Embeddings 引⽤:https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html -
©Fusic Co., Ltd. 21 ランタイム実⾏ • ユーザーのクエリをベクトル化する • ドキュメントのベクトルと⽐較し、意味的に類似したチャンクが検索される •
取得されたチャンクからの追加のコンテキストで拡張される 引⽤:https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html Cohere Amazon Titan Text Embeddings Claude系 -
©Fusic Co., Ltd. 23 AWSでRAGを作る⽅法 • Amazon Kendra + Amazon
Bedrock • Vector DB + Amazon Bedrock • Knowledge Base for Amazon Bedrock -
©Fusic Co., Ltd. 27 検証として使⽤したい場合はPineconeとBedrock組み合わせを使った⽅が安く済む データソースの種類が多く、すぐに構築したいならKendra 構築がめんどくさく、料⾦もそこそこ払えるならKnowledge Base for Amazon
Bedrock KendraとPineconeの使い分けのまとめ Kendra + Bedrock Pinecone + Bedrock Knowledge Base for Amazon Bedrock ドキュメント ◎ 多様な形式に対応 △ 標準的な形式 ◯ 最近コネクション増加 値段 × かなり⾼コスト ◎ ⽐較的安価 ◯ Kendraよりは安い 実装の容易さと柔軟性 ◯ 導⼊が容易 △ ⼀部専⾨知識必要 ◯ 導⼊が容易 ◎:とても良い ◯:良い △:普通 ×:悪い -
©Fusic Co., Ltd. 28 検証として使⽤したい場合はPineconeとBedrock組み合わせを使った⽅が安く済む データソースの種類が多く、すぐに構築したいならKendra 構築がめんどくさく、料⾦もそこそこ払えるならKnowledge Base for Amazon
Bedrock KendraとPineconeの使い分けのまとめ Kendra + Bedrock Pinecone + Bedrock Knowledge Base for Amazon Bedrock ドキュメント ◎ 多様な形式に対応 △ 標準的な形式 ◯ 最近コネクション増加 値段 × かなり⾼コスト ◎ ⽐較的安価 ◯ Kendraよりは安い 実装の容易さと柔軟性 ◯ 導⼊が容易 △ ⼀部専⾨知識必要 ◯ 導⼊が容易 ◎:とても良い ◯:良い △:普通 ×:悪い -
©Fusic Co., Ltd. 33 ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明
データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って チャンク分割 ドキュメント ベクトル化 OpenSearchに登録 Amazon Titan Text Embeddings OpenSearch Serverless -
©Fusic Co., Ltd. 34 Amazon Titan Text Embeddings ドキュメント #
AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って チャンク分割 ドキュメント ベクトル化 データのまとまりがない OpenSearchに登録 OpenSearch Serverless -
©Fusic Co., Ltd. 35 ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明
データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って チャンク分割 ドキュメント ベクトル化 内容を重複させる Amazon Titan Text Embeddings OpenSearchに登録 OpenSearch Serverless -
©Fusic Co., Ltd. 36 データをセマンティックな意味に基づいてセグメント化し、関連情報が論理的なチャンクにまとめる。コンテキスト関係 を維持することで、RAG モデルはより関連性の⾼い⼀貫性のある結果を取得できる。 ⾼度なデータチャンクオプション(セマンティックチャンキング) ドキュメント #
AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って 似たような意味を持つチャンクに分ける 分けた⽂章をベクトル化して、類似していたら まとめる -
©Fusic Co., Ltd. 37 データをセマンティックな意味に基づいてセグメント化し、関連情報が論理的なチャンクにまとめる。コンテキスト関係 を維持することで、RAG モデルはより関連性の⾼い⼀貫性のある結果を取得できる。 ⾼度なデータチャンクオプション(セマンティックチャンキング) ドキュメント #
AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って 似たような意味を持つチャンクに分ける -
©Fusic Co., Ltd. 38 ⾼度なデータチャンクオプション(セマンティックチャンキング) パラメータ名 詳細 周囲の⽂をグループ化するための最⼤バッファサイズ 意味的類似性を評価するときにグループ化する⽂の数。 バッファ
サイズに 1 を選択すると、⽂をグループ化する ときに、前の⽂、対象の⽂、次の⽂が含まれる チャンクの最⼤トークン テキスト チャンクに含めることができるトークンの最⼤数 ⽂グループ間の類似性のブレークポイントしきい値 ⽂グループを意味的に⽐較したときに、⽂グループがどの 程度類似しているかを (パーセンテージしきい値で) 指定す る -
©Fusic Co., Ltd. 39 ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明
データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って ⾼度なデータチャンクオプション(階層的チャンキング) ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って 親チャンク ⼦チャンク① ⼦チャンク② ⼦チャンク③ データを階層構造に整理し、データ内の固有の関係に基づいて、より詳細かつ効率的な取得を可能にする。 (複雑な書式設定とネストされたテーブルを持つ技術マニュアル、法律⽂書、学術論⽂など、ネストされた構造または階 層構造を持つ複雑なドキュメントに最適) -
©Fusic Co., Ltd. 40 ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明
データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って ⾼度なデータチャンクオプション(階層的チャンキング) ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って 親チャンク ⼦チャンク① ⼦チャンク② ⼦チャンク③ データを階層構造に整理し、データ内の固有の関係に基づいて、より詳細かつ効率的な取得を可能にする。 (複雑な書式設定とネストされたテーブルを持つ技術マニュアル、法律⽂書、学術論⽂など、ネストされた構造または階 層構造を持つ複雑なドキュメントに最適) ⼦チャンクに対して セマンティック検索を⾏う -
©Fusic Co., Ltd. 41 ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明
データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って ⾼度なデータチャンクオプション(階層的チャンキング) ドキュメント # AWSでインフラを構築する⽅法 CDKを使⽤して、hogehoge… # AWS環境の説明 データベースはDynamoDBを使⽤ 理由はhogehoge… # ローカルでの開発⽅法 Docker使ってhogehoge… あとはやる気で頑張って 親チャンク ⼦チャンク① ⼦チャンク③ データを階層構造に整理し、データ内の固有の関係に基づいて、より詳細かつ効率的な取得を可能にする。 (複雑な書式設定とネストされたテーブルを持つ技術マニュアル、法律⽂書、学術論⽂など、ネストされた構造または階 層構造を持つ複雑なドキュメントに最適) ヒットした⼦チャンクの 親チャンクをFMに返す -
©Fusic Co., Ltd. 42 ⾼度なデータチャンクオプション(階層的チャンキング) パラメータ名 詳細 親トークンの最⼤サイズ 親チャンクに含めることができるトークンの最⼤数 ⼦トークンの最⼤サイズ
トークンに含めることができるトークンの最⼤数 チャンク間のトークンの重複 ⼦チャンク間の重複のパーセンテージ -
©Fusic Co., Ltd. 44 複雑な質問を複数の単純なサブクエリに分割し、それぞれで関連情報を検索することで、RAGアプリケーションの精度と 応答品質を向上させる(Bedrockのlogから確認できる) クエリの再定式化(Query reformulation) • 苑⽥の経歴や背景について
• 苑⽥とは誰で、ドイツ⼈を怒らせたエピソード は何ですか? • 苑⽥がドイツ⼈を怒らせた具体的なエピソード は何ですか? クエリを分割 -
©Fusic Co., Ltd. 47 まとめ Amazon Bedrockは単⼀のAPI で選択できるフルマネージド型サービス Point 01
Knowledge Base for Amazon Bedrockは簡単にRAGを構築することができる Point 02