インコンテキスト学習とは、言語モデルがプロンプトの内容のみに基づいて新しいタスクに適応する能力であり、モデルのパラメータを更新することなく動作する。ユーザーは単一の会話のコンテキストウィンドウ内に指示、例、または補足文書を提供でき、モデルはその資料に基づいて次の出力を調整する。あたかもそのタスクのために訓練されたかのように振る舞うが、実際には訓練は行われていない。これは少数ショット学習とゼロショット学習の両方のプロンプティングの基盤となるメカニズムであり、現代のトランスフォーマーベースの大規模言語モデルシステムで観察される最も重要な挙動の一つである。
この現象は2020年のGPT-3論文で顕著に取り上げられ、十分に大規模な事前訓練済みモデルが、勾配更新なしで少数のプロンプト例から新しいタスクを実行できることを示した。これは表面的にはモデルが単一のフォワードパス内で「学習」しているように見えたため、通常の訓練時学習(重みを変更する)や、タスク固有データに対する明示的な最適化ステップを必要とする転移学習やファインチューニングと区別するために、インコンテキスト学習という用語が採用された。
仕組み
インコンテキスト学習の機械論的説明は単一の定説がなく、いくつかの相補的な見解が広く引用されている。一つの見解は、これを暗黙のパターンマッチングの一種と捉える。モデルの事前訓練コーパスには、タスクが説明・実演・解決された無数のテキスト例が含まれるため、モデルは「タスク、例、そして新しい事例」というシーケンスを、暗示されたパターンを満たす形で継続する一般的な手順を学習しているというものである。より機械論的な解釈可能性研究の系統では、トランスフォーマー内部のアテンションメカニズムが単純な学習アルゴリズムに似たものを内部的に実装し、プロンプト内のトークンにわたって軽量なパターン補完や、勾配降下に似た計算を効果的に実行できると提案されているが、これは依然として活発で議論のある研究領域であり、より広範な解釈可能性研究と関連している。インコンテキスト学習はまた、スケールに伴う能力の出現とも密接に関連しており、創発的能力の下で議論される。なぜなら、小規模なモデルは十分に大規模なモデルほど追加コンテキストの恩恵を受けない傾向があるからである。
用途
インコンテキスト学習は、プロンプトエンジニアリングの実用的な用途のほとんどを支えている。これには、少数ショットの実演、システムプロンプトによる役割やペルソナの指示、そしてモデルがそれに関する質問に答えられるように参照資料を直接プロンプトに提供することが含まれる。このパターンは、参照資料が手動で貼り付けられるのではなく外部ソースから動的に取得される場合に、検索拡張生成へと拡張される。また、単一の会話内での迅速なタスク切り替えも可能にする。チャットアシスタントは、コード作成から段落翻訳、文書要約へと移行できるが、これは各新しい指示がモデルの挙動を再調整するためであり、ターン間に再訓練は不要である。
限界と重要性
インコンテキスト学習はコンテキストウィンドウのサイズに制約され、プロンプト内の情報量が非常に多くなるか、関連する詳細が長い入力の中央に埋もれると性能が低下する傾向がある。これは、モデルがコンテキストを「見失う」と非公式に表現されることもある。また、持続性もない。重みが変化しないため、コンテキスト内で学習されたものは会話が終了するかコンテキストがクリアされるとすぐに忘れられる。これは、モデルに永続的な変化をもたらすファインチューニングとは対照的である。これらの限界にもかかわらず、インコンテキスト学習は実用的な展開においてトランスフォーマーアーキテクチャの最も重要な特性の一つと考えられている。なぜなら、単一の汎用モデルを推論時に事実上無制限のタスク範囲に再利用でき、再訓練やファインチューニングに必要なコスト、遅延、インフラストラクチャを回避できるからである。