あなたは最先端の位置エンコーディングを設計できたでしょう

TL;DR

Hugging Faceのブログ記事では、トランスフォーマーの自己注意における位置エンコーディングを段階的に改善し、最終的にLlama 3.2やその他の最新モデルで使用されている回転位置エンコーディング(RoPE)に至る過程と、位置情報を追加することが異なる位置に現れるトークンを区別するために不可欠である理由を説明しています。

問題点

トランスフォーマーの自己注意は置換等変であり、位置情報がないと、同じトークンが異なるエンティティを指しているかどうかをモデルは判別できません。

動機付けとなる例

文 "The dog chased another dog" において、位置エンコーディングを追加しないと、"dog" の2つの出現は同じ自己注意出力を生み出し、これが位置情報が必要であることを示しています。

望ましい特性

理想的な位置エンコーディングは次のようにすべきです:

  1. 各位置に長さに依存しない一意のコードを与える;
  2. 位置 p から位置 p + k のエンコーディングを単純な線形計算で得られるようにする;
  3. 訓練時に見たシーケンス長よりも長いシーケンスに対して一般化できる;
  4. モデルが学習できる決定論的なプロセスによって生成される;
  5. 画像などのマルチモーダルデータに対して複数次元に自然に拡張できる。

整数位置エンコーディング

埋め込みの各成分に生の整数位置を加えると、典型的な埋め込みの大きさをはるかに超える値になり、信号対雑音比が悪化し、学習が困難になります。

バイナリ位置エンコーディング

位置をバイナリ文字列で表現し、そのビットを埋め込み次元に広げると、[0,1] の範囲の値がシーケンス長にわたって一貫しますが、その結果得られるパターンは離散的で「ジャンピー」であり、勾配ベースの最適化には理想的ではありません。

サインusoidal位置エンコーディング

幾何学的に増加する波長を持つサインとコサインを使用すると、滑らかで連続したエンコーディングが得られます。位置 p と次元 2i に対するエンコーディングは sin(p / 10000^{2i/d}) で、2i+1 は cos(p / 10000^{2i/d}) です。ここで d はモデル次元です。この方式は、固定オフセット k が各(sin,cos)ペアに作用する回転行列に対応するため、一意性と線形関係の特性を満たします。

絶対位置エンコーディング vs 相対位置エンコーディング

絶対位置はトークンがシーケンス全体のどこにあるかを示しますが、意味は通常、近くのトークンとの関係に依存します。サインusoidalエンコーディングは回転として相対位置をエンコードすると解釈でき、これが加法的から乗法的なクエリとキーへの組み合わせへのシフトを動機づけます。

文脈における位置エンコーディング

自己注意では、ドット積 QKᵀ が各キーがクエリにどれだけ影響するかを決定します。ドット積は ‖Q‖‖K‖cos θ に等しいため、 Q または K を回転させると角度 θ が変わり、それによって注意の重みが変わりますが、ベクトルのノルムは変わらず、ノルムに格納された意味情報は保持されます。

回転位置エンコーディング (RoPE)

RoPEは、サインusoidal方式から導き出される回転行列をクエリとキーのベクトルの次元ペアに直接適用し、その後ドット積を取ります。各ペア i に対して回転角は ω_i · p で、ここで ω_i = 1 / 10000^{2i/d} です。この操作は要素ごとに以下のように行えます: - q′{2i} = q{2i} · cos(p θ_i) − q_{2i+1} · sin(p θ_i) - q′{2i+1}= q{2i} · sin(p θ_i) + q_{2i+1} · cos(p θ_i) (同様に k についても)。この乗法的アプローチは、ベクトルのノルムを変えることなく相対位置をエンコードします。

RoPEのn次元への拡張

画像などの2次元データに対して、RoPEは各空間次元を独立に扱います:x次元内のペアを回転させて水平オフセットをエンコードし、y次元内のペアを回転させて垂直オフセットをエンコードします。これによりxとyの情報が混ざることを避け、埋め込みの各次元に互いに素な部分空間を割り当てることで任意の次元数に一般化できます。

位置エンコーディングの将来

最近の分析では、モデルはRoPEの最低周波数に依存しがちであり、それらの周波数を回転させる代わりに削除すると、一部のモデルで性能が向上することが示されています。今後の作業では、ウェーブレットや階層的スキームなどの信号処理ツールを活用し、低精度量子化にも堅牢なエンコーディングを追求する可能性があります。

結論

位置エンコーディングは後回しにすべきではありません;それは自己注意の置換等変性という制限に直接対処します。生の整数からバイナリ、サインusoidal、そして最終的に乗法的な回転(RoPE)へとエンコーディングを反復的に改良することで、望まれる特性を満たし、最先端のトランスフォーマーで広く使用されるスキームに到達します。

Sources