Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AWSで構築するパターン別RAG構成解説
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
つくぼし
July 06, 2024
Technology
9.8k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSで構築するパターン別RAG構成解説
つくぼし
July 06, 2024
More Decks by つくぼし
See All by つくぼし
[モダンアプリ勉強会]今更聞けないGit/GitHub入門
tsukuboshi
0
910
世界の中心でApp Runnerを叫ぶ FINAL
tsukuboshi
0
520
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
1.9k
Mastraに入門してみた ~AWS CDKを添えて~
tsukuboshi
0
1.5k
Amazon Bedrock GenUハンズオン座学資料 #2 GenU環境でRAGを体験してみよう
tsukuboshi
0
910
Amazon Bedrock GenUハンズオン座学資料 #1 GenU環境で生成AIを体験してみよう
tsukuboshi
0
1.7k
AWSエンジニアに捧ぐLangChainの歩き方
tsukuboshi
5
2.5k
世界の中心でApp Runnerを叫ぶ ~Aurora DSQLを添えて~
tsukuboshi
0
970
初めてのGPTs ~ネコ派を〇〇派に変える技術~
tsukuboshi
0
1.3k
Other Decks in Technology
See All in Technology
IR Today: Theory, Practice, and Agents
dtunkelang
0
160
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
120
LT:「このままでいいのかな?」から一歩踏み出した私のデータキャリア選択〜社会人3年目に上京を決意したリアル〜Snowflake女子会 vol.8
snowwmn0824
0
110
Cloudflare Workers 向けアプリを C# で構築する ~WASM Native AOT への道~
nenonaninu
1
1.8k
なぜAI任せのゲームは面白くならないのか?
hirohasuyoutube
0
210
AWS FinOps Agent 結局何が得意なの?
siromi
0
210
AI感のないAWS構成図をAIエージェントに描かせたい!
sagochiko
2
460
ADKで始める業務改善 - AIエージェント開発時の考えと設計
harappa80
2
300
作って終わりじゃないサーバーレス 〜9年運用する大規模EC物流API基盤の設計・運用のリアル〜
zozotech
PRO
0
570
CI/CDではもう遅い - 人とAIが迂回しないDevSecOps Verify基盤の再設計 -
kintotechdev
1
360
営業オントロジーの作り方と、エージェントからの辿り方 ── ナレッジワークの現場から
kworkdev
PRO
1
160
3人で1000GPU超を統合運用する?マルチクラウド&オンプレを跨ぐ、構築と運用のリアル!
kazukun0716
2
620
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Writing Fast Ruby
sferik
630
63k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
310
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
490
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
The Curse of the Amulet
leimatthew05
3
15k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
570
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
690
YesSQL, Process and Tooling at Scale
rocio
174
15k
Optimizing for Happiness
mojombo
378
71k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Transcript
AWSで構築する パターン別RAG構成解説 2024.7.8 AWS事業本部 つくぼし
Xへの投稿の際は、 ハッシュタグ #cm_odyssey でお願いいたします。 2 お願い
⾃⼰紹介 • ハンドルネーム ◦ つくぼし • 所属 ◦ AWS事業本部コンサルティング部 ◦
ソリューションアーキテクト • 最近ハマっているAWSサービス ◦ AWS Application Composer • SNS/ブログ ◦ X(@tsukuboshi0755) ◦ DevelopersIO(つくぼし) 3
⽬次 1. はじめに 2. RAGのおさらい 3. AWSにおけるRAG検索エンジンサービスの⽐較 4. AWSにおけるベクトルデータベースサービスの⽐較 5.
AWSでオススメのRAG構成パターン 6. 最後に 4
1. はじめに 5
社内データをRAGで活⽤する 事例が増えてきている 6
AWSでは どのパターンのRAGを 組むと良いのか? 7
RAG含めた生成 AI周りの技術は、 アップデート速度が早い傾向があります。 今回のセッション内容は、あくまで 2024/7/7ま での情報を元にしているため ご注意ください。 8 ご注意事項
2. RAGのおさらい 9
RAG(Retrieval Augmented Generative)とは? 10 ⽣成AIにデータの検索結果を与える事で、 ⽣成する回答性能を向上させる⼿法
なぜRAGが必要なのか? 11 • ⼀般的に、⽣成AIは特定時点までのパブリックデータし か学習していない • そのため単独では、最新データやプライベートデータ等 を⽤いた返答が難しい • 外部DBに参照データを格納し、DBの検索結果を元に⽣
成AIが回答⽣成する事で、上記の弱点を補う事が可能
RAGのフェーズ 1. Storeフェーズ 2. Retrievalフェーズ 3. Generationフェーズ 12
Storeフェーズ 13 • 外部データソースから関連情報を収集 • 収集した情報を分割し、検索エンジンが使⽤するデータベー スに保存
Retrievalフェーズ 14 • 検索エンジンを⽤いて、類似ドキュメントの検索を実施 • 抽出されたドキュメント内容のみを結果として返答
Generationフェーズ 15 • 検索結果の内容を参照先として付与した上で、LLMにプロン プトを渡す • LLMがドキュメントに基づいて、回答を⽣成
RAGを理解する上で重要な概念 16 • チャンキング • エンベディング(埋め込み) • ベクトルデータベース
チャンキング 17 • ⼤きなドキュメントデー タを⼩さな断⽚(チャン ク)に分割する事を指す • RAGでは適切なチャンク サイズと分割⽅法を選ぶ 事で、検索精度と⽣成品
質の向上が期待できる 参考:https://fintan.jp/page/10301/
エンべディング(埋め込み) 18 • テキストや画像などのデータを、数値ベクトルに変換する技術 を指す • エンべディングにより、データの意味や関係性を数学的に表現 する事で、機械学習モデルによる類似検索が可能になる 参考:https://aws.amazon.com/jp/blogs/news/the-role-of-vector-datastores-in-generative-ai-applications/
ベクトルデータベース 19 • 数値ベクトルを効率的に保存し、ベ クトル検索を実施するために設計さ れたデータベースシステムを指す • ベクトル検索:変換された数値ベク トルの類似度を⽐較し、関連性の⾼ いデータを⾒つけ出す検索⽅法
参考:https://aws.amazon.com/jp/blogs/news/the-role-of-vector-datastores-in-generative-ai-applications/
3. AWSにおける RAG検索エンジンサービス 20
RAG検索エンジンサービスの選択肢 • Amazon Kendra • Knowledge Bases for Amazon Bedrock
21
Amazon Kendra 22 • AIを活⽤した⾼度なエンタープライ ズ検索サービス • データソースのドキュメント情報を 抽出し、インデックスとして保存 •
インデックスを検索する事で、関連 性の⾼い回答を提供
Kendraを⽤いたRAGの実装 23
Knowledge Bases for Amazon Bedrock 24 • 基盤モデルを⽤いてRAGを実現する Amazon Bedrockの⼀機能
• データソースのドキュメント情報をエ ンベディングに変換し、ベクトルデー タベースに保存 • ベクトルデータベースを検索する事 で、関連性の⾼い回答を提供
Knowledge basesを⽤いたRAGの実装 25
RAG検索エンジンサービスの⽐較観点 26 I. 使⽤料⾦ II. 対象データソース III. 同期実⾏スケジューリング機能 IV. 検索フィルタリング機能
V. チャンキング戦略
Ⅰ. 使⽤料⾦ 27 • Kendraは料⾦が⾼いので要注意! ◦ 現状Enterprise版の場合、最低インデックス料⾦が 1,008USD/⽉となる ◦ Developer版にするとSingle
AZとなるが、最低イン デックス料⾦が810USD/⽉と安くなる • Knowledge Basesの料⾦はベクトルデータベースにもよ るが、ほとんどの場合Kendraよりは安くなる ◦ 基本はベクトルデータベース料⾦ + モデル利⽤料⾦
Ⅱ. 対象データソース 28 • KendraはS3の他に、様々なデータソースを接続可能 ◦ AWSであれば、RDSやFSx(Windows/NetApp ONTAP)といった サービスとも接続できる ◦
SaaSであれば、SharepointやBox、Google Drive等が利⽤できる ◦ Web Crawlerを⽤いて、特定のウェブサイトを参照する事も可能 • Knowledge BasesはS3のみデータソースとして接続可能 ◦ RDSやSaaS等を対象としたい場合、S3へのデータアップロードの 仕組みが別途必要
Ⅲ. 同期実⾏スケジューリング機能 29 • Kendraは単体で同期実⾏スケジューリングを設定可能 ◦ オンデマンド(⼿動実⾏)またはスケジューリングのい ずれかを選択できる • Knowledge
Basesは単体で同期実⾏スケジューリングを 設定できない ◦ データ同期スケリューリングの仕組み(EventBridge Scheduler + Step Functions等)が別途必要
Ⅳ. 検索フィルタリング機能 30 • Kendraはメタデータによるフィルタリング、CDEによるメタデータ⾃動付与、 及びACLによるフィルタリングを実施可能 ◦ メタデータをファイル毎に付与する事で、ファイル単位でフィルタリング できる ◦
CDE(Contents Data Enrichment)を設定する事で、メタデータの⾃動付与 を⽐較的簡単に実現できる ◦ ACL(Access Control List)を設定すると、認証サーバと連携し、特定のユー ザ‧グループ権限毎にプレフィックス単位でフィルタリングできる • Knowledge Basesはメタデータによるフィルタリングのみ実施可能 ◦ メタデータを⾃動付与したい場合、Lambda等でのメタデータ付与システ ムの仕組みが別途必要
Ⅴ. チャンキング戦略 31 • Kendraはチャンキング戦略を設定不可 • Knowledge Basesはチャンキング戦略を、以下から変更可能 ◦ デフォルトのチャンキング:各ファイルを300
の最⼤トークン数 を持つチャンクに分割し処理する ◦ 固定サイズのチャンキング:各ファイルを20 ~ 8192 の間で指定 した最⼤トークン数を持つチャンクに分割し処理する ◦ チャンキング無し:各ファイルをそのままチャンクとして処理す る
余談:現時点のIaC化対応状況 32 • Kendraの場合、新データソース設定である TemplateConfigurationが⼀部のIaCで現状未対応 のため、事前に対応しているか確認するのが吉 • Knowledge Basesの場合、ベクトルデータベース 内のインデックス作成⽅法を別途考慮する必要あ
り
4. AWSにおける ベクトルデータベースサービス の⽐較 33
Knowledge Basesで指定できる ベクトルデータベース 34
ベクトルデータベースサービスの選択肢 • OpenSearch Serverless (ベクトル検索) • Aurora PostgreSQL (pgvector拡張機能) •
サードパーティ 35
Amazon OpenSearch Serverless 36 • ⼤量のデータコレクションを格納し⾼速で検 索可能にするサービス • Serverlessモードで起動する事で、クラス ターの管理が不要
• ベクトル検索を選択する事で、ベクトルデー タベースとして使⽤可能
Amazon Aurora PostgreSQL 37 • PostgreSQLと互換性のある、フルマネージ ドなリレーショナルデータベースサービス • pgvector拡張機能を⽤いた追加セットアッ プにより、ベクトルデータベースとして使⽤
可能 • Aurora に対して HTTP 経由でアクセスを⾏ うData APIの許可設定が別途必要
サードパーティ 38 • Pinecone • Redis Enterprise Cloud • MongoDB
Atlas
サードパーティ 39 • Pinecone • Redis Enterprise Cloud • MongoDB
Atlas
ベクトルデータベースの⽐較観点 40 I. 東京リージョン対応 II. 使⽤料⾦ III. ハイブリッド検索 IV. シークレット運⽤
V. ネットワーク運⽤
Ⅰ. 東京リージョン対応 41 • OpenSearch及びAuroraは、東京リージョンに対応 済 ◦ ただし使⽤できるBedrockモデルには制限があ るため注意 •
Pineconeは、現状東京リージョンは未対応 ◦ 海外リージョンのKnowledge Bases及びS3を使 ⽤する必要がある
Ⅱ. 使⽤料⾦ 42 • OpenSearchは、東京リージョンの場合、最低OCU料⾦が 977.952USD(OCU:4)となる ◦ アクティブレプリカを無効にする事で、Single AZとなるが最低OCU料⾦は 488.976USD/⽉(OCU:2)となる
• Aurora (Serverless v2)は、東京リージョンの場合、最低ACU料⾦が 73.2USD(ACU:0.5)となる ◦ EventBridgeによりDBの起動停⽌スケジュールを設定する事で、RAGを使 ⽤していない時間の料⾦を削減可能 • Pinecone (Serverless)は、Standardプランかつバージニアリージョンの場合、 最低Units料⾦が10.25USD(Read:1/Write:1)となる ◦ VPCに配置してPrivate Link接続したい場合は、Enterpriseプランにする必 要があり、最低Units料⾦が20.5USD(Read:1/Write:1)に上がるため注意
Ⅲ. ハイブリッド検索 43 • OpenSearchではハイブリッド検索を使⽤可能 ◦ ハイブリッド検索 :セマンティック検索と全⽂検索 の両⽅を実⾏する検索⽅法。現状Knowledge Bases
ではOpenSearchのみ有効化可能。 ◦ さらにアナライザー(⼊⼒されたテキストの前処理を するフィルタ機能)として⽇本語対応プラグインを指 定する事で、回答精度の向上が⾒込める。 • Aurora及びPineconeは利⽤不可
Ⅳ. シークレット運⽤ 44 • OpenSearchは、原則シークレットが不要 ◦ シークレット運⽤を考慮する必要がない • Aurora及びPineconeは、事前にSecrets Managerにシークレットの登録が必要
◦ AuroraはDBのユーザー名/パスワード ◦ PineconeはAPIキー
Ⅴ. ネットワーク運⽤ 45 • OpenSearch及びPineconeは、VPCの有無を選択可能 ◦ VPCなしにする事で、ネットワーク運⽤を考慮する必要がなくな る ◦ VPCありにする事で、Private
Linkを⽤いたプライベート接続が可 能(Pineconeは現状パブリックプレビュー版のため注意) • Auroraは必ずVPCが必要 ◦ Private Linkを⽤いたプライベート接続は可能な⼀⽅で、ネット ワーク運⽤の⼿間が必然的に発⽣する
5. AWSでオススメの RAG構成パターン 46
AWSでRAGを実現する⽅法 47 • Kendra & Bedrock • Knowledge Bases for
Amazon Bedrock • 独⾃実装
AWSでRAGを実現する⽅法 48 • Kendra & Bedrock • Knowledge Bases for
Amazon Bedrock • 独⾃実装
オススメのRAG構成パターン別⽐較表 49 比較観点 Kendra & Bedrock Knowledge Bases with OpenSearch
Knowledge Bases with Aurora Knowledge Bases with Pinecone 使用料金 やや高~高 中~やや高 やや低~中 低 対象データソース S3/RDS/FSx(Windows・ONTAP)/ 各種SaaS/Web Crawler S3 S3 S3 同期実行 スケジューリング機能 あり なし なし なし 検索フィルタリング機能 メタデータ(自動付与機能あり)/ACL メタデータ(自動付与機能なし) メタデータ(自動付与機能なし) メタデータ(自動付与機能なし) チャンキング戦略 なし あり あり あり 東京リージョン対応 あり あり あり 現時点ではなし ハイブリッド検索 なし あり なし なし シークレット運用 S3との接続には不要 RDS/FSx/各種SaaS/Web Crawler との接続には原則必要 不要 必要 必要 ネットワーク運用 デフォルトは不要 デフォルトは不要 必要 デフォルトは不要
パターン1.Kendra + Bedrock 50
パターン1がオススメの⽅ 51 • データソースにS3以外のサービス(RDSやFSx、 各種SaaS、Web Crawler)を使⽤したい⽅ • スケジューリング同期実⾏を簡単に使⽤したい ⽅ •
⾼性能な検索フィルタリング機能を使⽤したい ⽅
パターン2.Knowledge Bases with OpenSearch 52
パターン2がオススメの⽅ 53 • Kendraよりは料⾦を安く抑えたい⽅ • チャンキング戦略やハイブリッド検索を使 いこなし、回答精度を独⾃に細かく調整し たい⽅ • Secrets‧VPCなしの構成にしたい⽅
パターン3.Knowledge Bases with Aurora 54
パターン3がオススメの⽅ 55 • ある程度料⾦を安く抑えたい⽅ • Secrets‧VPC管理がそこまで⼿間にならな い⽅ • RDBMSを⽤いてベクトルデータベースを運 ⽤したい⽅
パターン4.Knowledge Bases with Pinecone 56
パターン4がオススメの⽅ 57 • 料⾦をとにかく安く抑えたい⽅ • 参照元データを海外リージョンに配置して も問題ない⽅ • Secrets管理がそこまで⼿間にならない⽅ •
VPCなしの構成にしたい⽅
6. 最後に 58
まとめ 59 • AWSでRAG構成を検討する際は、以下の2点を考慮 し、要件に応じて適切な構成を選択すると良い ◦ 検索エンジン(Kendra/Knowledge Bases) ◦ ベクトルデータベース
(OpenSearch/Aurora/Pinecone等) • RAG周りはアップデートが早いので、引き続き最新 情報を追っていくのが吉
RAGを制するものは ⽣成AIインフラを制す! 60
参考⽂献 61 • [RAGの性能を改善するための8つの戦略 \| Fintan](https://fintan.jp/page/10301/) • [⽣成系 AI アプリケーションでベクトルデータストアが果たす役割とは
\| Amazon Web Services ブロ グ](https://aws.amazon.com/jp/blogs/news/the-role-of-vector-datastores-in-generative -ai-applications/) • [AWS ⼊⾨ブログリレー 2024 〜Amazon Kendra編〜 \| DevelopersIO](https://dev.classmethod.jp/articles/introduction-2024-amazon-kendra/) • [AWS ⼊⾨ブログリレー 2024 〜Knowledge bases for Amazon Bedrock編〜 \| DevelopersIO](https://dev.classmethod.jp/articles/introduction-2024-knowledge-bases -for-amazon-bedrock/) • [Amazon Bedrock ⽣成AIアプリ開発⼊⾨ \[AWS深掘りガイド\] \| SBクリエイティ ブ](https://www.sbcr.jp/product/4815626440/)
None
63