AWS認定資格 WEB問題集&徹底解説

生成AIデベロッパー-プロフェッショナル

正解 B問題
分野1:基盤モデルの統合、データ管理、コンプライアンス タスクステートメント1.4:ベクトルストアソリューションの設計と実装 タスクステートメント1.5:FM 拡張向けの検索メカニズムの設計
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある製造業の多国籍企業は、製品安全データシート(SDS)を数千件、Amazon S3バケットに保管している。これらの文書は日本、東南アジア、欧州の各拠点向けに作成されており、それぞれ「ドラフト」版と「発行済み」版が混在している。

日本拠点の安全管理担当者からは、社内の生成AIアシスタントに製品の取り扱い注意事項を尋ねると、欧州拠点向けの基準やドラフト版の内容に基づいて回答されることがあり、労働安全衛生上の齟齬が懸念されるとの報告が上がっている。GenAIエンジニアは、検索対象を利用者の拠点(日本)に対応し、かつステータスが「発行済み」の文書のみに厳密に絞り込めるよう、検索の仕組みを再設計する必要がある。

最も堅牢かつ正確なフィルタリング手段を提供するソリューションはどれか。
  • Amazon S3バケットの構造を拠点・ステータスごとのフォルダ階層(例: /JP/発行済み/、/EU/ドラフト/)に再編する。取り込みパイプラインでS3キーのプレフィックスを主要な意味的コンテキストとして扱うよう設定し、インデックス作成時に埋め込みモデルがフォルダ構造の関係性を学習することに委ねる
  • アップロード時にS3オブジェクトへユーザー定義のメタデータヘッダー(例: x-amz-meta-region、x-amz-meta-status)を付与する。取り込みパイプラインを更新してこれらのヘッダーを抽出し、ベクトルストアにキーバリューのフィールドとしてインデックス化する。利用者のプロファイルに基づき、検索クエリにメタデータフィルタを適用するようアプリケーションを構成する
  • Amazon Bedrock Guardrailsのワードフィルタに「ドラフト」および各国名の文言を登録し、生成される応答からこれらの語を含む文章を除外するよう設定する
  • 基盤モデルのシステムプロンプトに「取得したコンテキストの内容を確認し、'EU'や'ドラフト'に言及するテキストは無視すること。'日本'かつ'発行済み'の情報のみを使用すること」という厳格な指示を追加する
解説 頻出度★★★★
この問題は、「拠点(リージョン)× ステータス × 厳密な絞り込み」という要件を、メタデータ属性としてインデックス化し、検索時にメタデータフィルタで機械的に除外する設計に落とせるかがポイント

A. Amazon S3バケットの構造を拠点・ステータスごとのフォルダ階層(例: /JP/発行済み/、/EU/ドラフト/)に再編する。取り込みパイプラインでS3キーのプレフィックスを主要な意味的コンテキストとして扱うよう設定し、インデックス作成時に埋め込みモデルがフォルダ構造の関係性を学習することに委ねる

フォルダ階層に再編しても、埋め込みモデルは S3 のキー構造から「JP かつ発行済み」という関係性を学習しません。埋め込みはチャンク本文の意味をベクトル化するだけで、プレフィックスを条件として扱う仕組みは持たないためです。
プレフィックスを絞り込みに使いたいなら、キーから抽出した値をメタデータ属性としてインデックス化し、検索時にフィルタとして適用する必要があります。「埋め込みモデルが構造を学習することに委ねる」という時点で、厳密なフィルタリングの保証にはなりません。

正解

B. アップロード時にS3オブジェクトへユーザー定義のメタデータヘッダー(例: x-amz-meta-region、x-amz-meta-status)を付与する。取り込みパイプラインを更新してこれらのヘッダーを抽出し、ベクトルストアにキーバリューのフィールドとしてインデックス化する。利用者のプロファイルに基づき、検索クエリにメタデータフィルタを適用するようアプリケーションを構成する

アップロード時に x-amz-meta-region / x-amz-meta-status のようなユーザー定義メタデータを付け、取り込みパイプラインでこれを抽出してベクトルストアのキーバリュー属性としてインデックス化しておけば、検索時に「region が JP」かつ「status が発行済み」という決定論的なメタデータフィルタを適用できます。
Amazon Bedrock のナレッジベースでも、検索設定の filter に equals などの演算子と andAll による複合条件を指定して、対象文書を機械的に絞り込めます。
モデルの気まぐれに依存せず、欧州向け基準やドラフト版がそもそも検索結果に入らないため、最も堅牢かつ正確な手段であり本問の正解です。

C. Amazon Bedrock Guardrailsのワードフィルタに「ドラフト」および各国名の文言を登録し、生成される応答からこれらの語を含む文章を除外するよう設定する

Amazon Bedrock Guardrails のワードフィルタは生成された応答のテキストに含まれる語を検出・ブロックする機能で、検索対象の文書を絞り込む機能ではありません。
そもそも誤ったドラフト版の内容が検索されてしまう根本原因が残るうえ、「EU」「ドラフト」といった語が本文に出てこなければ素通りし、逆に正当な文書までブロックされる過剰検知も起きます。
安全性のためのガードレールを、検索スコープ制御の代用にしてはいけません。

D. 基盤モデルのシステムプロンプトに「取得したコンテキストの内容を確認し、'EU'や'ドラフト'に言及するテキストは無視すること。'日本'かつ'発行済み'の情報のみを使用すること」という厳格な指示を追加する

システムプロンプトでの指示はモデルが従う保証がありません。取得したコンテキストに欧州向け・ドラフト版が混ざっている限り、無視するかどうかはモデルの判断に委ねられ、労働安全衛生上の齟齬というリスクに対して確率的な対策にしかなりません。
さらに不要な文書がコンテキストウィンドウを占有するためトークンコストも増え、関連性の高い文書が押し出される副作用もあります。取得段階で除外できるものをプロンプトで後始末しないのが原則です。

これだけ覚える(記憶フック)
「特定の属性の文書だけを検索対象にする」=メタデータフィルタ。プロンプトのお願いでもフォルダ名でも絞り込めない。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
拠点(日本)とステータス(発行済み)で検索対象を厳密に絞り込みたい 属性による確実な絞り込みはメタデータフィルタの役割。取得段階で対象外を排除する
→選択肢(B)が正解
「最も堅牢かつ正確な」フィルタリング手段 モデルの判断に依存する手段は堅牢ではない。決定論的に効く仕組みを選ぶ
→選択肢(D)を消す
誤って参照されているのは検索で取得された文書そのもの 生成後の応答テキストを検査する仕組みでは、誤った文書が取得される原因は解消しない
→選択肢(C)を消す
S3 側の持たせ方(フォルダ構造かメタデータか) 埋め込みモデルはS3 キーのプレフィックスを条件として学習しない。属性はメタデータとして明示的にインデックス化する
→選択肢(A)を消す
ひっかけポイント
  • 選択肢 A の「フォルダ階層に再編する」は整理として正しく見えるが、埋め込みモデルがフォルダ構造の関係性を学習するという前提が誤り。プレフィックスを使うにしてもメタデータ化が必要
  • 選択肢 C の Guardrails は有害コンテンツや機密情報の制御が役割で、検索スコープの制御機能ではない。「ドラフト」「国名」を語として弾く発想は、正当な文書の誤ブロックも招く
  • 選択肢 D のシステムプロンプトによる指示は実装が簡単なので選びたくなるが、従う保証がない=堅牢ではない。加えて不要文書がコンテキストを占有しトークンコストも増える
  • 「ドラフト」と「発行済み」のように文書のライフサイクル状態が混在する RAG では、更新時にメタデータを付け替える運用(再アップロードと再同期)まで設計しないと絞り込みが陳腐化する
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「利用者の所属拠点によって参照できる文書自体を制限したい(機密区分あり)」 メタデータフィルタに加え、IAM/データソース分離やアクセス制御による多層の絞り込みが正解軸に。
「メタデータをナレッジベースの取り込み時に付けたい」 S3 に .metadata.json のサイドカーファイルを置いて属性を定義する方式が問われる。
「日付や版数で最新のものだけを取得したい」 数値属性に対する greaterThanOrEquals などの範囲フィルタの使い分けが正解軸に。
「絞り込み後の候補からさらに関連度の高い順に並べたい Amazon Bedrock のリランカーモデルによる再ランキングが正解軸に。
関連サービスの解説 Amazon Bedrock
Amazon Simple Storage Service (Amazon S3)
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
S3 のユーザー定義オブジェクトメタデータ(x-amz-meta-) オブジェクトメタデータの使用 - Amazon Simple Storage Service
ナレッジベース検索時のメタデータフィルタ(filter 演算子・andAll) クエリとレスポンスの生成を設定してカスタマイズする - Amazon Bedrock
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 0%
No.7 解説
ある製造業の多国籍企業は、製品安全データシート(SDS)を数千件、Amazon S3バケットに保管している。これらの文書は日本、東南アジア、欧州の各拠点向けに作成されており、それぞれ「ドラフト」版と「発行済み」版が混在している。

日本拠点の安全管理担当者からは、社内の生成AIアシスタントに製品の取り扱い注意事項を尋ねると、欧州拠点向けの基準やドラフト版の内容に基づいて回答されることがあり、労働安全衛生上の齟齬が懸念されるとの報告が上がっている。GenAIエンジニアは、検索対象を利用者の拠点(日本)に対応し、かつステータスが「発行済み」の文書のみに厳密に絞り込めるよう、検索の仕組みを再設計する必要がある。

最も堅牢かつ正確なフィルタリング手段を提供するソリューションはどれか。
  • Amazon S3バケットの構造を拠点・ステータスごとのフォルダ階層(例: /JP/発行済み/、/EU/ドラフト/)に再編する。取り込みパイプラインでS3キーのプレフィックスを主要な意味的コンテキストとして扱うよう設定し、インデックス作成時に埋め込みモデルがフォルダ構造の関係性を学習することに委ねる
  • アップロード時にS3オブジェクトへユーザー定義のメタデータヘッダー(例: x-amz-meta-region、x-amz-meta-status)を付与する。取り込みパイプラインを更新してこれらのヘッダーを抽出し、ベクトルストアにキーバリューのフィールドとしてインデックス化する。利用者のプロファイルに基づき、検索クエリにメタデータフィルタを適用するようアプリケーションを構成する
  • Amazon Bedrock Guardrailsのワードフィルタに「ドラフト」および各国名の文言を登録し、生成される応答からこれらの語を含む文章を除外するよう設定する
  • 基盤モデルのシステムプロンプトに「取得したコンテキストの内容を確認し、'EU'や'ドラフト'に言及するテキストは無視すること。'日本'かつ'発行済み'の情報のみを使用すること」という厳格な指示を追加する

(会員限定)当問題の評価をお願いします。改善に活用します。