Skip to Content
Docs11. LLM 内部構造文脈内学習と記憶の科学

この記事の音声は準備中です。

音声の一覧・再生リストへ

文脈内学習と記憶の科学

この記事の目的

文脈内学習(in-context learning、ICL) — プロンプトの例だけから、重みを変えずにタスクを学ぶように振る舞う現象 — が「なぜ起きるか」の主要な理論仮説を整理し、few-shot の例数・順序の効果に関する研究知見(実務の裏付け)を理解できるようになります。あわせて、記憶と汎化(逐語記憶・grokking・二重降下)、そしてデータ汚染がベンチマークに与える影響を押さえ、プロンプト設計と評価の判断の「なぜ」に接続できる状態を目指します。

理論仮説は決着していないものが多いため、本記事は主要な仮説を中立に併記し、断定を避けます。

対象読者

  • few-shot プロンプトが効く/効かない理由を、経験則でなく研究知見から理解したいエンジニア
  • 記憶・汎化・データ汚染がモデルの評価にどう効くかを押さえたい人

前提知識

本文

概要: 重みを変えずに「学ぶ」ように見える

文脈内学習とは、プロンプトに数個の例(入力 → 出力)を並べるだけで、モデルがそのパターンに従って新しい入力を処理する現象です(GPT-3 で顕著に示されました)。重みは 1 ミリも更新されていないのに「例から学んだ」ように振る舞うため、その仕組みは活発な研究対象です。実務の few-shot(プロンプトエンジニアリングの基礎技法)はこの現象の応用です。

ICL はなぜ起きるか: 主要な理論仮説

有力な仮説がいくつかあり、互いに排他的ではなく、相補的に真実の一部を捉えていると見られています。

  • 暗黙のベイズ推定: 事前学習で多様な「タスク」を含む文書を学んだモデルが、プロンプトの例からどのタスク(潜在概念)かを推論し、それに沿って続きを生成しているという見方。式で書くと、出力は潜在タスク θ\theta について周辺化した形になります。
p(出力∣プロンプト)=∫p(出力∣θ, プロンプト) p(θ∣プロンプト) dθp(\text{出力} \mid \text{プロンプト}) = \int p(\text{出力} \mid \theta,\, \text{プロンプト})\, p(\theta \mid \text{プロンプト})\, d\theta

読み下し: 「例を見てタスク θ\theta の確からしさを更新し(ベイズ的)、その分布で重み付けて出力を決める。例は新しい学習ではなく、既に持つタスクの『どれか』を選ぶ手がかり」。

  • メタ学習 / 学習アルゴリズムの模倣: Transformer の順伝播が、内部で勾配降下のような学習アルゴリズムを近似的に実行しているという見方。線形回帰のような単純なタスクで、ICL が最小二乗解に近づく挙動が示されています
  • 誘導ヘッド(induction heads): 「直前に出た A B というパターンを見つけ、次に A が来たら B を続ける」というコピー機構を担う注意ヘッド。学習の途中で誘導ヘッドが形成される時期と ICL 能力の立ち上がりが対応することが観察され、ICL の機構的な担い手の候補とされています(→ LLM の解釈可能性の基礎)

いずれも「事前学習で得た能力を、推論時に呼び出している」点では一致します。

few-shot の例の効き方

研究知見は、実務の直感を補正します。

  • 形式・分布が、ラベルの正しさより効くことがある: few-shot 例のラベルをランダムに壊しても性能があまり落ちない場合がある、という報告があります。例は「正解を教える」より、出力の形式・ラベル空間・入力分布を示す役割が大きい、という解釈です(タスクや設定に依存し、常にそうとは限りません)
  • 例数の収穫逓減: 例を増やすほど良くなるが逓減し、あるところで頭打ち・悪化することもあります
  • 順序への敏感性: 同じ例でも並び順で結果が変わることがあり、特定の順序が安定して良いとは限りません

読み下すと: 「few-shot は正解の列挙というより、タスクの形を示す実演。だからラベルより形式・分布・順序の設計が効く」。これはプロンプトエンジニアリングの基礎技法で「例はフォーマットの手本として設計する」ことの理論的裏付けです。

記憶と汎化

モデルは「覚える」と「一般化する」の両方をします。その境界に関する現象を 3 つ。

  • 逐語記憶(memorization): 学習データの一部をそのまま暗記することがあります。頻出する・重複するデータほど記憶されやすく、大きいモデルほど記憶しやすい傾向が報告されています。これはプライバシー(学習データの漏出)と汚染の両面で問題になります
  • grokking(遅れて訪れる汎化): 小さな課題で、訓練データを暗記した後、しばらくしてから急に汎化する現象。暗記と汎化が別の時間スケールで起きうることを示し、「訓練損失が下がった = 汎化した」ではないことの例証です
  • 二重降下(double descent): モデルサイズやデータ量を増やすと、テスト誤差が「下がる → いったん上がる → 再び下がる」という非単調な曲線を描くことがある現象。「大きく/多くすれば単調に良くなる」という素朴な期待が成り立たない領域があることを示します

読み下すと: 「暗記と汎化は別物で、時間・規模に対して単純な関係ではない。訓練指標の改善を汎化と早合点しない」。

データ汚染とベンチマークへの含意

逐語記憶は、評価に直接効きます。評価データが事前学習に混入(汚染)していると、モデルは『解いた』のでなく『思い出した』だけかもしれません。

この理解が効く場面

実務での注意点

アンチパターン

  • few-shot の例を「正解を教えるもの」とだけ捉える → ラベルより形式・分布・順序が効く場面を見落とし、例の設計が雑になる → 例をタスクの形式・ラベル空間の実演として設計する
  • 例を増やせば単調に良くなると仮定する → 収穫逓減・順序敏感性で、増やしても頭打ち・悪化しうる → 例数・順序を評価で確かめる
  • 有名ベンチマークの高スコアを額面で信じる → 汚染(記憶)で能力が過大評価されている可能性 → 自社の非公開・新しいデータで評価する
  • 訓練損失の低下を汎化と早合点する → grokking・二重降下が示すように、暗記と汎化は別 → テストデータ・汎化指標で確認する
  • ICL の理論仮説を確定した事実として語る → 主要仮説は決着していない → 「暗黙のベイズ・学習アルゴリズム模倣・誘導ヘッド」を併記し、断定を避ける

チェックリスト

  • 文脈内学習が「重みを変えずに例から学ぶように振る舞う」現象だと説明できる
  • ICL の主要仮説(暗黙のベイズ・学習アルゴリズム模倣・誘導ヘッド)を中立に併記できる
  • few-shot の例が形式・分布・順序で効くという研究知見を理解している
  • 逐語記憶・grokking・二重降下が「暗記 ≠ 汎化」を示すと説明できる
  • データ汚染がベンチマークを過大評価させると理解し、非公開データで評価している
  • ベンチマークの高スコアを汚染の可能性込みで読んでいる

関連トピック

参考資料

TODO・未確認事項