Transformerモデルにおいてトークンの並び順情報を付与する技術の総称。Self-Attentionは本来順序を区別できないため、位置エンコーディングがなければ「猫が犬を追う」と「犬が猫を追う」を同一視してしまう。絶対位置・相対位置・回転型など複数の方式が研究されている。
Transformerアーキテクチャにおいて、トークンの順序情報をモデルに伝える技術が位置エンコーディングである。Self-Attention機構は入力の順番を本質的に区別できないため、位置情報の注入がなければ文の意味を正しく理解できない。
2017年の「Attention Is All You Need」論文で提案されたオリジナルTransformerでは、正弦波(Sinusoidal)関数による絶対位置エンコーディングが採用された。以降、BERT(学習可能な絶対位置埋め込み、最大512トークン)、GPT-2(学習可能な絶対位置、最大1024トークン)を経て、2024-2026年の最新モデルではRoPE(Rotary Position Embedding)が主流となっている。
位置エンコーディングの選択はモデルの長文処理能力に直結する。GPT-4 Turboの128Kトークン、Claude 3.5の200Kトークン、Gemini 1.5 Proの2Mトークンといったコンテキスト長の拡大は、位置エンコーディング技術の進化なしには実現し得なかった。
位置エンコーディングは大きく3つのカテゴリに分類される。
| 方式 | 代表例 | 訓練長外挿 | 計算コスト | 採用モデル |
|---|---|---|---|---|
| 絶対位置(正弦波) | Sinusoidal | 困難 | O(1) | オリジナルTransformer |
| 絶対位置(学習) | Learned PE | 困難 | O(1) | BERT, GPT-2 |
| 相対位置バイアス | ALiBi | 良好 | O(n) |
| BLOOM-176B, MPT-7B/30B |
| 回転位置埋め込み | RoPE | 中程度(拡張で良好) | O(d) | LLaMA 3, Mistral, Qwen2.5 |
| 拡張RoPE | YaRN, NTK-aware | 優秀 | O(d) | LLaMA 3.1-128K, CodeLlama-100K |
位置エンコーディングの最大の技術課題は「外挿(Extrapolation)」である。訓練時に見た最大シーケンス長を超える推論時に、モデルの性能が急激に劣化する現象を指す。
2026年時点で最も長いコンテキストを実現しているのはGemini 1.5 Pro(2Mトークン、RoPEベースの独自拡張)とClaude 3.5 Opus(200Kトークン)である。
RoPEの基本実装(PyTorch):
import torch
def rotary_embedding(x, seq_len, dim, base=10000):
positions = torch.arange(seq_len, dtype=torch.float32)
freqs = 1.0 / (base ** (torch.arange(0, dim, 2).float() / dim))
angles = positions.unsqueeze(1) * freqs.unsqueeze(0)
cos_vals = torch.cos(angles)
sin_vals = torch.sin(angles)
x1, x2 = x[..., ::2], x[..., 1::2]
return torch.cat([x1 * cos_vals - x2 * sin_vals,
x1 * sin_vals + x2 * cos_vals], dim=-1)
NTK-aware RoPE Scalingでは base パラメータを拡大する:
| 概念 | 役割 | 位置エンコーディングとの関係 |
|---|---|---|
| トークン埋め込み | 語彙の意味をベクトル化 | 位置エンコーディングと加算/結合される |
| Self-Attention | トークン間の関係性を計算 | 位置情報がないと順序を無視する |
| KVキャッシュ | 推論時の計算結果を再利用 | 位置エンコーディングの値も含めてキャッシュ |
| Flash Attention | Attentionの高速化手法 | 位置情報の計算には直接影響しない |
Q1: 位置エンコーディングがないとどうなる? A: Transformerは入力トークンの順序を完全に無視する。「AがBを食べた」と「BがAを食べた」が同一の出力を生む。Bag-of-Words的な振る舞いになり、文法や論理構造を学習できない。
Q2: RoPEが主流になった理由は? A: 相対位置の情報を内積演算に自然に組み込めるため、追加パラメータなしで外挿能力を持つ。ALiBiよりも表現力が高く、NTK-aware ScalingやYaRNとの組み合わせで長文対応が容易なことが決め手となった。
Q3: 位置エンコーディングと文脈長の関係は? A: 位置エンコーディングの方式が文脈長の上限を事実上決定する。Sinusoidalは訓練長に縛られ、ALiBiは2-4倍の外挿が限界、RoPE+YaRNなら32倍以上の外挿が可能。2026年の100K-2Mトークンモデルはすべて高度な位置エンコーディング技術に依存している。
Q4: 自作PCでLLMを動かす際に位置エンコーディングは影響する? A: 直接的には意識する必要はないが、長いコンテキスト長のモデルはKVキャッシュのVRAM消費が大きくなる。例えばLLaMA 3.1-70B-128Kを全長で推論するにはGPU 80GB×2枚(A100/H100)が必要。ローカル推論ではコンテキスト長を制限(4096-8192)することでVRAM節約が一般的。