Attention計算時にクエリとキーの距離に比例した線形バイアスを減算することで、位置情報を注入する手法。訓練時より長いシーケンスへの外挿能力に優れ、BLOOM-176BやMPT-7B/30Bで採用された。
ALiBi(Attention with Linear Biases)は、Press et al.が2022年の論文「Train Short, Test Long」で提案した位置エンコーディング手法である。トークン埋め込みへの位置ベクトル加算を完全に廃止し、代わりにAttentionスコアにクエリ・キー間の距離に比例した負のバイアスを加算する。
ALiBiの核心はシンプルである。Attention行列の(i, j)要素に対して -m × |i - j| というバイアスを加算する。ここで m はヘッドごとに異なる固定スロープ(傾き)で、2^(-8/n) の等比数列から取る(n はAttentionヘッド数)。
この線形バイアスにより、遠いトークンほどAttentionスコアが減衰する局所性バイアスが自然に生まれる。結果として:
n ヘッドのMulti-Head Attentionに対して:
例えば8ヘッドの場合、スロープは: m = [1/2, 1/4, 1/8, 1/16, 1/32, 1/64, 1/128, 1/256]
| モデル | パラメータ | 訓練長 | 実効推論長 | 備考 |
|---|---|---|---|---|
| BLOOM-176B | 176B | 2,048 | ~8,192 | BigScience、46言語対応 |
| MPT-7B | 7B | 2,048 | ~8,192 | MosaicML、商用利用可 |
| MPT-30B | 30B | 8,192 | ~32,768 | MosaicML、8K訓練 |
| BTLM-3B-8K | 3B | 8,192 | ~32,768 | Cerebras、効率重視 |
一方、2024年以降の主要モデル(LLaMA 3、Mistral、Qwen2.5)はRoPEを採用し、ALiBiは新規採用が減少傾向にある。
長所:
短所:
import torch
def alibi_bias(n_heads, max_len):
slopes = torch.tensor([2 ** (-8 * i / n_heads) for i in range(1, n_heads + 1)])
positions = torch.arange(max_len)
distances = positions.unsqueeze(0) - positions.unsqueeze(1)
bias = -slopes.unsqueeze(1).unsqueeze(1) * distances.abs().unsqueeze(0)
return bias # shape: (n_heads, max_len, max_len)
Q1: ALiBiとRoPEはどちらが優れている? A: 2026年時点ではRoPEが主流である。RoPE+YaRNは32倍以上の外挿が可能で、128Kトークン以上のコンテキスト対応に優れる。ALiBiは実装のシンプルさと4倍程度の外挿には有利だが、超長文処理ではRoPEに劣る。
Q2: ALiBiはなぜ外挿できる? A: 線形バイアスは任意の距離 |i-j| に対して定義されるため、訓練時に見ていない距離にも自然に一般化する。ただし距離が大きくなるとバイアスの絶対値も線形に増大するため、実効的なAttention範囲は有限となる。
Q3: BLOOM-176Bが ALiBiを選んだ理由は? A: BigScienceプロジェクトは2021-2022年に設計されており、RoPEの実用性がまだ十分に検証されていなかった。ALiBiの外挿性能とパラメータ効率がその時点で最良の選択肢であった。46言語・2048トークン訓練で8Kトークン推論を実現した。