YaRN: より長いコンテキストを推論して SOTA に到達するための効率的な RoPE 拡張メソッド

69dde5f9c6bc90a06851884619062894.png

ディープラーニング自然言語処理 原
著者: qazw

論文: YaRN: 大規模言語モデルの効率的なコンテキスト ウィンドウ拡張
アドレス: https://arxiv.org/abs/2309.00071
コード: https://github.com/jquesnelle/yarn

NLP グループに入る -> NLP 交換グループに参加する

まとめ

Rotated Positional Encoding (RoPE) は、Transformer ベースの言語モデルで位置情報をエンコードするのに効果的であることが示されています。ただし、これらのモデルは、トレーニングされたシーケンスの長さを超えて一般化することはできません。我々は、このようなモデルのコンテキスト ウィンドウを拡張する計算効率の高い手法である YaRN (別の RoPE 拡張手法) を提案します。必要なトークンは 10 分の 1、トレーニング ステップは 2.5 分の 1 です。YaRN を使用して、LLaMA モデルが元の事前トレーニングで許可されているよりもはるかに長いコンテキスト長を効果的に活用して推論し、コンテキスト ウィンドウ拡張で最先端のパフォーマンスを達成できることを示します。さらに、YaRN が、微調整されたデータセットの限られたコンテキストを超越する能力を示すことを実証します。

背景知識

回転位置エンコーディング

9e6c53cd966e70ee5e68491c98e3f2b7.png

位置補間

20207c63c26535cd079ba2487479418a.png

追加のシンボル

30cd7b4a9ed3beb66c0ed33cf08bac5c.png

方法

ただし、PI はすべての RoPE 次元で均等なストレッチを実現しますが、PI によって記述される理論的な内挿限界は、RoPE と LLM の内部埋め込みの間の複雑なダイナミクスを予測するのに十分な精度ではないことがわかります。以下のサブセクションでは、完全な YaRN メソッドを取得するための各メソッドの背景、起源、理論的根拠を読者に提供するために、PI で発見し、これらの問題を解決した主な問題を個別に説明します。

高周波情報損失 - 「NTK 対応」補間

RoPE 埋め込みを補間するときに高周波情報が失われるという問題を解決するために、「NTK 対応」補間が [4] で開発されました。同じ係数 s を掛ける場合と比較して、高周波が小さくなり、低周波が大きくなるように、複数の次元にわたってスケーリングすることによって補間ストレスを分散します。このような変換はさまざまな方法で取得できますが、最も簡単なのは、θ の値に対して基底変換を実行することです。最低周波数のスケーリングを線形位置スケーリングと可能な限り一致させ、最高周波数を変更しないようにしたいため、最後の次元がスケーリングによる線形補間の波長と一致するような新しい基底 b' を見つける必要があります。係数 s. 元の RoPE メソッドは、cos(2πx/λ) コンポーネントと sin(2πx/λ) コンポーネントを 1 つの埋め込みに連結するために奇数次元をスキップするため、最後の次元 d ∈ D は |D|−2 となり、次の値を求めます。 b' 以下の通り:882702cb6d31822c042a4f6e4a1c8c3a.pngシンボリック表記によれば、「NTK 対応」補間スキームは単に基底変換式を適用するだけです。つまり:7c2e261a85567d5a91b16e7e65a97531.pngテストでは、この方法は、微調整されていないコンテキスト サイズの拡張において PI 方法よりも優れたパフォーマンスを示しました。モデルも良好です。ただし、このアプローチの大きな欠点は、これが単なる補間スキームではないため、一部の次元が「範囲外」の値にわずかに外挿するため、「NTK 対応」補間を使用して微調整すると、PI よりも良い結果が得られることです。方法はさらに悪いです。さらに、理論上のスケーリング係数 s は、「範囲外」の値のため、実際のコンテキスト拡張率を正確に表しません。実際には、コンテキストの長さを一定に拡張する場合、スケーリング値 s は、予想されるスケーリング値よりも大きく設定する必要があります。

相対的なローカル距離の損失 - 「NTK-by-parts」補間

RoPE 埋め込みの興味深い観察は、コンテキスト サイズ L が与えられた場合、一部の次元 d では波長が事前トレーニング中に観察された最大コンテキスト長よりも長く (λ > L)、いくつかの次元の埋め込みが次のようなものである可能性があることを示唆しています。回転領域 分布は不均一です。PI および「NTK 対応」補間の場合、すべての RoPE 隠れ次元を同等として扱います。ただし、実験により、ネットワークは一部の次元では他の次元とは異なる動作をすることが示されています。前に述べたように、コンテキスト長 L が与えられると、いくつかの次元の波長 λ は L 以上になります。隠れ次元の波長が L 以上の場合、すべての位置ペアが一意の距離をエンコードすることを考慮すると、絶対的な位置情報が保存されると仮定しますが、波長が短い場合、ネットワークは相対的な位置情報しか取得できません。スケーリング係数 s または基本変換 b' を使用してすべての RoPE 次元を引き伸ばすと、2 つのベクトルの内積が回転角度が小さいほど大きくなるため、すべてのマーカーが互いに近づきます。このスケーリングは、LLM の内部埋め込み間の小規模で局所的な関係を理解する能力に重大な影響を与えます。この圧縮により、密集したマーカーの位置順序についてモデルが混乱し、それによってモデルの機能が損なわれるという仮説が立てられています。この問題を解決するために、私たちの観察に基づいて、高周波次元をまったく補間しないことにしました。

必要な次元 d を決定するには、特定のコンテキスト長 L が与えられると、式 (14) を次のように拡張できます。a21149d55e5629180950be6592254996.png

また、r < α であるすべての次元 d については、スケール s を線形補間する (À と同様に、外挿を回避する) 一方で、次元 d r > β については補間は実行されない (外挿は常に実行される) ことも提案します。push)。傾き関数 γd を次のように定義します。ec97d35bd80c296cacbc9afbeafe176c.png

ランプ関数を利用して、新しい波長を次のように定義します。3120886aefbd04836b7343d66dc304bc.png

αとβの値は、特定の状況に応じて調整する必要があります。たとえば、ラマ モデル ファミリの場合、α と β の適切な値は α = 1 および β = 32 であることが実験的に証明されています。λd を θd に変換すると、この方法は次のように説明できます。573fc569f6ceb02e6ae7ef899a0ccb20.png

このセクションで説明する手法を使用して、「NTK-by-parts」補間と呼ばれる改良された手法をリリースします。この改良された方法は、未調整モデルと微調整モデルの両方で、以前の PI および「NTK 対応」内挿方法よりも優れたパフォーマンスを発揮します。この方法では、回転領域内で不均一な分布を持つ次元への外挿が回避されるため、以前の方法で発生したすべての微調整の問題が回避されます。

動的スケーリング - 「動的 NTK」補間

RoPE 内挿法を使用して微調整せずにコンテキスト サイズを拡張する場合、必要よりも高い比率 s を設定すると、コンテキスト サイズ全体で完全に劣化するのではなく、コンテキスト サイズが長くなるとモデルが徐々に劣化することが予想されます。76a8730eec10fc52b36de0406858250e.pngs = L'/L が PI の比率を表すことを思い出してください。L はトレーニングされたコンテキストの長さ、L' は新しく拡張されたコンテキストの長さです。「動的 NTK」アプローチでは、次のように比率 s を動的に計算します。、スケールを動的に変更することで、コンテキスト サイズがトレーニング コンテキスト制限 L を超えたときにすぐに失敗するのではなく、すべてのモデルがスムーズに機能を低下させることができます。

一部の実装では RoPE 埋め込みがキャッシュされるため、動的スケーリングと KV キャッシュを使用する場合は注意が必要です。s が変更されると各タグの RoPE 埋め込みも変更されるため、正しい実装では RoPE を適用する前に kv 埋め込みをキャッシュする必要があります。

長距離平均最小コサイン類似度の増加 - YaRN

前述した局所的な距離の問題を解決したとしても、外挿を避けるために、より長い距離はしきい値 α で補間する必要があります。直感的には、グローバル距離ではトークンの位置を区別するために高い精度が必要ないため、これは問題ではないようです。ただし、トークンの数が増加するにつれて平均最小距離が 4 に近づくため、注目のソフトマックス分布が「シャープ」になる (つまり、注目のソフトマックスの平均エントロピーが減少する) ことがわかります。言い換えれば、長距離減衰の効果は補間により弱まるため、ネットワークはより多くのトークンに「より注意を払う」ことになります。この分布のシフトにより、LLM の出力が低下しますが、これは前の質問とは関係ありません。

RoPE 埋め込みをより長いコンテキスト サイズに補間すると、アテンション ソフトマックス分布のエントロピーが減少するため、反対方向 (つまり、アテンション ロジットの「温度」の上昇) でエントロピーを減少させることを目指します。これは、中間アテンション行列に 1 より大きい温度 t を乗じてからソフトマックスを適用することで実現できますが、RoPE 埋め込みは回転行列としてエンコードされるため、RoPE 埋め込みの長さを定数係数 √t で簡単に調整できます。 。この「長さのスケーリング」トリックにより、アテンション コードへの変更を回避できるため、既存のトレーニングおよび推論パイプラインとの統合が大幅に簡素化され、時間計算量は O(1) になります。

RoPE 補間スキームは RoPE 寸法を不均一に補間するため、スケール s に対する温度スケール t の必要な解析解を計算することが困難です。幸いなことに、混乱を最小限に抑える実験を通じて、すべての Llama モデルがほぼ同じフィッティング曲線に従っていることがわかりました。01605ea1b09b05baa93b37f929f9c073.png

上の方程式は、3.2 で説明した内挿法を使用して、LLaMA 7b、13b、33b、および 65b モデルのスケーリング係数 s にパープレキシティが最も低い √t のペアを当てはめることによって得られます。また、この方程式は Llama 2 モデル (7b、13b、および 70b) にも当てはまりますが、わずかな違いがあることがわかります。これは、エントロピー増加のこの特性が一般的であり、さまざまなモデルやトレーニング データにわたって一般化可能であることを示しています。

外挿と転移学習

Code Llama では、16k コンテキストのデータセットが使用され、スケーリング係数は s≈88.6 に設定されます。これは、355k のコンテキスト サイズに対応します。これらは、ネットワークがトレーニング中にこれらのコンテキスト サイズを確認することなく、最大 100k のコンテキストを推論できることを示しています。YaRN は、データセットの長さよりも高いスケール係数 s でのトレーニングもサポートします。計算上の制約のため、s=32 のみをテストし、64k コンテキストを含む同じデータセットに対して 200 ステップの微調整を実行することで s=16 モデルをさらに微調整します。

s=32 モデルは、64k コンテキストのみを使用してトレーニング中に 128k コンテキストを正常に推論できることを示します。以前の「ブラインド」内挿法とは異なり、YaRN の転移学習は、スケーリング係数 s を増やすとより効率的になります。これは、ネットワークが挿入された埋め込みを再学習する必要がなく、s=16 から s=32 への転移学習が成功したことを示しています。これは、s=32 モデルは、s=32 200 でのみではあるものの、コンテキスト サイズ全体にわたって s=16 モデルと同等であるためです。トレーニングのステップが実行されました。

評価する

ロングシーケンス言語モデリング

長いシーケンス言語モデリングのパフォーマンスを評価するために、GovReport と Proof-pile データセットを使用しました。どちらにも多くの長いシーケンス サンプルが含まれています。すべての評価において、計算にはこれら 2 つのデータセットのテスト セットのみを使用しました。すべてのパープレキシティ推定値は、 からのスライディング ウィンドウ法を使用して、S=256 で計算されます。

まず、コンテキスト ウィンドウが増加するにつれてモデルのパフォーマンスを評価します。少なくとも 128k マーカー長を持つ Proof-pile から 10 個のランダム サンプルを選択し、2k マーカーから 128k マーカーまでのシーケンス長で各サンプルの最初の 2k ステップを切り捨て、各サンプルの混乱度を評価しました。図 1 は、他のコンテキスト ウィンドウ拡張方法と比較した結果を示しています。特に、Togetter.ai の公開されている 32k PI モデルおよび「NTK 対応」Code Llama と比較します。これらの結果を表 1 にまとめます。b60cc4fae9e7a5cd6085f456a010bcf3.pngbbfe769ea0dd5506aca41dc5e96fb32f.png

表 2 は、32k コンテキスト ウィンドウの下で少なくとも 16k トークンを含む 50 個の無検閲の GovReport ドキュメントで評価された最終的な複雑さを示しています。

このモデルはコンテキスト ウィンドウ全体で良好なパフォーマンスを示し、他のすべてのコンテキスト ウィンドウ拡張方法よりも優れていることがわかります。特に注目すべきは、YaRN (s=32) モデルです。これは、微調整データが長さ 64k のトークンに限定されているにもかかわらず、128k でパープレキシティの低下を示し続けています。これは、モデルが目に見えないコンテキストの長さまで一般化できることを示しています。3e2bd341135ef8bcc027e4c2a5be383a.png

標準化されたベンチマーク

Hugging Face Open LLM ランキングでは、4 つの公開ベンチマークでさまざまな LLM モデルを比較します。具体的には、25 ショットの ARC-Challenge [9]、10 ショットの HellaSwag、5 ショットの MMLU、および 0 ショットのTruthfulQA があります。

コンテキスト拡張下でモデルのパフォーマンスがどのように低下​​するかをテストするために、このテスト スイートを使用してモデルを評価し、Llama 2 ベンチマーク モデルおよび公開されている PI および「NTK 対応」モデルの確立されたスコアと比較しました。比較結果は表にまとめられています。 3.d0e3104c0fa2751cde47c042f4641cd5.png

YaRN モデルとそれに対応する Llama 2 ベースラインの間では、最小限のパフォーマンス低下が観察されます。また、YaRN s=16 モデルと s=32 モデルの間で平均スコアが 0.49% 減少していることも観察されます。したがって、64k から 128k への反復拡張によって生じるパフォーマンスの損失は無視できるものであると結論付けます。

要約する

要約すると、YaRN は既存のすべての RoPE 補間方法を改良しており、欠点なく PI の代替として機能し、実装にほとんど労力を必要としないことを示します。微調整されたモデルは、複数のベンチマークにわたって元の機能を維持しながら、非常に広範囲のコンテキストに焦点を当てることができます。さらに、短いデータセットで微調整された YaRN により、効率的な外挿が可能になり、転移学習を活用してより高速な収束を達成できます。これは、計算に制約のある状況では重要です。最後に、YaRN が「短時間でトレーニングし、長時間テスト」できる外挿の有効性を示します。


NLP グループに入る -> NLP 交換グループに参加する

おすすめ

転載: blog.csdn.net/qq_27590277/article/details/132750213