生成AIの内部状態からチャットを逆算で
きる?
(Transformerの単射性)

「生成AIの内部状態から、チャットの入力文章をそのまま復元できた」という話題を見かけました2

「生成AIには、個人的な情報を入力しないほうがよい」というのは、プライバシーの点から大前提です。
とはいえ、「内部状態=ほぼ入力の別名」と言えるくらい情報が残っているというのは、ちょっと気になります。
どんな条件で、どんな情報が復元できるのでしょう。

関連記事

1. なぜ内部状態から入力を復元できるのか(SIPIT)

最初に気になったのは、「どうして生成AIの内部状態から元の文章が復元できたのか」という点でした。

SIPIT の実験では、内部状態モデル重みがあれば元の文章を完全に再現できたという報告が出ていました3

SIPITの仕組み トークンを1つずつ当てていく 1 候補トークンを モデルに入力 2 内部状態を 計算 3 保存状態と 一致確認 必要な2つの条件 ① その時点の内部状態 ② モデルの重み(完全一致)

「SIPIT」は、ある時点の内部状態がわかっているとして、同じ状態を再現するトークンを探す方式です4
ここでいう「トークン」は単語のようなもの。
文章を小さく区切った単位で、生成AIは文章をこの並びとして扱っています。
また、生成AIの内部には、文字がベクトル(数字の並び)で表現されていると説明されます。

Sequential Inverse Prompt via Iterative updates」は、「繰り返しの状態を更新していくことで、プロンプトを連続的に復元する」という意味です。
つまり、SIPIT がしていることをざっくり言うと、
「内部状態を作った入力トークンを一つずつ当てていく」作業です。

Language Models are Injective and Hence Invertible
Language Models are Injective and Hence Invertible

候補のトークンをモデルに入れて内部状態を計算し、
保存してあった内部状態と一致したら「当たり」と確定して次のトークンに進みます。
これを文章の長さだけ繰り返すと、元の入力がそっくりそのまま復元できる、というわけです。

ここで重要なのは二つの条件です。

  1. その時点の内部状態
  2. そのときのモデルの重み(完全一致)

この二つが揃えば復元できるし、どちらかが欠けると途端に不可能になります。
特にモデルが更新されていたり微調整されていたりすると、内部状態の再現ができなくなります。

1.1. 入力と内部表現が一対一で対応している

生成AIの内部状態は、従来の想像とは異なり入力情報をほぼ完全に保持していることがわかりました。
この“単射性”という性質は、異なる入力が同じ内部表現にならない、ということ。

The map from prompts to latent space is injective. SIPIT inverts it.<span id='easy-footnote-1-17583' class='easy-footnote-margin-adjust'></span><span class='easy-footnote'><a href='#easy-footnote-bottom-1-17583' title='[2510.15511] Language Models are Injective and Hence Invertible'><sup>1</sup></a></span>
The map from prompts to latent space is injective. SIPIT inverts it.5

LLMの入力に対する内部表現は、生成の揺らぎとは関係なく一意に決まります。
そのため、SIPITアルゴリズムで内部表現を繰り返し比較すれば、もとの入力にたどり着けるのです。

これまでは、内部表現に変換されるときに、情報が“抽象化”されて、細かい部分は消えると考えられていました。
というのも、従来のニューラルネットワーク(CNNやRNN)はそういう設計だったからです。

調べていて意外だったのは、生成AIの出力がランダムでも関係ないという点でした。
「確率的に生成されるなら内部状態は毎回変わるのでは?」と思ったのですが、実際にはそうではありません。SIPITが対象にするのは“入力”を処理したときの内部状態で、生成結果ではありません。
生成はそのあとに続く処理なので、逆算の対象外です。

1.2. 復元かかる時間は?

変換された文章全体をそのまま調べようとすると、トークンの組み合わせが無数になり、有限の時間内には終わりません。
SIPIT が線形時間で入力を復元できたのは、少しずつ元の文章を当てていくことができたから。
これは、「各トークン位置ごとに正しいトークンが必ず1つだけ存在する」という単射性が成り立つためです。

逆算にかかる時間 GPT-2: 30秒以内で復元 線形時間 O(T) 各トークン位置で 正しいトークンが 必ず1つだけ存在 単射性 異なる入力 異なる内部表現 他手法は1時間以上

部分的に(=その位置の)正しいトークンを探索できたかどうかが、
その位置の隠れベクトルの比較だけで“はっきり判定できる” から、全文を一気に当てずとも順番に復元を進めていくことができます。

つまり、「全文を一気に当てようとすると組み合わせ爆発するが、
1トークンずつ順番に“その位置の正解だけ”を探すなら爆発しない」

というわけです。

もちろん、語彙全体から候補を試す必要はありますのでかんたんではありません。
しかし、語彙サイズは定数として扱えるので、1つの位置を確定するコストは事実上一定です。
あとは、SIPIT はこの“位置ごとの確定”を先頭から順に繰り返すだけで、深い探索や分岐を必要としません。
結果として処理はトークン数 T に比例し、全体は O(T) の線形時間になります。

暗号化されたパスワードを復元しようとするなら、全部が正しくないとわからないため、総当り方式での解読には天文学的な時間がかかります。
けれど、生成AIの内部表現は部分的に正しいか判別できるから、実用的な速度で元のプロンプトを復元できるんですね。

2. 人間の記憶と似ているようで違うポイント

内部状態の特性から、人間の記憶の話を思い出しました。
「記憶したものは、ずっと脳に刻まれていて、ただそれを想起できないことが忘れている」という話とちょっと似ています。
内部には情報が残っているけれど、普段は直接出てこない。

ただ違いもあります。
人間の記憶は不可逆で、完全には戻せません。
ところがTransformerの構造は情報を消さずに保持するように働くため、理論的にほぼ可逆な変換になっています6

2.1. Transformerの構造と単射性

もう少し深掘りしていくと、Transformer が「情報を失わない構造」である理由が見えてきました。

Transformerはなぜ情報を失わないのか 1 残差接続 変換前の情報を 変換後に足し合わせる → 情報が上書きされない 2 Attentionの線形性 情報を「消す」ではなく 「混ぜる」動作 → 細部を途中で捨てない 結果:可逆的な変換 = 情報の完全保持

残差接続」という仕組みがあり、これは変換前の情報を変換後に足し合わせる動作をします7
このため、情報が上書きされにくい性質があります。
また、Attention の計算も線形的で、情報を“消す”というより“混ぜる”動作に近いのが特徴的です8

この構造のおかげで、従来型のニューラルネットとは違い、入力の細部を途中で捨てません。
そのため、長い文章でも内部状態から元の入力を失わずに復元できる可能性が高くなるわけです。

3. どんな場合にプライバシーのリスクがあるのか

SIPIT による入力復元は、「生成AIのユーザーのプライバシー問題になるか?」という点も気になります。

結論を言えば、ChatGPTのような商用の生成AIサービスでは実質的に新たなプライバシー問題になりません。
というのも、そもそも企業側はチャット内容をそのまま保存できるので、わざわざ内部状態から復元する必要がありません。
また、重みも非公開で、GPUの中のテンソルも分離されています。
内部状態だけが外部に出る、ということは考えにくいからです。

この問題が主に関係するのは、ローカルや研究環境で動作する生成AIです。
複数人でサーバを共有している場合や、デバッグで内部ベクトルを出力するような環境では、内部状態が意図せず残ることがあります。
内部状態が実質的に入力テキストの別形式の“完全コピー”に近いのであれば、もし流出すれば文章が丸ごと漏れるのと同じことになってしまいますefn_note]論文では「隠れ状態は抽象表現ではなく、変装したプロンプトである(Hidden states are not abstractions but the prompt in disguise)」と指摘されています。つまり、モデルの内部状態を保存・送信することは、元のテキストを保存することと等価です – Language Models are Injective and Hence Invertible[/efn_note]。

つまり、ローカルAIの内部状態の管理は、テキストデータと同じように厳格に管理する必要がある、ということです。

4. 「Transformerは情報をほとんど失わない

今回SIPITについて調べてみてびっくりしたのは「Transformerは情報をほとんど失わない」という点でした。

これまで、ずっと情報は捨象されて記憶されていると思っていたので、この発見は目から鱗でした。内部では情報がしっかり残り続け、それを逆算できるというのは、言語モデルの性質をもう一度考える良いきっかけになりました。

今後は、クラウドAIだけでなく、ローカルAIも普及していくことが予想されてます。
ローカル環境でのデータ管理にも気を配る必要がある、という点も大きな気づきでした。

  1. [2510.15511] Language Models are Injective and Hence Invertible
  2. 2025年10月にスイス連邦工科大学ローザンヌ校(EPFL)などの研究チームが発表した論文「Language Models are Injective and Hence Invertible」で、Transformerが数学的に単射(injective)であることが証明され、内部状態から入力テキストを完全復元できることが示されました – Language Models are Injective and Hence Invertible
  3. SIPITはGPT-2 Smallモデルで100個のプロンプト(20トークン)に対して100%の精度で完全復元に成功しました。実験では数十億回の衝突テストを実施しましたが、異なる入力が同じ内部表現を生成する衝突は一度も観測されませんでした – LLMの内部情報から入力テキスト完全復元に成功、AIの動作理解に進展
  4. SIPITは線形時間(linear-time)での復元を保証するアルゴリズムで、GPT-2の内部状態から30秒以内でテキストを復元できます。他の手法が1時間以上かかるのに対して、大幅に高速です – Language Models are Injective and Hence Invertible
  5. [2510.15511] Language Models are Injective and Hence Invertible
  6. 残差接続(Residual Connection)は、ある層への入力を、その層を通過した後の出力に要素ごとに加算する構造です。この仕組みにより、勾配消失問題が緩和され、情報が途中で失われずに深い層まで伝播します – 残差接続(Residual Connection)
  7. 残差接続により、学習の逆伝搬時にも、奥や中間層にも大きな誤差が伝搬できるようになり、勾配消失・爆発問題や劣化問題を回避できます。Transformerは各エンコーダー層およびデコーダー層の自己注意機構とフィードフォワードネットワークの両方に残差接続を適用しています – 残差接続 | インディ・パ
  8. Transformerの自己注意機構(Self-Attention)は、各トークンが他のトークンとの関連性を重み付けして情報を集約する仕組みです。この計算は基本的に線形変換と加重平均の組み合わせであり、情報を削除するのではなく、関連する情報を混合して新しい表現を作ります – 知識の森 Transformer