署名済みでも誘導可能:オフラインRAGのテキスト・ベクトル完全性
導入
オフラインの検索拡張生成(RAG)は、エッジ端末、閉じたネットワーク、継続的なクラウド接続が難しい環境で利用されます。更新時には、文書と事前計算済みの埋め込みベクトルを知識パックにまとめ、デジタル署名を付けるのが一般的です。しかし署名が証明するのは「誰が公開したか」であり、「各ベクトルが隣接するテキストを本当に表しているか」ではありません。この差が、研究でいうテキスト・ベクトル完全性ギャップです。ベクトルだけを改変できれば、文書本文を目立って書き換えずに検索順位を変えられます。
研究の主な発見
- 許容誤差が攻撃面になる。 検証器がベクトルを再計算し、コサイン類似度が閾値を超えれば受け入れる場合、攻撃者は許容範囲内でベクトルの位置を動かせます。正しい候補と次点候補の検索マージンが小さいクエリでは、その変化だけで順位が逆転します。
- ビット単位の再現は難しい。 浮動小数点処理や動的INT8推論の結果は、バッチサイズやハードウェア構成によって変わり得ます。そのため完全一致を要求しにくい一方、無条件に許容幅を広げると安全性を失います。
- 実験では大きな差が出た。 五つのコーパスと二つの埋め込みモデルでは、浮動小数点ノイズに近い許容値でも最大5.5%のクエリが露出しました。完全重複文書を除くと、各コーパスの最大値は1.2%でした。CPUのINT8とFP32の差から校正した閾値では、露出率が98〜100%に達しました。Raspberry Pi 5上のローカル言語モデルを使った評価では、攻撃後の正答率が0.75から0.39へ低下しました。
- 圧縮インデックスも安全とは限らない。 57,638文書のFAISS製品量子化インデックスでは、改変ベクトルが監査をすべて通過しても、攻撃者の文書が25%の対象で1位になりました。
検証対象を変える
研究は、復元後の浮動小数点ベクトルだけでなく、量子化コードそのものを検証する方向を示します。曖昧なケースを検証器が判断し、校正済みのガードバンドと正規化を組み合わせる設計です。三つのプラットフォームでのサンプルでは、正直なベクトルをすべて受け入れながら、発行者が許容誤差を利用して検索方向を変える余地を残しませんでした。拒否、コンテキスト削減、意味的スクリーニングについては、事前登録された否定的結果も報告されています。
意義
署名による発行者認証、ベクトルの整合性、検索挙動の完全性は別々の性質です。オフラインRAGでは、署名やハッシュだけでなく、何を検証するのか、異なる環境の数値差をどう制限するのか、量子化の曖昧さを誰が裁定するのかを設計段階で定める必要があります。検証器が管理する正規化表現を採用することが、「署名済み」と「検索時にも信頼できる」の間の隔たりを縮める鍵になります。
コメント
ログイン状態を確認中…
コメントを読み込み中…