Positional Encoding - Shinichi0713/LLM-fundamental-study GitHub Wiki

絶対位置エンコーディング (Absolute Positional Encoding)

概要: トークンの絶対的な位置をエンコードする方法です。 実装方法: 一般的には、サイン関数とコサイン関数を使用して位置情報をエンコードします。 メリット: 実装が比較的簡単であり、トランスフォーマーの元々のアーキテクチャで使用されているため、広く受け入れられています。 デメリット: 長距離依存関係をキャプチャするのが難しく、シーケンス長が異なる場合に一般化が難しいことがあります。

数式上は以下であらわされる。
image
p_{i}:xiに対応する位置依存のベクトル
d次元のベクトルpiの2t番目のベクトルということを意味する。
また、奇数と偶数でどちらかパット分かるような対応関係となっている。

相対位置エンコーディング (Relative Positional Encoding)

概要: トークン間の相対的な位置関係をエンコードする方法です。 実装方法: トークン間の距離に基づいて位置情報をエンコードします。 メリット: 長距離依存関係をより効果的にキャプチャでき、異なるシーケンス長に対しても一般化しやすいです。 デメリット: 実装がやや複雑であり、計算コストが増加することがあります。

学習可能な位置エンコーディング (Learnable Positional Encoding)

概要: 位置エンコーディングをモデルのパラメータとして学習させる方法です。 実装方法: 各位置に対して学習可能な埋め込みベクトルを割り当てます。 メリット: モデルがタスクに応じて最適な位置エンコーディングを学習できるため、柔軟性があります。 デメリット: トレーニングデータに強く依存し、事前学習済みモデルの転移学習が難しくなることがあります。

Rotary Positional Encoding (RoPE)

Transformerモデルにおける位置エンコーディングの一種。
相対的な位置関係を示す相対位置エンコーディングを用いた手法。
論文:https://arxiv.org/pdf/2104.09864

基本的に自己注意機構で構成されている。
Transformerモデルは通常、自己注意機構を計算するときに、PEを使っている。
image
qmknにより、トークンと位置関係で知識の伝達が行われている。
相対PEを用いることで、単語の埋め込み表現が、m-nの相対的な位置関係の内積による得られる。
image
fgとfkが先述の関係を遵守するという等価のエンコーディングを見つけることにある。

メリット

  1. 長距離依存関係のキャプチャ:
    RoPEは、トークン間の相対的な位置関係に基づいて位置情報をエンコードするため、長距離依存関係をより効果的にキャプチャすることができます。これは、長いシーケンスを扱う際に特に有用です。
  2. トランスフォーマーのスケーラビリティ:
    RoPEは、シーケンスの長さに依存しないため、モデルが異なるシーケンス長でトレーニングされていても、他のシーケンス長に対しても同様に機能するというスケーラビリティの利点があります。
  3. モデルの一般化能力:
    相対的な位置関係をエンコードするため、RoPEを使用するモデルは、トレーニング中に見たことのないシーケンス長に対しても良好に一般化することができます。
  4. 計算効率:
    RoPEは、計算の複雑さが低く、効率的に実装できます。これは、特に大規模なモデルや長いシーケンスを扱う場合に有利です。

デメリット

  1. 理解と実装の複雑さ:
    RoPEは、従来の絶対位置エンコーディングよりも理解と実装がやや複雑です。特に、回転行列を使用して位置情報をエンコードするため、実装時に注意が必要です。
  2. 特定のタスクでのパフォーマンス:
    すべてのタスクにおいてRoPEが絶対位置エンコーディングよりも優れているわけではありません。特定のタスクやデータセットでは、従来の絶対位置エンコーディングが依然として優れたパフォーマンスを示す場合があります。
  3. 事前学習済みモデルとの互換性:
    既存の事前学習済みモデルが絶対位置エンコーディングを使用している場合、RoPEに置き換えると互換性の問題が生じることがあります。そのため、モデルの再トレーニングが必要になる場合があります。

既存の相対位置エンコーディングのアプローチを調査し、それらが主に位置エンコーディングをコンテキスト表現に追加するというアイデアの分解に基づいて構築されていることを発見しました。私たちは新しい方法、すなわちRotary Position Embedding (RoPE)を導入し、位置情報をPLMSの学習プロセスに活用します。この方法のキーアイデアは、回転行列を用いてコンテキスト表現を相対位置でエンコードすることです。

RoPEの特性を研究し、相対距離が増加するにつれて減衰することを示しました。これは自然言語エンコーディングにおいて望ましい特性です。私たちは、以前の相対位置エンコーディングに基づくアプローチが線形自己注意と互換性がないと主張します。

提案したRoFormerを様々な長文ベンチマークデータセットで評価しました。実験の結果、代替案と比較して一貫して優れた性能を達成することが示されました。事前学習済み言語モデルを用いたいくつかの実験結果はGitHubで公開されています: https://github.com/ZhuiyiTechnology/roformer。

image 相対的な位置情報で読み解くことが出来るような関係式を導くことで、一意なコンテキスト情報を求めることが出来るという趣旨と判断。→これが本論文の狙い
相対位置と、言語の重み関数から一意なコンテキストを読み解くことが出来ることこそ、価値あること。
というのは、現状のトランスフォーマーでは長期の位置関係を見つけることが難しいという課題がある。
それが相対的な位置関係で判明することが出来ることで、長期メモリをより効率的に探し当てることが出来るようになることが期待できる。
内積計算に相対位置情報を組み込むことで、自己注意メカニズムがトークン間の相対的な位置関係を考慮するようになります。←つまり情報としての位置関係が影響することを、よりAIモデルが認識するようになることが期待される。

回転位置埋め込み表現
image

image

PEの追加に比べて、乗法的な手法と言える。
また、RoPEはそれ自体に、相対的な位置情報を含んだ行列であり、自己注意機構に用いた場合に、計算上相対的な位置情報を含めることが出来る。