AI-103:Developing AI Apps and Agents on Azure 情報抽出ソリューションの実装 問4
情報抽出ソリューションの実装/取得/グラウンディングパイプラインの構築全社共通の Azure AI Search インデックスに、部署ごとにアクセス権が異なる数十万件の社内文書を登録し、RAG アプリのグラウンディングに使います。利用者は所属グループに応じた文書だけを根拠として使えるようにする必要があり、インデックスは1つのまま運用したい状況です。構成として適切なものはどれですか。
当サイトのオリジナル問題(AI-103:Developing AI Apps and Agents on Azureの出題範囲「情報抽出ソリューションの実装」に対応。実際の試験問題ではありません)
- A各文書にアクセスを許可するグループ ID を格納するフィルター可能なフィールドをインデックスに追加し、クエリ時に利用者のグループでフィルターする
- B文書ごとに許可する利用者のメールアドレスを本文に追記し、セマンティックランカーに利用者のメールアドレスを近い順位に上げさせる
- Cスコアリングプロファイルで利用者のグループに一致する文書のスコアを上げ、権限のない文書は順位を下げる
- Dチャットモデルのシステムメッセージに、利用者の所属以外の文書は回答に使わないよう指示を書く
正解:A
解説
1つのインデックスで文書ごとの閲覧権限を反映するには、許可するグループ ID などをフィルター可能なフィールドに持たせ、クエリ時に利用者のグループを条件にしたフィルターを適用するセキュリティ トリミングが基本です。権限のない文書は検索結果にそもそも含まれないため、モデルのコンテキストにも渡りません。スコアや順位の調整、システムメッセージでの指示は、権限のない文書の取得を防ぐ仕組みではありません。
選択肢ごとの解説
- A正しい。フィルターで権限のある文書だけを検索結果にすることで、権限のない文書がグラウンディングに使われるのを防げます。
- B誤り。セマンティックランカーは関連性の再順位付けで、アクセス制御には使えません。
- C誤り。スコアリングプロファイルは順位を調整するだけで、権限のない文書も結果に残るため、アクセス制御になりません。
- D誤り。指示だけでは、権限のない文書がモデルのコンテキストに渡るのを防げず、情報漏えいのリスクが残ります。