## 定義
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 に蓄積された静的データベースへのアクセスが必要で、データベースにない知識は外挿不可。
## 未解決の問い
- 関数ベクトルは何層の内部状態を参照すると最も効果的か?
- 複数タスクを同時に表現する合成関数ベクトルは存在するか?
## 関連ページ
- [[アテンションヘッド]] — 関数ベクトルを構築する注意ヘッド種別
- [[帰納ヘッド]] — 文脈内学習の別実現機構
- [[機構的解釈性]] — 関数ベクトルを発見した方法論