AI・機械学習
中級
T5相対位置バイアス(T5 Relative Position Bias)(ティーファイブ そうたいいち バイアス)
GoogleのT5(Text-to-Text Transfer Transformer)で採用された相対位置エンコーディング手法。位置差をバケット(bucket)に量子化し、学習可能なバイアステーブルを参照して注意スコアに加算することで相対位置情報を表現する。
0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
positional-encoding
t5
google
relative-position
transformer
bucket
T5相対位置バイアスとは
T5相対位置バイアスは、Googleが2020年に発表したT5(Text-to-Text Transfer Transformer)で採用された相対位置エンコーディング手法。従来の絶対位置エンコーディング(Sinusoidal PE、学習済みPE等)とは異なり、トークン間の相対距離を離散的なバケットに量子化して位置情報を表現する。
設計思想
T5の設計者は位置エンコーディングに以下の要件を設けた:
- 相対位置のみ使用:絶対位置ではなくクエリ-キー間の相対差を使う
- 共有パラメータ:全レイヤーでバイアステーブルを共有してパラメータ効率化
- 対数スケール量子化:近距離を細かく、遠距離を粗くバケット分割
- スケーラビリティ:異なる入力長に対して同一モデルが適応可能
バケット量子化の仕組み
def compute_bias_bucket(relative_position, num_buckets=32, max_distance=128):
"""
相対位置差をバケットインデックスに変換
"""
ret = 0
n = -relative_position # クエリからキーへの距離(正値)
# 前半バケット:線形スケール(近距離の精細表現)
num_buckets_half = num_buckets // 2 # 16
max_exact = num_buckets_half # 16
is_small = n < max_exact
# 後半バケット:対数スケール(遠距離の粗い表現)
val_if_large = max_exact + (
torch.log(n.float() / max_exact) /
math.log(max_distance / max_exact) *
(num_buckets - max_exact)
).to(torch.long)
val_if_large = torch.min(val_if_large,
torch.full_like(val_if_large, num_buckets - 1))
ret += torch.where(is_small, n, val_if_large)
return ret
バケット分割の例(32バケット・最大距離128):
- バケット 0〜15:距離 0〜15(1単位ごとに1バケット = 線形)
- バケット 16〜31:距離 16〜128+(対数スケールで16区間)
アテンション計算への組み込み
注意スコア = Q·K^T / √d + bias_table[bucket(i - j)]
bias_table:shape[num_heads, num_buckets]の学習可能パラメータ- ヘッドごとに異なるバイアスを学習可能
- 双方向(Encoder)では正負両方向のバケットを用意
双方向 vs 単方向
T5のEncoder(双方向)とDecoder(自己回帰)で扱いが異なる:
| 部位 | 相対位置の向き | バケット数 |
|---|---|---|
| Encoder | 両方向(前後) | 32(16前 + 16後) |
| Decoder(自己注意) | 後方のみ(causal) | 32(片方向) |
| Cross-Attention | Encoder位置基準 | 32 |
T5ファミリーでの継承
T5相対位置バイアスはT5シリーズ全体で採用:
- T5-Small〜T5-11B:基本手法そのまま
- Flan-T5:同一設計を継承(instruction tuningのみ変更)
- UL2:混合事前学習目的関数を採用しつつ位置手法は継承
- mT5:多言語版でも同一設計
長さ外挿の特性
バケット量子化により訓練長を超えた推論での挙動が比較的安定:
- 最大バケット(128以上の距離)は全て同一バイアスが適用
- 明示的なクリッピングにより訓練分布外の距離でも予測可能な挙動
- RoPEのような高周波数成分の干渉がない
現代LLMへの影響
RoPEが普及した現在(2024〜2025年)においても、T5相対位置バイアスは:
- Seq2Seqモデルでの位置エンコーディングのデファクト
- 長さ外挿研究のベースライン手法として頻繁に引用
- FIRE・KERPLE等の新手法との比較基準として機能
まとめ
T5相対位置バイアスは対数スケールのバケット量子化で相対位置を効率的に表現する手法。RoPEが主流化した後も、Seq2Seqアーキテクチャや長さ外挿研究の文脈で重要な基準手法であり続けている。Flan-T5等の広く使われるモデルを通じてその設計が今日のNLPに影響を与えている。