AWS Certified Generative AI Developer - Professional 資格対策コース
ベクトルストア設計とメタデータ・同期
このレッスンで学ぶこと 対応試験ドメイン D1 タスク 1.4.1〜1.4.5(ベクトルストア設計・メタデータ・同期)。Amazon Bedrock Knowledge Bases を軸に、ベクトルストアの選択肢(Amazon OpenSearch Service・Amazon Aurora pgvector・Amazon S3)、メタデータ設計、ソースデータとの同期戦略を判断できるようになります。
解説
RAG の中核はベクトルストアです。資格試験では、どのベクトルストアを選び、メタデータをどう設計し、ソースとどう同期するかという設計判断が問われます。
Amazon Bedrock Knowledge Bases がオーケストレーションする
Amazon Bedrock Knowledge Bases は、ソースデータの取り込み・チャンキング・埋め込み生成・ベクトルストアへの保存・検索までをマネージドにつなぐ RAG オーケストレーターです。受講者は埋め込みモデル(Amazon Titan Embeddings 等)とベクトルストアを選ぶだけで、取り込みパイプラインを自前実装せずに済みます。
ベクトルストアの選択肢
| ストア | 位置づけ |
|---|---|
| Amazon OpenSearch Service(Serverless 含む) | スケーラブルなベクトル + キーワード検索。大規模・ハイブリッド検索向き |
| Amazon Aurora PostgreSQL(pgvector) | 既存のリレーショナルデータと同居。トランザクション併用に向く |
| Amazon S3 Vectors | コスト重視のベクトル保管。大量・低コスト要件向き |
| Amazon OpenSearch Serverless | 運用管理を抑えたい場合の既定的な選択 |
要件で切り分けます。大規模・ハイブリッド検索なら OpenSearch、既存 RDB と統合したいなら Aurora pgvector、コストを最優先するなら S3 ベースという判断です。
メタデータ設計とフィルタリング
各チャンクにはメタデータ(部署・公開範囲・更新日・ドキュメント種別など)を付与します。検索時にメタデータフィルタを効かせることで、ユーザーが見てよい範囲だけに検索を絞れます。アクセス制御や鮮度管理の観点で、メタデータ設計は RAG 品質とセキュリティの両方を左右します。
Python
import boto3
agent_rt = boto3.client("bedrock-agent-runtime")
# Knowledge Bases の検索でメタデータフィルタを適用
resp = agent_rt.retrieve(
knowledgeBaseId="KB12345",
retrievalQuery={"text": "退職金の規定は"},
retrievalConfiguration={
"vectorSearchConfiguration": {
"numberOfResults": 5,
"filter": {"equals": {"key": "department", "value": "hr"}},
}
},
)ソースとの同期
ソース(Amazon S3 など)が更新されたら、Knowledge Bases の取り込みジョブ(ingestion job)を実行して同期します。差分取り込みで更新分だけを反映でき、古い情報がベクトルストアに残るのを防ぎます。同期を怠ると、検索結果が陳腐化するのが典型的な失敗です。
試験で問われるポイント
- Amazon Bedrock Knowledge Bases と Amazon Kendra は似て非なるもの。ベクトル埋め込みベースの RAG パイプラインを Bedrock と統合するのが Knowledge Bases、エンタープライズ検索(コネクタ豊富な検索サービス)が Kendra。「Bedrock で RAG のベクトルストアを構成」と来たら Knowledge Bases
- ベクトルストア選定は要件で決まる。大規模・ハイブリッド検索は OpenSearch、既存 RDB 統合は Aurora pgvector、コスト最優先は S3 ベース
- メタデータフィルタはアクセス制御と鮮度管理に効く。設計を怠ると見せてはいけない文書がヒットする
- ソース更新時は取り込みジョブで同期する。同期を怠ると検索が陳腐化する
- 試験で問われるのは AWS のどのストア・どの仕組みで RAG を構成するかである
サービスの使い分け早見表
| やりたいこと | 使うもの | 混同しやすいもの |
|---|---|---|
| Bedrock 統合の RAG パイプライン | Amazon Bedrock Knowledge Bases | Amazon Kendra(エンタープライズ検索サービス) |
| 大規模・ハイブリッド検索 | Amazon OpenSearch Service | Aurora pgvector(RDB 統合向き) |
| 既存リレーショナルデータと統合 | Amazon Aurora PostgreSQL pgvector | OpenSearch(RDB 統合は持たない) |
| コスト最優先のベクトル保管 | Amazon S3 Vectors | OpenSearch(運用コストが相対的に高い) |
まとめ
ベクトルストア設計は、Amazon Bedrock Knowledge Bases で取り込み〜検索をオーケストレーションし、要件に応じて OpenSearch・Aurora pgvector・S3 を選び、メタデータでフィルタとアクセス制御を効かせ、取り込みジョブでソースと同期することが核心です。
次のステップ
次のクイズレッスンで、本番形式のシナリオ問題に挑戦してベクトルストア設計の判断力を確認しましょう。
関連レッスン
- データ検証・処理・品質改善(pro-data-validation)
- Titan Embeddings と埋め込みソリューション選定(pro-embedding-titan)
- チャンキング・ハイブリッド検索・リランキング(pro-retrieval-hybrid)