インコンテキスト学習はなぜ起きるのか
数例見せるだけでLLMが新タスクを解く謎を、複数仮説で腑に落とす。仕組みを掴めば、プロンプト設計や few-shot 失敗時の打ち手が根拠を持って選べます。
- 1.インコンテキスト学習(ICL)は、重みを一切更新せずプロンプト内の少数例だけでタスクを解く現象。学習は順伝播1回の中で起き、推論が終われば消える一時的な適応。
- 2.主要仮説は3つ。事前学習分布から潜在タスクを推論する『暗黙のベイズ推論/メタ学習』、文脈内で勾配降下を1ステップ模倣する『勾配降下の近似』、トークン列のパターンをコピーする『誘導ヘッド』。互いに排他ではなく層・規模で役割分担する。
- 3.ICLは事前学習データの分布的性質(バースト性・多義性)から創発し、十分なモデル規模で初めて立ち上がる。タスクは活性空間の『タスクベクトル』として圧縮され、注入できる。
インコンテキスト学習とは:重みを変えずに学ぶ
インコンテキスト学習(In-Context Learning, ICL) とは、モデルのパラメータを一切更新しないまま、プロンプトに与えた少数の入出力例(few-shot)だけを手がかりに、新しいタスクを解いてしまう現象です。たとえば「英→仏:cat → chat、dog → chien、bird →」と与えると、続きに「oiseau」を出す。翻訳という重みを学習させたわけではないのに、文脈に置かれた数例から「いま要求されているタスク」を読み取り、即座に振る舞いを変えます。
決定的に重要なのは、ここでいう「学習」が 通常の学習(勾配でパラメータを更新する)とは別物だという点です。ICL は順伝播(forward pass)1回の計算の中で完結し、推論が終わればその適応は跡形もなく消えます。重みは不変なので、同じモデルが次のプロンプトでは全く別のタスクをこなせます。
ファインチューニングは勾配降下で重みそのものを書き換え、効果は永続します。ICL は重みを触らず、文脈(注意機構が参照する活性)だけを使って一時的にタスクへ適応します。だからこそ ICL は「学習」と呼びつつも、本質は 推論時のタスク同定(task identification)と条件付け に近い。この区別を曖昧にすると、後述する仮説のどれもが混乱します。土台となる注意機構は Self-Attention の計算 を参照してください。
なぜ「重みを変えずに学べる」のか。これを説明する仮説は1つではなく、現在も複数が並立しています。以下、主要な3つを順に見ます。
仮説1:暗黙のベイズ推論/メタ学習
最も影響力のある説明が、事前学習そのものがメタ学習だったという見方です(Xie ら 2021 ほか)。
巨大コーパスには、同じ「潜在的なタスク」や「潜在的な文書テーマ」を共有する文章が無数に含まれます。次トークン予測を最適化する過程で、モデルは暗黙のうちに 「いまどの潜在タスク(潜在概念)が文脈を生成しているか」を推定し、それに条件付けて続きを予測する 能力を獲得します。これは事前学習データの生成構造を、潜在変数 θ(タスク)を持つ混合モデルとして捉える見方です。
# 事前学習が暗黙に最適化する構造(概念モデル)
p(次トークン | 文脈)
= Σ_θ p(次トークン | θ) · p(θ | 文脈)
└─ プロンプトの few-shot 例から
「どの潜在タスク θ か」を事後推論
few-shot 例の役割は、正解ラベルを教えること以上に「どのタスクなのかを特定する証拠」を積み増すこと にあります。例が増えるほど事後分布 p(θ | 文脈) が正しいタスクに鋭く集中し、出力が安定する。この視点は次の予測を生みます。
| 観察される現象 | ベイズ/メタ学習説による解釈 |
|---|---|
| 例を増やすと精度が上がる | 事後 p(θ|文脈) が正しいタスクへ収束していく |
| ラベルをランダムに壊しても性能が大きくは落ちない | 例は主に『タスク同定』に効き、個々の正解写像は副次的 |
| 入力分布・ラベル空間・書式が崩れると急落 | それらが θ を指し示す主要な手がかりだから |
| 事前学習で見た形式に近いほど効く | 対応する潜在タスク θ が分布内に存在する |
2つ目の行、「ラベルを意図的にデタラメにしても few-shot 性能がさほど落ちない」(Min ら 2022)は直感に反する有名な結果で、ベイズ説の強い傍証です。例は「写像を学ぶ訓練データ」ではなく「タスクと書式を指定する条件」として機能している、と読めます。
仮説2:文脈内で勾配降下を模倣する
第2の説は、より機械的です。Transformer は順伝播の中で、内部的に勾配降下を1〜数ステップ実行しているのと等価な計算をしている、という主張です(von Oswald ら 2022、Akyürek ら 2022、Dai ら 2022)。
線形回帰のような単純なタスクに限れば、これは構成的に示せます。注意機構の重みを適切に置けば、1層の注意が「現在のパラメータでの予測誤差を、例で測って1ステップ修正する」更新を符号化できることが理論的に構成されました。直感的には次の対応です。
通常の学習 ICL(仮説2の見立て)
----------------------- ----------------------------------
重み w を勾配で更新 文脈中の例で「暗黙の重み」を順伝播内で更新
複数イテレーション 層を重ねる=反復ステップを重ねる
学習率・ステップ数を選ぶ 事前学習でこの“最適化器”を獲得済み
この説の魅力は、「層を深くするほど few-shot が安定・精緻化する」 という観察を、「最適化のステップ数が増えるから」と自然に説明できる点です。線形タスクの合成データで訓練した Transformer の挙動が、最小二乗の反復解法とよく一致することも報告されています。
この等価性が厳密に成り立つのは線形回帰など単純なクラス・特定の重み構成に対してであり、実際の巨大 LLM が自然言語タスクで本当に内部勾配降下を実行している、という証明ではありません。「そうした計算を表現する能力を Transformer が持つ」ことと「事前学習で実際にそれを獲得した」ことは別問題です。あくまで有力な作業仮説として扱うのが正確です。
ベイズ説と勾配降下説は対立しません。「事前学習で良いタスク事前分布(=良い初期化)を得て、文脈内で少数ステップ最適化する」 と読めば、両者は同じ過程の別側面とも解釈できます。
仮説3:誘導ヘッド(induction heads)
第3の説は、より具体的な回路(circuit)レベルの機構です。Anthropic の解釈可能性研究(Olsson ら 2022)が同定した 誘導ヘッド(induction head) は、ICL の少なくとも一部を担う注意ヘッドの組です。
誘導ヘッドは、ごく単純なアルゴリズムを実装します。「過去に A B という並びが出ていて、いま再び A が現れたら、次は B だろうと予測してコピーする」 ——すなわち系列内のパターン照合と複製です。これは典型的に2つのヘッドの連携で実現されます。
# 誘導ヘッドの2段構成([A][B] ... [A] → 次は [B] を予測)
1. 前トークンヘッド: 各位置で「直前のトークンは何か」を Key に書き込む
2. 誘導ヘッド : いまの A と一致する Key を探し、その『次』だった B を Value として引く
→ [A][B]…[A] の続きに B をコピー(in-context のパターン補完)
決定的なのは、誘導ヘッドが事前学習中にある時点で急に形成されること、そしてその形成タイミングがICL 能力(文脈が長いほど後ろのトークン予測損失が下がる現象)の立ち上がりと一致することです。これは「ICL がいつ・なぜ生まれるか」を学習ダイナミクスの中で初めて結びつけた強い証拠でした。
- 誘導ヘッド:トークン列の表層パターンのコピー(書式・繰り返し・形の踏襲)を担う、最も具体的な機構。
- ベイズ/メタ学習:抽象的なタスク同定(潜在概念への条件付け)を担う、最も上位の見方。
- 勾配降下模倣:例から写像を内部最適化する、計算的な中間像。
実際の LLM では、浅い層の誘導ヘッドが書式と繰り返しを揃え、深い層がより抽象的なタスク条件付けを行う——というように層と規模に応じて重なって働くと考えるのが、現状の整合的な理解です。
事前学習分布とタスクベクトル、そしてスケール
ICL は魔法ではなく、事前学習データの分布的性質から創発します。Chan ら(2022)は、ICL が立ち上がるには学習データが特定の性質を持つ必要があることを示しました。代表的なのが バースト性(burstiness)(同じ項目が短い文脈内で固まって再出現する)と 多義性・大きなクラス数(1つの入力が文脈次第で異なる意味を取りうる)です。データが i.i.d. で綺麗すぎると、モデルは ICL ではなく丸暗記(in-weights learning)に倒れます。ICL は、文脈を見ないと損が減らない分布で初めて報われる戦略 なのです。
獲得された「いまのタスク」は、活性空間の中で タスクベクトル(task vector / function vector) として圧縮されている、という結果も重要です(Hendel ら 2023、Todd ら 2023)。few-shot プロンプトを処理した際の中間層の活性から1本のベクトルを取り出し、それを別のクエリ実行時の活性に注入するだけで、few-shot 例なしでもタスクが再現できる。これは「文脈はいったんコンパクトな潜在表現(≒前述の θ の符号化)に畳み込まれ、後段はそれに条件付けて動く」というベイズ説の見方と整合します。タスクが活性空間のベクトルとして扱える点は、埋め込み(Embedding) で見た意味のベクトル化と地続きです。
最後にスケールとの関係です。ICL は典型的な 創発(emergent)能力で、モデル規模・データ量・計算量が一定の閾を超えて初めて鋭く立ち上がります。
| 要因 | ICL への効き方 | 背景にある仕組み |
|---|---|---|
| モデル規模(パラメータ数) | 閾値を超えると急に few-shot 性能が立つ | 誘導ヘッド等の回路が形成される容量が要る |
| 事前学習データの分布 | バースト性・多義性が高いほど ICL が育つ | 文脈参照が損失低減に報われる構造が必要 |
| 文脈長(例の数) | 増やすと精度向上、ただし頭打ち・順序依存あり | 事後 p(θ|文脈) の収束/注意の容量限界 |
| 事前学習計算量 | 誘導ヘッド形成の“相転移”を経て ICL が出現 | 学習ダイナミクス上の特定フェーズで創発 |
なぜ規模が要るのかは スケーリング則 の文脈で理解できます。容量とデータが揃って初めて、丸暗記より汎用的なタスク同定回路を持つ方が損失的に得になり、ICL が選ばれる——というのが、分布・回路・スケールを貫く一本の筋です。
「ICL はなぜ起きるのか」と問われたら、(1) 重みを更新しない順伝播内のタスク同定であることを前置きし、(2) 3仮説(暗黙のベイズ/メタ学習・文脈内勾配降下の模倣・誘導ヘッド)を排他でなく役割分担として挙げ、(3) 事前学習分布のバースト性とスケールによる創発、タスクベクトルへの圧縮で締めるのが満点解答です。「ラベルを壊しても効く=例はタスク同定に効く」「誘導ヘッド形成と ICL 出現の同時性」を具体例として添えると強い。
まとめ:3つの像が1つの現象を照らす
インコンテキスト学習は、単一の機構ではなく、見る解像度ごとに別の像を結ぶ多面的な現象です。
| 問い | 現時点の答え | 根拠・含意 |
|---|---|---|
| 何が起きている? | 重み不変のまま順伝播内でタスクを同定し条件付ける | 学習ではなく一時的な推論時適応 |
| なぜできる?(上位像) | 事前学習が暗黙のメタ学習で潜在タスク推論を獲得 | 例は写像でなくタスク同定の証拠 |
| どう計算する?(中間像) | 文脈内で勾配降下に相当する最適化を近似 | 層の深さ=反復ステップに対応(限定条件下) |
| どんな回路?(下位像) | 誘導ヘッドが系列パターンを照合・コピー | 形成時期が ICL 出現と一致 |
| いつ立ち上がる? | 分布のバースト性+規模が閾を超えたとき創発 | 活性空間のタスクベクトルとして圧縮される |
実務的な含意は明快です。few-shot が効かないときは、例数を増やす(事後を収束させる)・書式とラベル空間を揃える(タスク同定の手がかりを強める)・例の順序を見直すのが筋の通った打ち手になります。なぜ効くかが分かれば、プロンプト設計は当て推量から原理に基づく操作へ変わります。前提となる仕組みは Self-Attention の計算 と マルチヘッド注意と位置符号化 を、規模との関係は スケーリング則 を合わせて読むと、点が線でつながります。
AI/機械学習 Article
インコンテキスト学習はなぜ起きるのかを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
インコンテキスト学習
比較で見る軸
難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 6
導入後に効く点
主要仮説は3つ。事前学習分布から潜在タスクを推論する『暗黙のベイズ推論/メタ学習』、文脈内で勾配降下を1ステップ模倣する『勾配降下の近似』、トークン列のパターンをコピーする『誘導ヘッド』。互いに排他ではなく層・規模で役割分担する。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- AI/機械学習
- タグ数
- 6
判断チェックリスト
- 自社の用途が「インコンテキスト学習 / LLM」に近いか確認する。
- 強みである「インコンテキスト学習(ICL)は、重みを一切更新せずプロンプト内の少数例だけでタスクを解く現象。学習は順伝播1回の中で起き、推論が終われば消える一時的な適応。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。