AI・機械学習
上級
KERPLE(Kernelized Relative Positional Embedding for Length Extrapolation)(カープル カーネライズド リレーティブ ポジショナル エンベディング フォー レングス エクストラポレーション)
ALiBiを一般化したTransformerの相対位置エンコーディング手法。対数(log)または冪乗(power)カーネル関数を用いて距離に応じた注意バイアスを生成し、ALiBiより豊かな位置表現と長さ外挿能力を実現する。
0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
positional-encoding
length-extrapolation
alibi
kernel-method
transformer
KERPLE(Kernelized Relative Positional Embedding for Length Extrapolation)とは
KERPLEは2022年にChi et al.が発表したALiBiの一般化版位置エンコーディング手法。ALiBiの線形距離バイアス(-|i-j|)をカーネル関数の枠組みで拡張し、より表現力豊かな位置符号化と優れた長さ外挿を実現する。
ALiBiの復習と限界
ALiBi(Attention with Linear Biases)はシンプルで効果的な位置手法:
注意スコア = Q·K^T / √d - slope × |i - j|
slopeはヘッドごとに固定の定数- 実装が単純で計算コストが低い
- 長さ外挿ではRoPEより安定する傾向
制限:線形バイアスのみでは表現力に上限があり、複雑な位置依存パターンを捉えにくい。
KERPLEの拡張:カーネル関数の導入
KERPLEはALiBiのバイアスをカーネル関数 k(i, j) で置き換える:
注意スコア = Q·K^T / √d + k(i, j)
対数カーネル(Log Kernel)
k_log(i, j) = -a · log(1 + |i - j|) (a > 0)
- 距離に対して対数的にバイアスが増加
- 遠距離でもバイアスの増加が緩やか → 長文脈情報が保持されやすい
冪乗カーネル(Power Kernel)
k_pow(i, j) = -b · |i - j|^r (b > 0, 0 < r ≤ 1)
r = 1でALiBiと同一r < 1でALiBiより緩やかな増加(sub-linear decay)
ハイブリッドカーネル
k(i, j) = -a · log(1 + |i - j|) - b · |i - j|^r
- 対数と冪乗の組み合わせで最も表現力が高い
パラメータの学習
KERPLEの係数 a, b, r は学習可能パラメータ:
- 各アテンションヘッドが独立したカーネルパラメータを持つ
- 訓練データから最適な距離バイアスを自動学習
- パラメータ数の増加は最小限(ヘッド数 × 2〜3個のスカラー)
ALiBi・RoPEとの比較
| 特性 | ALiBi | RoPE | KERPLE |
|---|---|---|---|
| 位置表現 | 線形減衰 | 回転変換 | カーネル関数 |
| 学習可能パラメータ | なし | なし | あり(少量) |
| 長さ外挿 | ○ | △ | ◎ |
| 実装複雑度 | 最低 | 低 | 低〜中 |
| 表現力 | 低 | 中 | 中〜高 |
実装
class KERPLEBias(nn.Module):
def __init__(self, num_heads):
super().__init__()
# 対数カーネル係数(ヘッドごと)
self.log_a = nn.Parameter(torch.ones(num_heads) * 0.5)
# 冪乗カーネル係数
self.pow_b = nn.Parameter(torch.ones(num_heads) * 0.1)
self.pow_r = nn.Parameter(torch.ones(num_heads) * 0.5)
def forward(self, distance_matrix):
d = distance_matrix.abs()
log_bias = -self.log_a.view(-1,1,1) * torch.log1p(d)
pow_bias = -self.pow_b.view(-1,1,1) * d.pow(self.pow_r.view(-1,1,1))
return log_bias + pow_bias
適用シーン
- 長文書モデル:法律文書・医療記録等の長コンテキスト理解
- コードLLM:大規模コードファイルの全文把握
- 多文書要約:複数文書にまたがる参照の維持
まとめ
KERPLEはALiBiのシンプルさを維持しつつカーネル関数で表現力を高めた位置エンコーディング。対数・冪乗カーネルの組み合わせにより長さ外挿性能が向上し、少量の学習パラメータで効果的な位置表現を獲得できる。ALiBiから次世代への自然な発展形として位置づけられる。