• HOME
  • エンジニアリング
  • AIは「反省」しているわけではない?プロンプト履歴でAIが賢くなる物理的な仕組み

AIは「反省」しているわけではない?プロンプト履歴でAIが賢くなる物理的な仕組み

目次

AIエージェントに自律的にタスクをこなさせる際、「AIが作成(LLM_a)」し、「別のAIがダメ出し(LLM_b)」をするというループを回す手法(Reflexionなど)が注目されています。

プロンプトに「過去の失敗と修正の履歴」を数回含めると、AIは劇的に賢くなり、同じミスを犯さなくなります。これは一見、AIが人間のように「反省」して学習しているように見えます。しかし、AIの脳(パラメータ)はチャット中に書き換わることはありません。

では、「記憶」も「学習」もしていないAIが、なぜ履歴を読むだけで未知の問題に対応できるのでしょうか?

その裏側で起きている「物理的な計算のメカニズム」を解き明かします。

【前提】具体例:APIバージョンの修正タスク

次のような状況を想像してください。あなたはAIにコードを書かせていますが、AIは古い情報を持っているため、APIのバージョン指定でミスを連発しています。

そこで、プロンプト内に以下のような「3つの指摘と修正の履歴」を意図的に積み重ねてから、4回目の新しい指示を出します。

  • 履歴1: [指摘] Stripe APIの v2022 は古い。v2024 を使え。 →[修正] stripe.api_version = "2024"
  • 履歴2: [指摘] OpenAI APIの v1 は古い。v2 を使え。 → [修正] client = OpenAI(version="v2")
  • 履歴3: [指摘] Twilio APIの 2010 は古い。2020 を使え。 → [修正] Client(region="2020")
  • 現在(4回目): [指摘] Shopify APIの 2023 は古い。2025 を使え。 → (AIがここから生成)

この時、AIは「Stripeの直し方」を暗記してShopifyに応用しているわけではありません。AIの内部では、入力された「Shopify」という単語のベクトル(情報の器)に対して、3種類の専門家(回路)が次々と情報を書き込み、強力な「文脈ベクトル」を完成させるという処理が起きています。

AI内部の「3つの専門家」による連携プレー

Transformer(現在のAIのベース構造)の内部では、入力データが「残差ストリーム」というベルトコンベアを流れていきます。その過程で、以下の3つの専門回路が情報を付与していきます。

1. Semantic Heads(意味論的ヘッド):対象の抽象化

最初の専門家は、異なる単語を同じ概念(ベクトル空間上の近い位置)として結びつけます。 「Shopify」という単語を見た時、このヘッドは過去の履歴にある「Stripe」や「Twilio」を参照し、「これはブランド名は違うが、同じ『APIサービス』という属性を持つ対象である」というタグ(特徴量)をベクトルに書き込みます。

2. Relational Heads & MLP(論理と関係性):ルールの適用

次の専門家は、文脈の中にある「古い(2023)」と「新しい(2025)」という言葉の関係性に注目します。

注意機構(Head)がこれらの単語を捉え、情報加工を担うMLP層が「古いバージョンは新しいものへ置換せよ」という『更新(Update)』の論理的な命令を計算し、ベクトルに書き込みます。

3. Induction Heads(誘導ヘッド):成功パターンの強制

最後の専門家は、Anthropic社などの研究で特定された「パターンのコピペ」に特化した回路です。 このヘッドは履歴をスキャンし、「過去3回とも、APIの指摘の直後には『修正されたコードブロック』が続いている」という構造的な型を検知します。そして、現在のベクトルに対し、「解説文ではなく、いきなり『修正コード』を出力せよ」という強力な確率誘導を行います。

完成した文脈ベクトルの状態:

これら3つの情報が合わさることで、AIの内部には「私は今APIを扱っており、古い情報を最新に更新する論理に基づき、Pythonコードの形式で出力しなければならない」という極めて解像度の高い指示書(文脈ベクトル)が物理的に完成します。

なぜ「3回の履歴」が必要なのか?(アテンションの飽和)

では、なぜ履歴が1回ではダメで、3回(複数回)あると劇的に精度が上がるのでしょうか。それは、AIの注意機構を計算するSoftmax関数の「勝者総取り」の性質に理由があります。

履歴の数AIの内部状態(ベクトルの確信度)実際の出力結果
1回分散状態(ノイズが多い)
「APIを直す」確率 30%
「会話を続ける」確率 70%
迷いが生じ、コードを直さずに「古いですね、気をつけます」と会話だけで終わるハルシネーションが起きやすい。
3回飽和状態(Attention Saturation)
Induction Headなどが同じパターンを3回観測し、スコアが 99.9% に跳ね上がる。
確実な実行
他の雑音が完全に遮断され、過去のパターン(修正コードの生成)をなぞる以外の選択肢が消滅する。

AIは、履歴が重なることで「このプロンプト内では、このパターンに従うことが絶対のルールなのだ」という局所的なポリシー(方針)を数学的に固めているのです。

結論:プロンプトエンジニアリングの正体

AIがプロンプトの履歴から「学ぶ」というのは比喩に過ぎません。

物理的な現実は、「プロンプトに構造的な繰り返し(Few-Shot)を配置することで、AI内部の特定の計算回路(Semantic / Logical / Induction)を強制的に起動させ、出力のベクトルを正解の方向へ力技でねじ曲げている」ということです。

これこそが、AIエージェントが「自己反省」しているように見える、高度な知能のメカニズムなのです。

補足:Transformerとの関係

現在のChatGPTやClaudeなどの大規模言語モデル(LLM)の多くは、「Decoder-only(デコーダーのみ)」というアーキテクチャを採用しています。かつての翻訳モデルのように「エンコーダーが変換したベクトルをデコーダーに渡す」という二段構えではありません。

では、一体どこでベクトルが「賢く」なっているのでしょうか?

1. 残差ストリーム(情報のメインストリート)

デコーダーの内部には、「残差ストリーム(Residual Stream)」と呼ばれる、いわば情報の高速道路が走っています。入力されたプロンプトの各単語は、まずベクトル化され、この道路に乗せられます。

2. 層を通過するたびに「彫刻」される

デコーダーは何十もの「層(Layer)」で構成されています。ベクトルが各層を通過するたびに、以下の処理が行われます。

  • アテンション層(Attention): 過去の履歴(指摘や修正案)から必要な情報を「抽出」し、ベクトルに書き加える。
  • MLP層(ニューラルネット): 抽出された情報を元に、「次はこう振る舞うべきだ」という論理的な加工を施す。

最初は単なる「Shopify」という単語の意味しか持たなかったベクトルが、層を深く進むにつれて、履歴にある「失敗と修正」の情報を吸い取り、出口に到達する頃には「間違いを避け、特定の形式で出力せよ」という強力な拘束力を持った指示書(隠れ状態:Hidden State)へと進化するのです。

3. 「やってはいけないこと」もベクトルに含まれる

興味深いのは、このベクトルには「正解」だけでなく、「やってはいけないこと(地雷)」の情報も含まれている点です。 バリデーターによる「ダメ出し」が履歴にあると、誘導ヘッド(Induction Heads)などの回路が「過去にこのパターンで失敗した」という情報を検知します。すると、ベクトル空間において「失敗の方向」へ向かう力にブレーキがかけられ、消去法的に正解のルートだけが残るようになります。

To Page Top