RoPE
https://arxiv.org/abs/2104.09864RoFormer: Enhanced Transformer with Rotary Position Embedding
参考 : Rotary Positional Embeddings: A Detailed Look and Comprehensive Understanding & ChatGPT.icon
Trasformerに位置情報が必要なわけ
例えば「卵を割って、牛乳を混ぜ、塩を加える」という文があったとき
Transformerは並列処理するため(自動的には)順番を考慮しない
各単語に「最初」「次」「その次…」といった位置情報を追加して、順番が伝わるようにする
Learned Positional Embeddings
他のモデルパラメータと同様に、位置ベクトルも学習中に学習する
学習時に使った位置(たとえば文章の長さが100語まで)よりも長い文章になったとき、どの位置情報を使えば良いかわからなくなることがある
Transformerの最初の論文ではsin/cosin関数を使って位置情報を表現した
RoPE
https://gyazo.com/880fea615f31bd7ed36b67adce4afbf8
位置ベクトルを追加する代わりに、単語ベクトルを回転させる
たとえば、ベクトルは最初の位置でθ、2番目の位置で2θ、というように回転します。