ハギングフェイスの読書会、2021年2月 – Long-range Transformers
'Hanging Face Book Club, Feb 2021 - Long-range Transformers'
共著者:Teven Le Scao、Patrick Von Platen、Suraj Patil、Yacine Jernite、Victor Sanh
毎月、私たちは特定のトピックに焦点を当て、そのトピックについて最近発表された4つの論文を読みます。それらの研究結果と共通のトレンド、そして読んだ後の追加研究についての質問を短いブログ投稿でまとめます。2021年1月の最初のトピックは「スパース化とプルーニング」であり、2021年2月には「Transformerにおけるロングレンジアテンション」に取り組みました。
イントロダクション
2018年と2019年に大型Transformerモデルが台頭した後、その計算要件を下げるために2つのトレンドが急速に現れました。第一に、条件付き計算、量子化、蒸留、プルーニングにより、計算制約のある環境で大型モデルの推論が可能になりました。私たちは既に前回の読書グループの投稿でこれに触れています。研究コミュニティはその後、事前トレーニングのコストを削減するために動きました。
特に、トランスフォーマーモデルのメモリと時間に関するシーケンス長に対する二次的なコストが問題となっていました。非常に大きなモデルの効率的なトレーニングを可能にするために、2020年には通常のNLPでは512または1024のシーケンス長がデフォルトであった範囲を超えるトランスフォーマーをスケールするための論文が数多く発表されました。
このトピックは私たちの研究討論の中心的な要素であり、私たち自身のPatrick Von PlatenはすでにReformerに4部作を捧げています。この読書グループでは、すべてのアプローチをカバーしようとせずに(アプローチは非常に多いです!)、次の4つの主なアイデアに焦点を当てます:
- カスタムアテンションパターン(Longformerを使用)
- 再帰(Compressive Transformerを使用)
- 低ランク近似(Linformerを使用)
- カーネル近似(Performerを使用)
詳細な視点については、「Efficient Transfomers:サーベイ」と「Long Range Arena」をご覧ください。
要約
Longformer – 長文書Transformer
Iz Beltagy、Matthew E. Peters、Arman Cohan
Longformerは、従来のセルフアテンションをウィンドウ化/局所/スパース(Sparse Transformers(2019)と同様)アテンションとグローバルアテンションの組み合わせに置き換えることで、Transformerのメモリのボトルネックに対処します。従来の長距離トランスフォーマーモデル(Transformer-XL(2019)、Reformer(2020)、Adaptive Attention Span(2019)など)とは異なり、Longformerのセルフアテンション層は標準のセルフアテンションの代替として設計されており、長いシーケンスタスクの事前トレーニングと/または微調整に事前学習済みのチェックポイントを活用することが可能です。
標準のセルフアテンション行列(図a)は入力長に対して二次的にスケーリングされます:
Longformerは、自己回帰言語モデリング、エンコーダの事前トレーニング&ファインチューニング、シーケンス対シーケンスのタスクに対して異なるアテンションパターンを使用します。
- 自己回帰言語モデリングでは、因果性セルフアテンション(GPT2のようなもの)を拡張ウィンドウセルフアテンション(図c)に置き換えることで、最も強力な結果が得られます。シーケンス長を n 、ウィンドウ長を w とすると、このアテンションパターンはメモリ消費量を n 2 から w n に削減します。このアテンションパターンは、w < < n の仮定の下でシーケンス長に対して線形にスケーリングします。
- エンコーダの事前トレーニングでは、双方向セルフアテンション(BERTのようなもの)を局所ウィンドウとグローバル双方向セルフアテンションの組み合わせに置き換えます(図d)。これにより、メモリ消費量が n 2 から w n + g n に削減されます。ここで、g はグローバルに参照されるトークンの数であり、再びシーケンス長に対して線形にスケーリングします。
- シーケンス対シーケンスモデルでは、大部分のシーケンス対シーケンスタスクではエンコーダが非常に大きな入力(例:要約)を処理するため、エンコーダの層だけを局所とグローバルな双方向セルフアテンションの組み合わせで置き換えます(図d)。メモリ消費量は n s 2 + n s n t + n t 2 から w n s + g n s + n s n t + n t 2 に削減されます。ただし、Longformerエンコーダデコーダが効率的であるためには、n s が n t よりもはるかに大きいと仮定されます。
主な結果
- 著者らは、拡張されたウィンドウ付きセルフアテンション(図c)を提案し、ウィンドウ付き/疎なセルフアテンション(図b)と比較して、言語モデリングでより良い結果を示すことを示しました。ウィンドウサイズは層を通じて増加します。このパターンは、従来のアーキテクチャ(Transformer-XLや適応的なスパンアテンションなど)よりも、ダウンストリームのベンチマークで優れたパフォーマンスを発揮します。
- グローバルアテンションは情報を全体のシーケンスに流れるようにすることができ、タスク指向のトークン(例えばQAの質問のトークン、文の分類のためのCLSトークンなど)にグローバルアテンションを適用すると、ダウンストリームのタスクでより強力なパフォーマンスを発揮します。このグローバルなパターンを使用することで、Longformerは転移学習の設定でドキュメントレベルのNLPタスクに成功裏に適用することができます。
- 標準の事前学習モデルは、この論文で提案された長距離セルフアテンションで標準のセルフアテンションを単純に置き換え、ダウンストリームのタスクで微調整することで、長距離の入力に適応することができます。これにより、長距離の入力に特化した高価な事前学習を回避することができます。
フォローアップの質問
- 拡張されたウィンドウ付きセルフアテンションの層を通じて増加するサイズは、積み重ねられたCNNの受容野を増やすというコンピュータビジョンの研究と一致しています。これらの2つの結果はどのように関連していますか?転用可能な学びがあるのでしょうか?
- Longformerのエンコーダーデコーダーアーキテクチャは、長いターゲットの長さを必要としないタスク(例:要約)にはうまく機能します。ただし、エンコーダーデコーダーモデルのクロスアテンションレイヤーを考慮した、長い範囲のseq2seqタスク(例:ドキュメント翻訳、音声認識など)にはどのように機能するのでしょうか?
- スライディングウィンドウのセルフアテンションは、対称なクエリキーウェイト行列を確保するために多くのインデックス操作に依存しています。これらの操作はTPU上では非常に遅いため、そのようなパターンの他のハードウェアへの適用可能性についての疑問が浮かび上がります。
長距離シーケンスモデリングのための圧縮トランスフォーマー
Jack W. Rae、Anna Potapenko、Siddhant M. Jayakumar、Timothy P. Lillicrap
Transformer-XL(2019)は、メモリに事前に計算されたレイヤーアクティベーションをキャッシュすることで、言語モデリングタスク(例:enwik8)のパフォーマンスを向上させることを示しました。現在のn個の入力トークンにだけ注目するのではなく、モデルは過去のn_m個のトークンにも注目することができます(ここで、n_mはモデルのメモリサイズです)。 Transformer-XLのメモリの複雑さはO(n^2+ n n_m)であり、非常に大きなn_mに対してメモリコストが大幅に増加することを示しています。したがって、Transformer-XLは、キャッシュされたアクティベーションの数がn_mを超えると、過去のアクティベーションをメモリから破棄する必要があります。Compressive Transformerは、この問題に対処するために、破棄されるであろう過去のアクティベーションを効率的にキャッシュするための追加の圧縮メモリを追加することで、より良い長距離のシーケンス依存関係を学習することができます。
圧縮率c(図の場合は3)は、過去のアクティベーションが圧縮される速度を決定するために選択されます。著者らは、最大/平均プーリング(パラメータフリー)や1D畳み込み(学習可能な層)などの異なる圧縮関数f_cを試験しています。圧縮関数は、時間を遡ってバックプロパゲーションまたはローカル補助圧縮損失で訓練されます。現在の入力の長さnに加えて、モデルは通常のメモリ内のn_m個のキャッシュされたアクティベーションとn_cm個の圧縮メモリアクティベーションにアテンションを与えるため、l×(n_m + c×n_cm)の長い時間的依存関係を持つことができます(ここで、lはアテンションレイヤーの数です)。これにより、Transformer-XLの範囲は追加のl×c×n_cmトークン拡大され、メモリコストはO(n^2+ n n_m+ n n_cm)になります。実験は、強化学習、音声生成、自然言語処理のタスクで行われます。著者らはまた、PG19という新しい長距離言語モデリングのベンチマークを紹介しています。
主な結果
- Compressive Transformerは、言語モデリングの最先端のperplexityを大幅に上回り、特にenwik8およびWikiText-103のデータセットにおいて、長いシーケンスで発生する希少な単語のモデリングにおいて圧縮メモリが重要な役割を果たしています。
- 著者は、モデルが圧縮メモリに対して通常のメモリよりも増加的にアテンションを向けることで、顕著な情報を保持することを学習することを示しており、古いメモリほど頻繁にアクセスされないという古いトレンドに逆行しています。
- すべての圧縮関数(平均プーリング、最大プーリング、1D畳み込み)は、過去の情報を格納する効果的な方法であることを確認する類似の結果を示しており、圧縮メモリは過去の情報を格納する有効な方法です。
追加の質問
- Compressive Transformerは、効果的なバッチサイズが徐々に増加する特別な最適化スケジュールを必要とします。これにより、低い学習率での性能の劇的な低下を回避することができます。この効果についてはよく理解されておらず、さらなる分析が必要です。
- Compressive Transformerは、BERTやGPT2のようなシンプルなモデルに比べて、多くのハイパーパラメータを持っています。圧縮率、圧縮関数と損失、通常のメモリと圧縮メモリのサイズなどです。これらのパラメータが異なるタスク(言語モデリング以外)や学習率と同様に一般化するかどうか、またトレーニングを非常に脆弱にするかどうかは明確ではありません。
- 長いシーケンスを通じてどのような情報が記憶されているかを分析するために、通常のメモリと圧縮メモリを調査することは興味深いでしょう。最も顕著な情報の明らかにすることは、Funnel Transformerのようなメモリフルトークンレベルシーケンスの冗長性を減らす手法に影響を与えることができます。
Linformer: 線形複雑性を持つセルフアテンション
Sinong Wang, Belinda Z. Li, Madian Khabsa, Han Fang, Hao Ma
この研究の目標は、自己アテンションの計算量をシーケンスの長さ n n n に対して二次から線形に減らすことです。この論文では、アテンション行列が低ランクであること(つまり、n × n n × n n × nの情報を含まないこと)を観察し、高次元データ圧縮技術を使用して、よりメモリ効率の良いトランスフォーマを構築する可能性を探求しています。
提案手法の理論的な基礎は、Johnson-Lindenstraussの補題に基づいています。高次元空間において m m m 個の点を考えます。これらを低次元空間に射影する際に、データセットの構造(つまり、点間の相互距離)を誤差 ε \varepsilon ε で保存することを目指します。Johnson-Lindenstraussの補題によると、単にランダムな直交射影を試すことで、小さな次元 k ∼ 8 log ( m ) / ε 2 k \sim 8 \log(m) / \varepsilon^2 k ∼ 8 lo g ( m ) / ε 2 で Rk への適切な射影を多項式時間で選ぶことができます。
Linformerは、アテンションコンテキスト行列の低ランク分解を学習することにより、シーケンスの長さをより小さな次元に射影します。自己アテンションの行列積は、n × n n × n n × nの行列を計算して保存する必要がないように巧妙に再構成されます。
標準的なトランスフォーマ:
Attention ( Q , K , V ) = softmax ( Q ∗ K ) ∗ V \text{Attention}(Q, K, V) = \text{softmax}(Q * K) * V Attention ( Q , K , V ) = softmax ( Q ∗ K ) ∗ V
(n * h) (n * n) (n * h)
Linformer:
LinAttention ( Q , K , V ) = softmax ( Q ∗ K ∗ W K ) ∗ W V ∗ V \text{LinAttention}(Q, K, V) = \text{softmax}(Q * K * W^K) * W^V * V LinAttention ( Q , K , V ) = softmax ( Q ∗ K ∗ W K ) ∗ W V ∗ V
(n * h) (n * d) (d * n) (n * h)
主な結果
- 自己アテンション行列は低ランクであり、その情報のほとんどは最初のいくつかの最大固有値によって回復され、低ランク行列によって近似することができます。
- 多くの研究は、隠れ状態の次元を削減することに焦点を当てています。この論文では、学習された射影を使用してシーケンスの長さを削減することが、自己アテンションのメモリの複雑性を二次から線形に縮小する強力な代替手法であることを示しています。
- シーケンスの長さを増やしても、Linformerの推論速度(時間クロック)には影響しません。さらに、収束速度(更新回数)もLinformerの自己アテンションには影響を受けません。
追加の質問
- 射影行列はレイヤー間で共有されているにもかかわらず、ここで提示された手法は、ランダム直交射影が十分であると述べているJohnson-Lindenstraussとは対照的です(多項式時間で)。ランダム射影はここで機能したでしょうか?これは、自己注意のメモリの複雑さを減らすためにローカル感度ハッシングでランダム射影を使用するReformerを思い起こさせます。
パフォーマーによる注意の再考
Krzysztof Choromanski、Valerii Likhosherstov、David Dohan、Xingyou Song、Andreea Gane、Tamas Sarlos、Peter Hawkins、Jared Davis、Afroz Mohiuddin、Lukasz Kaiser、David Belanger、Lucy Colwell、Adrian Weller
目標は(再び!)シーケンス長nに関する自己注意の複雑さを2次から線形に減らすことです。他の論文とは異なり、著者たちは、自己注意の疎な性質や低ランク性が他のモダリティ(音声、タンパク質のシーケンスモデリング)には当てはまらないかもしれないと指摘しています。したがって、この論文では、注意行列に対して事前の制約なしで自己注意のメモリ負荷を軽減する方法を探求しています。
著者たちは、行列の積K × Vをソフトマックス( softmax ( Q × K ) × V \text{softmax}(Q × K) × V softmax ( Q × K ) × V )を通して実行できれば、サイズn×nのQ×K行列を計算する必要がなくなることに気付きました。これがメモリのボトルネックです。彼らはランダム特徴マップ(またはランダム射影)を使用して、ソフトマックスを次のように近似します:
softmax ( Q ∗ K ) ∼ Q ’ ∗ K ’ = ϕ ( Q ) ∗ ϕ ( K )
ここで、ϕは非線形の適切な関数です。そして、次のようになります:
Attention ( Q , K , V ) ∼ ϕ ( Q ) ∗ ( ϕ ( K ) ∗ V )
2000年代初頭の機械学習の論文からのインスピレーションを受けて、著者たちはFAVOR+(Fast Attention Via Orthogonal Random positive(+)Features)という手順を紹介しました。これは、自己注意行列のバイアスのないまたはほぼバイアスのない推定値を見つけるためのもので、一様収束と低い推定分散を持っています。
主な結果
- FAVOR+手順は、注意行列の形式に事前の制約がなくても、高い精度で自己注意行列を近似するために使用することができます。これにより、様々な応用とモダリティで強力なパフォーマンスが実現されます。
- ソフトマックスの近似方法についての非常に詳細な数学的研究は、ディープラーニング時代においても2000年代初頭に開発された原則的な手法の関連性を強調しています。
- FAVOR+は、ソフトマックス以外の他のカーネル化可能な注意メカニズムを効率的にモデル化するためにも適用することができます。
追加の質問
- 注意メカニズムの近似が緻密であっても、小さなエラーはトランスフォーマーレイヤーを通じて伝播します。これは、FAVOR+を自己注意の近似として事前学習されたネットワークを微調整する際の収束性と安定性についての疑問を提起します。
- FAVOR+アルゴリズムは複数のコンポーネントの組み合わせです。特にこの研究で考慮された多様なモダリティを考慮すると、これらのコンポーネントの中で最も経験的な影響を持つものは明確ではありません。
読書グループの議論
事前学習済みのトランスフォーマーベースの言語モデルによる自然言語理解と生成の進展は素晴らしいものです。これらのシステムを実用化するために効率的にすることは非常に活発な研究領域となっています。これは、私たちがまだ学び、メソドロジーと実践の両面で効率的で汎用的なディープラーニングベースのシステムを可能にするために多くのことを学び、構築する必要があることを強調しています。特に、長距離入力のモデリングを必要とするアプリケーションにおいて、効率的で一般的なディープラーニングベースのシステムを可能にするために、方法論と実践の両面でさらに多くのことを学び、構築する必要があります。
上記の4つの論文は、自己注意機構の二次メモリの複雑さに対処するさまざまな方法を提案しています。LinformerとLongformerは、自己注意行列がn×nの情報を含んでいないこと(注意行列は低ランクかつ疎である)という観察に基づいています。Performerは、softmax-attentionカーネル(およびsoftmax以外のカーネル化可能な注意機構)を近似する方法を提供します。Compressive Transformerは、再帰に基づいて長距離依存をモデリングするための直交的なアプローチを提供します。
これらの異なる帰納バイアスは、計算速度とトレーニング設定を超えた一般化に関して重要な影響を持ちます。特に、LinformerとLongformerは異なるトレードオフを提供します。Longformerは、自己注意の疎な注意パターン(固定パターン)を明示的に設計する一方、Linformerは自己注意行列の低ランク行列分解を学習します。私たちの実験では、LongformerはLinformerよりも効率が低く、現在は実装の詳細に非常に依存しています。一方、Linformerの分解は、トレーニング時に固定されたコンテキスト長でのみ機能し、特定の適応なしではより長いシーケンスに一般化することはできません。さらに、生成の設定で非常に有用な前のアクティベーションをキャッシュすることはできません。興味深いことに、Performerは概念的に異なります。それは任意の疎性や低ランクの仮定を必要とせずに、softmax注意カーネルを近似することを学習します。これらの帰納バイアスが、トレーニングデータの量の異なる場合において、どのように比較されるかという問題があります。
これらの研究は、自然言語における長距離入力モデリングの重要性を強調しています。産業界では、ドキュメントの翻訳、ドキュメントの分類、ドキュメントの要約など、非常に長いシーケンスを効率的かつ堅牢にモデリングする必要があるユースケースによく遭遇します。最近では、標準のファインチューニングの代わりにゼロショットのプライミング(GPT3のようなもの)が有望な代替手段として登場し、プライミングの例の数(およびそれによってコンテキストのサイズ)を増やすことでパフォーマンスと堅牢性を向上させることができます。最後に、音声やタンパク質モデリングなどの他のモダリティでは、標準の512タイムステップを超える長いシーケンスに遭遇することが一般的です。
長い入力のモデリングは、短い入力のモデリングと対立するものではありません。代わりに、短いシーケンスから長いシーケンスへの連続的な視点から考える必要があります。Shortformer、Longformer、BERTは、モデルを短いシーケンスでトレーニングし、徐々にシーケンスの長さを増やすことで、トレーニングを加速し、ダウンストリームのパフォーマンスを向上させることを示しています。この観察結果は、データが少ない状況で獲得される長距離依存が、堅牢な言語理解ではなく不正確な相関に依存する可能性があるという直感と一致しています。これは、Teven Le Scaoが言語モデリングで実行したいくつかの実験とも一致しており、LSTMはトランスフォーマーよりも少量のデータ領域ではより強力な学習器であり、Penn Treebankなどの小規模な言語モデリングベンチマークにおいてより良いパープレキシティを提供します。
実践的な観点から見ると、位置エンベッディングの問題も計算効率のトレードオフの重要な方法論的側面です。相対的な位置エンベッディング(Transformer-XLで導入され、Compressive Transformersで使用されています)は、まだ見たことのないシーケンスの長さに簡単に拡張できるため魅力的ですが、同時に計算コストもかかります。一方、絶対的な位置エンベッディング(LongformerとLinformerで使用されています)は、トレーニング中に見たより長いシーケンスには柔軟性に欠けますが、計算効率が高いです。興味深いことに、Shortformerは、位置情報をトークンのエンベッディングに追加する代わりに、自己注意機構のクエリとキーに位置情報を追加するというシンプルな代替手法を導入しています。この方法は、位置情報を注入したアテンションと呼ばれ、非常に効率的ながら強力な結果を生み出すことが示されています。
@Hugging Face 🤗:長距離モデリング
Longformerの実装と関連するオープンソースのチェックポイントは、Transformersライブラリとモデルハブを通じて利用可能です。PerformerとBig Bird(疎な注意に基づく長距離モデル)は、現在、モデルへの呼びかけの一環として私たちの取り組みの一環として進行中です。これは、コミュニティを巻き込んでオープンソースの貢献を促進するための取り組みです。もしもあなたがtransformers
にどのように貢献できるか疑問に思ったことがある場合は、ぜひお知らせください!
さらなる読み物として、Patrick PlatenのReformerに関するブログ、Teven Le ScaoのJohnson-Lindenstrauss近似に関する投稿、Efficient Transfomers:A Survey、およびLong Range Arena:A Benchmark for Efficient Transformersをご覧いただくことをおすすめします。
来月は、自己学習の方法と応用について取り上げます。3月にお会いしましょう!
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles