ディープラーニング分野は、人気のあるモデルと人気のないモデルが結構分かれますね。今回はLLMなので人気がありそうです。
今回からいろんな記事を読んでると大変なのでよさそうな記事だけに絞って紹介します。
言語生成モデルを“10億トークン”に拡張できる手法「LongNet」 Microsoftが発表
https://www.techno-edge.net/article/2023/07/10/1567.html
「コンテキスト(プロンプト)を単語や文字、句読点、数字、記号などのパーツに小分けしたものを指すトークンは、大規模言語モデル(LLM)においてコンテキストを理解する上で重要な役割を果たします。しかし、既存のLLMはChatGPT(GPT-4)でも約3万トークン程度であり、最新のモデルでも数百万トークン程度に制限されています。なぜなら、これらのTransformerベースのモデルは、Attention機能により全てのトークン同士の関係を考慮し出力を生成するため、トークン数が増えると計算コストが高くなる弱点があるからです。」
「LongNetでは、この問題を解決するために「Dilated Attention」という新しいコンポーネントを導入しました。このアプローチにより、LongNetは計算コストを大幅に抑えたまま10億トークンの大きなシーケンスを処理できる効率的なスケールアップを実現しました。」
これだけでも大体概要が分かりますね。
次の記事です。
LONGNET:10億トークンまでのテキストを処理できるモデル
https://ai-scholar.tech/articles/transformer/longnet
元の論文はこちらのようです。
LongNet: Scaling Transformers to 1,000,000,000 Tokens
Jiayu Ding, Shuming Ma, Li Dong, Xingxing Zhang, Shaohan Huang, Wenhui Wang, Nanning Zheng, Furu Wei
https://arxiv.org/abs/2307.02486
メリットについて言及があります。
「シーケンス長の増大に伴って得られるメリット
シーケンス長はニューラルネットワークの基本的なコンポーネントであり,無制限に大きいことが望ましいと一般に考えられています。また、シーケンス長を長くすることで得られるメリットが3つあります。
- モデルが文脈を広く取り込むことができ,遠くの情報を用いて現在のトークンをより正確に予測することが可能となります。これは、話し言葉の途中から話を理解したり,長い文書の理解などに役立ちます。
- 訓練データ内のより複雑な因果関係や推論過程を含んで学習することができます。(論文中では、短い依存関係は一般的に悪影響を及ぼしやすいようです.)
- 長いコンテキストを理解できるようになり、コンテキストをフルに活用して言語モデルの出力を改善することができます。」
計算量に関して言及があります。
「Transfomerの計算量はシーケンス長に対して2次関数的増加していきます.これに対し,本論文で提案されている,Dilated Attentionは線型に計算量が増加します」
Dilated Attentionについて(Dilated:横に広がった、拡張した)
本文の特徴である新しい仕組みについて解説をしています。
並列計算について
「計算資源とメモリの制約により単一のGPU上でシーケンス長を100万オーダーにスケールすることは不可能です.そこで,モデルの並列化処理や,シーケンス処理,パイプライン処理などの大規模モデル訓練用の分散訓練アルゴリズムが提案」
次です。
【DL輪読会】LongNet: Scaling Transformers to 1,000,000,000 Tokens
https://www.docswell.com/s/DeepLearning2023/ZJLW1Q-2023-09-01-163030
かなり詳しく説明されていました。
そもそもこの論文を読むにはDilated Attentionを理解するのに、Sparse Attentionを理解する必要がありました。
次の記事がありました。この辺りはまた別の機会で勉強会を開催したいと思います。
Sparse Attentionについて分かりやすく解説!
https://developers.agirobots.com/jp/sparse-attention/
「Attention Matrixは、入力テキストの各単語(またはトークン)が他のすべての単語とどの程度関連しているかを示すため、入力テキストの長さに応じて二乗で大きくなります。入力シーケンスが𝑛個のトークンからなる場合、Attention Matrixは𝑛×𝑛のサイズとなり、長いテキストを扱う際に計算量とメモリ使用量が大きくなるという問題を引き起こします。」
「Sparse Attentionは、Attention MatrixをスパースにすることでAttentionの計算の効率化を実現する手法です。」
さらにここで分からない単語が出ました。Attention Matrixについてです。
「Scaled Dot-Product AttentionのQueryとKeyの内積を行うMutMulで生成された行列は、スケール処理、マスク処理、softmax関数の適用が行われます。この行列を、Attention Matrixといいます。」
QueryとKeyの内積でnxnの行列が作られますが、この辺りをAttention Matrixと呼び、これをsparseにしたのがSparse Attentionで、さらにそれをSegment LengthとDilated Rateという変数で分割したのが今回のDilated Attentionのようです。
順番に学ぶ時間は今回ないので、今後この辺りAttentionの仕組みに立ち返った時に見てみたいと思いますが、大きなトークンに拡張できる仕組みはだいたいわかりました。さらに分散並列処理などを入れて10億トークンという感じでしょうか。今回はこの辺りにしたいと思います。