Amazon Bedrock Knowledge Bases で構築する RAG アプリケーション - 検索拡張生成の実装
Bedrock Knowledge Bases による RAG パターンの実装、データソースの設定、チャンキング戦略、Guardrails との統合を解説します。
RAG パターンと Knowledge Bases の概要
この記事は約 4 分で読めます。 RAG (Retrieval-Augmented Generation) は、大規模言語モデル (LLM) の回答を外部知識で補強するパターンです。LLM 単体ではトレーニングデータに含まれない最新情報や社内固有の情報に回答できませんが、RAG では質問に関連するドキュメントを検索し、その内容をコンテキストとして LLM に渡すことで、正確で根拠のある回答を生成します。Bedrock Knowledge Bases はこの RAG パターンをマネージドに提供し、ドキュメントのインデックス化、ベクトル検索、LLM による回答生成を統合します。
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
データソースとチャンキング戦略
データソースとして S3 バケットを指定し、PDF、HTML、Markdown、Word、CSV などのドキュメントを自動的にインデックス化します。ドキュメントはチャンク (断片) に分割され、各チャンクがベクトル化されてベクトルストアに格納されます。チャンキング戦略は検索精度に直結する重要な設計判断です。固定サイズチャンキングは指定した文字数で均等に分割し、シンプルですが文脈が途切れる可能性があります。セマンティックチャンキングは文の意味的なまとまりに基づいて分割し、文脈の保持に優れます。階層的チャンキングは親チャンク (大きな文脈) と子チャンク (詳細な情報) の 2 層構造で、検索時に子チャンクでマッチし、LLM には親チャンクの広い文脈を渡すことで精度を向上させます。
API の使い方と Guardrails 統合
RetrieveAndGenerate API は質問テキストを受け取り、関連ドキュメントの検索と LLM による回答生成を 1 回の API コールで実行します。レスポンスには生成された回答と、回答の根拠となったソースドキュメントの引用情報 (S3 URI、該当箇所) が含まれます。Retrieve API は検索のみを実行し、取得したチャンクをアプリケーション側で加工してから LLM に渡すカスタムフローに使用します。Guardrails を Knowledge Bases に適用すると、回答生成時にコンテンツフィルター (不適切な内容のブロック)、PII マスキング (個人情報の自動除去)、拒否トピック (回答を拒否するトピックの定義) が自動的に適用されます。
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。
まとめ
Bedrock Knowledge Bases は RAG パターンをマネージドに実装するサービスです。S3 上のドキュメントを自動インデックス化し、RetrieveAndGenerate API で検索と生成を統合します。チャンキング戦略の最適化と Guardrails の適用で、正確で安全な RAG アプリケーションを構築できます。
AWS の優位点
- S3 上のドキュメント (PDF、HTML、Markdown、Word) を自動的にインデックス化し、数行のコードで RAG パターンを実装できる
- OpenSearch Serverless、Aurora PostgreSQL、Pinecone をベクトルストアとして選択でき、ユースケースに応じた検索性能を実現する
- チャンキング戦略 (固定サイズ、セマンティック、階層的) の選択でドキュメントの分割方法を最適化し、検索精度を向上できる
- RetrieveAndGenerate API で検索と生成を 1 回の API コールで実行し、ソースの引用情報も自動的に返される
- Guardrails との統合でハルシネーションの抑制、PII のマスキング、不適切なトピックのブロックを適用できる