この記事で分かること/分からないこと
- 分かること: 要約という処理がなぜ権限の境界を壊しやすいか
- 分かること: 権限レベルが混在した入力を要約することで生じる問題
- 分からないこと: 権限レベルごとに要約を分ける設計がどの程度有効かを示す自社の実測データ
- 分からないこと: 特定の要約アルゴリズムの実装仕様
「見せない」対策の後に「知らせない」問題が残る
検索段階のACLフィルタで、権限の無い文書を検索結果から除外できたとしても、それは「文書を見せない」対策が機能した、というだけの話である。複数の文書を横断して1つの答えにまとめる要約という処理が入ると、フィルタを通過した文書の内容がどのように1つの文に落とし込まれるかという、別の問題が生じる。要約は複数の入力から情報を圧縮して出力する処理であり、圧縮の過程で、どの記述がどの文書に由来するかという境界は保持されにくい。
要約は出典の境界を保存しない
たとえば、複数の部署の文書を横断して「全社的な傾向」を1つの文章にまとめるという要約タスクを考える。個々の入力文書には、それぞれ異なる権限レベルが設定されているかもしれない。しかし要約という処理の出力は、通常は1つのまとまった文章であり、その中の各文がどの入力文書に由来するかは、文面からは分からなくなる。検索時点では権限のある文書だけを要約の入力にできていたとしても、出力された要約文自体に、複数の権限レベルが混在した情報がどの程度含まれているかを、文面だけから判定することは難しい。
権限レベルが混在した入力を要約する設計の問題
この種の漏れを避けるための設計の方向性としては、要約の入力段階で権限レベルごとに文書をグルーピングし、レベルをまたいで1つの要約にまとめないという判断があり得る。権限レベルの異なる文書を同じ要約の入力に混ぜないのであれば、出力される要約もその権限レベルの範囲に収まりやすくなる。ただし、この設計判断がどの程度実務で有効かについて、自社の社内文書RAGでの実測データは無く、ここでは考え方の整理にとどめる。要約に何を入力として使ったかを事後に確認できる状態にしておくことの必要性は監査ログの記事で扱っている。
grounding-gateは要約の権限漏れを検査しない
自社実装の機械照合(実体: services/verifier/src/grounding-gate.ts)は、要約された回答文についても、その中の事実主張を取り出し、根拠集合と正規化して照合し、裏付けの無い主張を検出する。しかしこの検査が確認しているのは「その主張に根拠があるか」であり、「その根拠となった文書を、今この要約を読む相手に見せてよいか」ではない。複数の文書を裏付けとして正しく要約された文であっても、その裏付けの一部が読み手の権限を超えている、という状態はこの検査だけでは検出できない。要約前の複数文書からどのように1つの根拠集合が組み立てられたかを見ないと、この種の漏れには気づけない。
よくある質問
Q1. 検索段階のACLフィルタがあれば、要約による漏れは防げるか
防げるとは限らない。フィルタを通過した文書だけを入力にしても、要約という圧縮の過程で、どの記述がどの文書に由来するかという境界が失われることがある。
Q2. なぜ要約は権限の境界を壊しやすいのか
要約は複数の入力から情報を抜き出し1つの文章にまとめる処理であり、出力された文がどの入力文書に由来するかを、文面だけから判別できなくなりやすいため。
Q3. 権限レベルごとに要約を分けるとどう変わるか
権限レベルの異なる文書を同じ要約の入力に混ぜないことで、出力される要約もその権限レベルの範囲に収まりやすくなる。ただしこの設計の効果について自社の実測データは無い。
Q4. grounding-gateは要約の権限漏れを検出できるか
できない。検査しているのは主張に根拠があるかどうかであり、その根拠となった文書を読み手に見せてよいかどうかは、別に判定する必要がある。
要約という経路での漏れは、検索結果のフィルタだけでは防げない。出典をどう見せるかという、また別の論点は引用表示という論点の記事で扱っている。複数サービスの比較はRAGサービス比較15選を参照してほしい。社内文書RAGの権限設計について相談したい方は、お問い合わせから編集部までご連絡いただきたい。
- ハブ記事: RAGサービス比較15選
- 関連記事: 出典提示の設計とその限界
- 関連記事: 引用表示という論点
- 関連記事: 検索結果を隠しても答えから漏れる