## 定義 LLM が文脈内学習(few-shot prompting)で解くタスクを表すベクトル。「複数の few-shot 例の最終トークンの内部状態の平均」として抽出でき、例示ゼロの状態でも MLP 入力に加算するだけでそのタスクを実行させられる(Todd+ ICLR 2024)。 ## 動作原理 LLM は文脈に基づいて「現在のタスクに対応する関数ベクトル」を構築し、それを MLP に渡してプログラムを実行することで次トークンを予測すると解釈される。MLP は高階関数のように機能し、様々な関数ベクトルを受け取って対応する変換を実行する。 **抽出手順(Todd+ ICLR 2024):** 1. 同一タスクの複数の few-shot プロンプトをモデルに入力する。 2. 各プロンプトの最終トークンの内部状態を抽出し、平均を計算する。 3. 得られた平均ベクトルを「関数ベクトル」とする。 4. 新しい入力の推論時にこのベクトルを MLP 入力へ加算する。 ## 対応タスクの例 | タスク | 例 | 外挿可否 | |-------|---|---------| | 小文字→大文字 | `hello` → `HELLO` | 可(手続き的) | | 単数→複数 | `cat` → `cats` | 部分的可 | | 現在形→過去形 | `walk` → `walked` | 部分的可 | | 対義語変換 | `big` → `small` | 難(知識依存) | | 英語→フランス語 | `win` → `gagner` | 難(知識依存) | | 国名→首都名 | `Japan` → `Tokyo` | 難(知識依存) | ## 線形性の限界 対義語関数ベクトル `h` の場合、`v_big + h = v_small` かつ `v_small + h = v_big` が同時に成立すれば `h = 0` となり矛盾する。つまり対義語変換は MLP 内部の非線形変換で実現されており、関数ベクトルの加算だけで完結する線形な変換ではない。 ## 外挿可能性との関係 - **手続き的タスク**(大文字化・形態素変換): MLP のデータベース機能への依存が低いため外挿しやすい。 - **知識依存タスク**(翻訳・対義語・地理知識): MLP に蓄積された静的データベースへのアクセスが必要で、データベースにない知識は外挿不可。 ## 未解決の問い - 関数ベクトルは何層の内部状態を参照すると最も効果的か? - 複数タスクを同時に表現する合成関数ベクトルは存在するか? ## 関連ページ - [[アテンションヘッド]] — 関数ベクトルを構築する注意ヘッド種別 - [[帰納ヘッド]] — 文脈内学習の別実現機構 - [[機構的解釈性]] — 関数ベクトルを発見した方法論