この記事で分かること/分からないこと
- 分かること: 検索結果を権限で隠しても、回答の内容から推測が起きうる仕組み
- 分かること: 応答の有無の違いや差分をとる質問が手がかりになる理由
- 分からないこと: 自社の社内文書RAGでこの種の推測漏れが実際にどの程度起きるかの実測データ
- 分からないこと: 特定の製品がこの種の漏れをどのように防いでいるかという仕様
「見せない」対策だけでは推測を防げない
検索結果を権限でフィルタする設計は、「権限のない文書を検索結果に出さない」ことは実現できる。しかし読者が知りたいのは検索結果そのものではなく、多くの場合は回答という完成した文である。回答の内容や言い回しの違いから、除外されたはずの文書の存在や中身を読者が推測できてしまうなら、「文書を見せない」対策は達成できていても、「文書の内容を知らせない」という目的は達成できていない。この区別を持たないまま権限設計を検索結果のフィルタだけで終えると、この種の漏れは検出されないまま残る。
応答の「有無」の違いが手がかりになる
権限のある文書がヒットしたときと、権限がなく除外されたときとで、回答の詳しさや構成が変わる設計は、それ自体が情報になる。たとえば、通常は具体的な内容を含めて詳しく答える一方、権限外の対象については「該当する情報は見つかりませんでした」という素っ気ない定型文だけを返す、という設計だと、質問対象ごとの応答の詳しさの差から、「その対象については何かがある」ということが読者に伝わってしまう。本来であれば、権限内で本当に情報が無い場合と、権限外で見せていない場合との間で、応答の見え方に区別がつかないようにする必要がある。
差分をとる質問という古典的な手口
同じ主題について、質問の切り口を少しずつ変えながら繰り返し尋ね、回答の変化を比較して絞り込むという手口は、権限のある情報を直接尋ねる場合よりも防ぎにくい。個々の質問への回答は、それぞれ単体で見れば権限のある範囲に収まっているように見えても、複数回の回答を突き合わせることで、権限のない文書の内容が再構成できてしまうことがある。この種の推測は1回の応答を検査するだけでは見つからず、同じ利用者による一連のやり取りを通して見て初めて気づける性質のものである。誰が何を尋ねたかを追跡できる状態にしておくことの必要性は監査ログの記事で扱っている。
grounding-gateは推測漏れを検出しない
自社実装の機械照合(実体: services/verifier/src/grounding-gate.ts)は、回答中の事実主張を取り出し、根拠集合と照合して裏付けの無い主張を検出する仕組みである。この仕組みが検査しているのは主張の裏付けの有無であり、応答の有無や詳しさの差から権限のない情報が推測できてしまうかどうかは、検査の対象に入っていない。裏付けのある正確な主張だけで構成された回答であっても、応答パターンの差という別の経路から情報が漏れることがあり、grounding-gateの合格はこの種の漏れの不在を意味しない。
よくある質問
Q1. 検索結果を権限で隠せば、推測による漏れも防げるか
防げるとは限らない。回答の詳しさや構成の違いそのものが、除外した文書の存在を示す手がかりになることがある。
Q2. 「見つかりませんでした」という応答がなぜ漏れになるのか
権限内で本当に情報が無い場合と、権限外で見せていない場合とで、応答の見え方に区別がつくと、その区別自体が情報になってしまうため。
Q3. 差分をとる質問による推測とはどのようなものか
同じ主題について質問の切り口を変えながら繰り返し尋ね、個々には問題のない回答を突き合わせることで、権限のない内容を再構成する手口を指す。
Q4. grounding-gateはこの種の推測漏れを検出できるか
できない。grounding-gateが検査するのは主張に根拠があるかどうかであり、応答の有無や詳しさの差から情報が推測できるかどうかは検査の対象に含まれていない。
推測による漏れは、検索結果のフィルタだけを見ていては気づけない。複数のやり取りを事後に追跡できる状態にしておくことが前提になる。要約という別の経路から権限の境界が溶ける問題は要約が権限の境界を溶かす記事で扱っている。複数サービスの比較はRAGサービス比較15選を参照してほしい。社内文書RAGの権限設計について相談したい方は、お問い合わせから編集部までご連絡いただきたい。
- ハブ記事: RAGサービス比較15選
- 関連記事: 出典提示の設計とその限界
- 関連記事: 要約が権限の境界を溶かす
- 関連記事: 監査ログの設計