「LONGNET: Scaling Transformers to 1,000,000,000 Tokens」を読みましたので、まとめしました。
論文:https://arxiv.org/abs/2307.02486
LongNet: 1,000,000,000トークンへのTransformerのスケーリング
マイクロソフトリサーチ
概要
LONGNETは、Transformerを使用してシーケンスの長さを1,000,000,000トークンにスケーリングすることができる手法です。この手法では、距離が増えるにつれて注意領域を指数関数的に拡大するdilated attentionを提案しています。また、LONGNETは計算の複雑さが線形であり、トークン間の依存関係が対数的であるため、非常に長いシーケンスのトレーニングにも適しています。
LONGNETの実験結果は、長いシーケンスモデリングや一般的な言語タスクにおいて優れた性能を示しています。この研究により、コーパス全体やインターネット全体を1つのシーケンスとして扱うなど、非常に長いシーケンスを扱う新たな可能性が開かれました。
利点
LONGNETの利点は以下の通りです:
- 線形の計算複雑性とトークン間の対数的な依存関係を持つため、効率的な処理が可能です。
- 非常に長いシーケンスに対して分散トレーニングが可能です。つまり、大規模なデータセットやトレーニングに時間がかかるタスクでも効率的に処理することができます。
- dilated attentionは標準のattentionの代替として使用でき、既存のTransformerベースの最適化とシームレスに統合することができます。つまり、既存のモデルやトレーニングプロセスを大幅に変更することなく、LONGNETの恩恵を受けることができます。
モデルの設計
LONGNETで使用されるdilated attentionの構成要素は、短距離および長距離の依存関係をモデリングするための一連の注意パターンから成り立っています。注意パターンの数はシーケンスの長さに応じて拡張することができます。
dilated attentionは、入力(Q、K、V)に対する集約操作と出力Oに対する分散操作の間で密な注意(dense attention)に変換することができるため、通常の注意機構の最適化を直接再利用することができます。dilated attentionは計算コストを大幅に削減することができます。
計算の複雑さの比較。ここで、Nはシーケンスの長さであり、dは隠れ次元です。
線形の計算複雑性を活用することで、LONGNETは分散アルゴリズムを用いてノード間でトレーニングを並列化することができます。これにより、計算およびメモリの制約を破り、シーケンスの長さを1Bトークンまで効率的にスケーリングすることが可能となります。この結果、ほぼ一定の実行時間で処理を行うことができます。
まとめ
LONGNETは、Transformerを使用して1,000,000,000トークンまでのシーケンスの長さをスケーリングする手法です。線形の計算複雑性とトークン間の対数的な依存関係を実現し、限られた注意のリソースとすべてのトークンへのアクセス性との矛盾を解消します。LONGNETは、長いシーケンスモデリングや一般的な言語タスクにおいて優れた性能を示し、非常に長いシーケンスを効率的に扱う新たな可能性を開きます。