AkihikoWatanabe / paper_notes

たまに追加される論文メモ
https://AkihikoWatanabe.github.io/paper_notes
21 stars 0 forks source link

RoFormer: Enhanced Transformer with Rotary Position Embedding, Jianlin Su+, N/A, Neurocomputing, 2024 #1310

Open AkihikoWatanabe opened 5 months ago

AkihikoWatanabe commented 5 months ago

URL

AkihikoWatanabe commented 5 months ago

RoPEを提案した論文

AkihikoWatanabe commented 1 month ago

Absolute Position Embedding と Relative Position Embedding

TransformerにおけるQKVベクトルの計算方法

一般に、Transformerにおける Query (Q), Key (K), Value (V) は以下の式で定式化される:

image

m, nはそれぞれ位置を表す整数。Absolute Position Embeddingと、Relative Position Embeddingは、関数fの設計がそれぞれ異なっている:

Absolute Position Embedding

absolute position embeddingは、固定されたposition ベクトル、あるいはtrainableなposition ベクトル p を、入力ベクトルに対して足し合わせる:

image

Relative Position Embedding

一方、Relative Position Embeddingは、Queryの位置に対する、Key, Valueの相対位置(つまり、mとnの差)に対して、trainableなベクトルをKey, Valueごとに用意し、そのベクトルを入力に足し合わせる、という定式化となっている:

image

RoPE

RoPEでは、入力ベクトルに対して回転行列を適用することで、回転に対して位置情報を保持させる:

image image

RoPEは下記のような性質を持つ:

Absolute Position Embedding, Relative Position Embeddingでは、ベクトルに対して位置情報を加算する定式化で K, Vの計算時に位置情報を考慮していたため、Linear Attentionの計算そのものに位置情報を組み込んだ定式化とはなっていなかった。 が、RoPEでは回転行列を乗算する定式化であり、ノルムを変化させないのでLinear Attentionの定式化に組み込むことができる。このため、モデルのアーキテクチャを大きく変更しなくとも組み込める。

AkihikoWatanabe commented 1 month ago

RoPE自体は実装にパラメータを必要としないが、モデルのその他のパラメータがRoPEに適用できるように学習されていないと適用できないであろう点には注意(事前学習時にRoPEが使われていれば話は別)。