この記事では意図的に時間の複雑さについてのみ説明します。
空間計算量については、次の場所にある 1 ビット トランスフォーマーに関する私の記事を参照してください。
生成 AI 技術に関しては、私たちは未来に向かって突き進んでいます。大規模言語モデルの背後にあるアルゴリズムも例外ではありません。この記事では、生成 AI の分野で最近最もエキサイティングな開発を 3 つ取り上げ、詳細に説明します。そのうちの 1 つは、大規模言語モデル アルゴリズムを実行するための最適な時間計算量も達成しました。言い換えると、最近の開発は、可能な限り最適で最速の LLM トランスフォーマー アルゴリズムになりました。現在のモデルでは、漸近的時間計算量に関して、定数時間の最適化を除いて、これより高速化することはできません。数千億のパラメーターを扱っているため、定数の高速化はかなり大きくなります。これはエキサイティングな旅になるので、私と同じように皆さんも興奮してくれることを願っています。
2017 年の画期的な論文「Attention is all you need」は誰もがよく知っていますが、ここで要約して、初心者の皆さんに私たちが何について話しているのかをより明確に理解していただきたいと思います。
研究論文へのリンクは次のとおりです:
論文の紹介より:
リカレント ニューラル ネットワーク、特に長期短期記憶およびゲート リカレント ニューラル ネットワークは、言語モデル化や機械翻訳などのシーケンス モデリングおよび変換問題における最先端のアプローチとして確立されています。
それ以来、再帰型言語モデルとエンコーダー/デコーダー アーキテクチャの限界を押し広げるための数多くの取り組みが続けられてきました。
リカレント モデルでは通常、入力シーケンスと出力シーケンスのシンボル位置に沿って計算が行われます。
位置を計算時間のステップに合わせると、前の隠し状態ℎ𝑡−1と位置𝑡の入力の関数として、隠し状態ℎ𝑡のシーケンスが生成されます。
この本質的に順次的な性質により、トレーニング例内での並列化が不可能になります。これは、メモリ制約によって例全体のバッチ処理が制限されるため、シーケンスの長さが長くなると重要になります。
最近の研究では、因数分解のトリックと条件付き計算によって計算効率が大幅に向上し、条件付き計算の場合のモデルのパフォーマンスも向上しました。
ただし、順次計算の基本的な制約は残ります。
注意メカニズムは、さまざまなタスクにおける強力なシーケンス モデリングおよび変換モデルの不可欠な部分となり、入力シーケンスまたは出力シーケンス内の距離に関係なく依存関係をモデリングできるようになりました。
ただし、ごく一部の例外を除き、このような注意メカニズムは再帰型ネットワークと組み合わせて使用されます。
この研究では、再帰を避け、代わりに入力と出力の間のグローバルな依存関係を描画するために注意メカニズムに完全に依存するモデル アーキテクチャである Transformer を提案します。
Transformer は、8 つの P100 GPU でわずか 12 時間のトレーニングを行うだけで、大幅な並列化を可能にし、翻訳品質の新たな最高水準に到達できます。
そしてご存知のとおり、GPT-1、GPT-2、GPT-3、GPT 3.5 トランスフォーマーは、生成 AI に永遠の革命をもたらしました。
突然、機械が人間の英語を話せるようになった。
これは、その後 2 年間にわたって記事や研究ニュース速報で主に取り上げられた典型的な図表です。
その後、GPT-4 が登場し、生活は以前とは全く違ったものになりました。
我々は転換点を越えてしまった。
しかし、これらの変圧器は高価で、訓練に時間がかかり、運用コストが非常に高いため導入が困難でした。
Transformer アルゴリズムの時間計算量は 2 次、つまりO(n*n) でした。ここで、n は入力パラメータの数です。
𝐿 層の標準的なトランスフォーマーモデルの場合、推論アルゴリズムの時間計算量は 𝑂( L*n*n*d ) です。ここで、L は層の数、n は入力トークンの数、d はトランスフォーマーの深さです。
しばらくの間、これが最先端の技術であるように思われました。
量子化は早くも 2021 年に別の論文で導入され、それが次なる最先端のメカニズムとなると思われます ( 「序文」セクションを参照)。
しかし、すぐに別の競争相手が現れました。
関連する研究論文は次のとおりです。
Mamba: 選択的状態空間による線形時間シーケンスモデリング
研究論文の要約より:
現在、ディープラーニングのエキサイティングなアプリケーションのほとんどを支えている基礎モデルは、ほぼ例外なく、Transformer アーキテクチャとそのコア アテンション モジュールに基づいています。
長いシーケンスに対する Transformer の計算効率の悪さを解決するために、線形注意、ゲート畳み込みおよび再帰モデル、構造化状態空間モデル (SSM) などの多くのサブ 2 次時間アーキテクチャが開発されてきましたが、言語などの重要なモダリティに対する注意ほど優れたパフォーマンスを発揮していません。
私たちは、このようなモデルの主な弱点はコンテンツベースの推論を実行できないことだと認識し、いくつかの改善を行いました。
まず、SSM パラメータを入力の関数にするだけで、離散的なモダリティによる弱点に対処し、モデルが現在のトークンに応じてシーケンス長の次元に沿って情報を選択的に伝播したり忘れたりできるようになります。
第二に、この変更により効率的な畳み込みが使用できなくなりますが、再帰モードでハードウェア対応の並列アルゴリズムを設計します。
私たちは、これらの選択的 SSM を、注意や MLP ブロック (Mamba) なしで、簡素化されたエンドツーエンドのニューラル ネットワーク アーキテクチャに統合します。
Mamba は高速な推論 (Transformer より 5 倍高いスループット) とシーケンス長の線形スケーリングを誇り、最大 100 万長のシーケンスまでの実際のデータでパフォーマンスが向上します。
一般的なシーケンス モデル バックボーンとして、Mamba は言語、オーディオ、ゲノミクスなどのさまざまなモダリティにわたって最先端のパフォーマンスを実現します。
言語モデリングでは、当社の Mamba-3B モデルは、事前トレーニングと下流評価の両方で、同じサイズのトランスフォーマーよりも優れており、2 倍のサイズのトランスフォーマーに匹敵します。
突然
突然、町に新たな競争相手が現れました!
Mamba トランスフォーマー アルゴリズムの主な利点は次のとおりです。
ハイブリッドアーキテクチャ:
Mamba は Transformer と Mamba レイヤーを組み合わせ、管理可能なメモリ フットプリントを維持しながらパフォーマンスとスループットを向上させました。
取り組む課題:
メモリと計算効率: Mamba は、特に長いコンテキストの場合の Transformer の高いメモリと計算要件に対処しました。
サマリー状態: Transformers とは異なり、Mamba は単一のサマリー状態を提供し、より高速な推論を可能にします。
アーキテクチャの詳細:
パフォーマンス:
Mamba は、最大 256K トークンのコンテキスト長をサポートしながら、Mixtral-8x7B や Llama-2 70B などの既存のモデルと同等のパフォーマンスを発揮しました。
効率: 長いコンテキストの場合、Mamba のスループットは Mixtral-8x7B の 3 倍であり、大きなコンテキストでも単一の GPU に収まりました。
Mamba アーキテクチャは、Transformer と SSM アプローチの両方の長所を組み合わせた、大規模言語モデルにおける大きな進歩を表しています。
しかし、テストを続けるうちに、Mamba アルゴリズムはすべてのユースケースに適しているわけではないことが判明しました。
特に、Mamba アルゴリズムは、IMDB データセットを提示されたときに惨めに失敗しました。
しかし、そのアーキテクチャは依然として最先端であり、ビジョンのユースケースでは非常に有用であることがわかりました。
Python での実装はここで確認できます:
これは、理論も提供された Mamba アルゴリズムの優れた説明です。
PyPI の標準 Mamba 実装は次のとおりです。
Mamba アルゴリズムは一時代を終えましたが、現在でも非常に活発に研究されている分野です。後継アルゴリズムもすぐに登場しましたが、最後に最も優れたアルゴリズムを紹介します。
次の候補であるxLSTMアルゴリズムに移ります。
研究論文はここで参照できます:
研究論文の要約より:
1990 年代には、一定エラー カルーセルとゲーティングが Long Short-Term Memory (LSTM) の中心的なアイデアとして導入されました。
それ以来、LSTM は時の試練に耐え、数多くのディープラーニングの成功事例に貢献し、特に最初の大規模言語モデル (LLM) を構成しました。
しかし、並列化可能な自己注意を中核とする Transformer テクノロジーの登場により、LSTM を大規模に凌駕する新しい時代の幕開けとなりました。
ここで、単純な疑問が浮かび上がります。LSTM を数十億のパラメータに拡張し、最新の LLM 技術を活用しながら、LSTM の既知の制限を軽減すると、言語モデリングはどこまで進むことができるでしょうか。
まず、適切な正規化および安定化技術を使用した指数ゲーティングを紹介します。
次に、LSTM メモリ構造を変更して、次の結果を得ます。
(i) スカラーメモリ、スカラー更新、および新しいメモリ混合を備えたsLSTM、
(ii) 行列メモリと共分散更新規則を備えた完全に並列化可能なmLSTM。
これらの LSTM 拡張を残差ブロック バックボーンに統合すると、xLSTM ブロックが生成され、それが残差的に xLSTM アーキテクチャにスタックされます。
指数ゲーティングと修正されたメモリ構造により、xLSTM の機能が向上し、最先端のトランスフォーマーや状態空間モデルと比較して、パフォーマンスとスケーリングの両方で優れたパフォーマンスを発揮します。
Long Short-Term Memory (LSTM) アルゴリズムは当時非常に有用であり、かなりの成功を収めました。
xLSTM は同じモデルを使用しましたが、アーキテクチャはまったく異なります。
これが主な革新であり、研究論文のこの図にまとめられています。
xLSTM の主な利点は次のとおりです。
長いシーケンスの処理:
xLSTM は、情報の流れを制御するゲーティング メカニズムを使用して、長いシーケンスを処理するように特別に設計されました。これにより、従来の LSTM と比較して、シーケンシャル データの長期的な依存関係をより効果的にキャプチャできるようになりました。
計算効率:
xLSTM は、特に小さなデータセットを扱う場合やシーケンスの長さがそれほど大きくない場合に、特定のタスクに対してより計算効率が高くなる可能性があります。
一方、トランスフォーマーは、シーケンスの長さに比例して増加する自己注意メカニズムのために、多大な計算リソースを必要としました。
メモリ使用量:
xLSTM は一般に、Transformers よりもメモリをあまり必要としません。
Transformers の自己注意メカニズムでは、大きな注意行列を保存する必要があり、特に長いシーケンスの場合はメモリを大量に消費する可能性があります。
トレーニングの安定性:
xLSTM は、その再帰的な性質と、勾配消失の問題を軽減するのに役立つゲーティング メカニズムにより、トレーニング中により安定する可能性があります。
トランスフォーマーは強力ですが、トレーニングが難しい場合があり、ハイパーパラメータと正規化手法の慎重な調整が必要になる可能性があります。
シンプルさと解釈可能性:
xLSTM モデルは、Transformer と比較すると理解と解釈が簡単になる可能性があります。
LSTM の再帰的な性質により、ネットワークを介した情報の流れを追跡することが容易になりましたが、Transformer の注意メカニズムはより抽象的で、解釈が困難になる可能性があります。
小規模データセットでのパフォーマンス:
xLSTM は、データセットが小さい場合やラベル付けされたデータが限られている場合に、より優れたパフォーマンスを発揮する可能性があります。
トランスフォーマーは、その潜在能力を最大限に発揮するために通常大量のデータを必要とするため、データの可用性が限られているシナリオではxLSTMの方が適しています。
。
シーケンシャルデータ:
時系列や特定の種類の自然言語処理タスクなどの特定の種類のシーケンシャル データの場合、シーケンスを処理するための固有の設計により、xLSTM の方が優れたパフォーマンスを発揮する可能性があります。
ただし、Transformer には、優れた並列化機能、大規模なデータセットでの優れたパフォーマンス、多くの NLP タスクにおける最先端の結果など、独自の利点があることに注意することが重要です。
xLSTM と Transformer の選択は、現在のタスクの特定の要件と制約に基づいて行う必要があります。
PyTorch での xLSTM の実装はここで確認できます:
xLSTM の詳細な説明は、こちらをご覧ください:
現在の状況を次のようにまとめることができます。
しかし、Mambaの後継機は聖杯を達成しました。それは、LLMアルゴリズムの最適時間計算量です。
研究論文はここからご覧いただけます:
Jamba: トランスフォーマーとマンバのハイブリッド言語モデル
研究論文の要約より:
我々は、新しいハイブリッド Transformer-Mamba 専門家混合 (MoE) アーキテクチャに基づく新しい基本大規模言語モデルである Jamba を紹介します。
具体的には、Jamba は Transformer レイヤーと Mamba レイヤーのブロックをインターリーブし、両方のモデル ファミリの利点を活用します。
アクティブなパラメータの使用を管理可能な状態に保ちながらモデル容量を増やすために、これらのレイヤーの一部に MoE が追加されています。
この柔軟なアーキテクチャにより、リソースおよび目的に応じた構成が可能になります。
私たちが実装した特定の構成では、単一の 80 GB GPU に収まる強力なモデルが実現します。
大規模に構築された Jamba は、バニラ Transformer と比較して高いスループットと小さなメモリ フットプリントを提供すると同時に、標準言語モデル ベンチマークと長期コンテキスト評価で最先端のパフォーマンスを実現します。
注目すべきことに、このモデルは最大 256K トークンのコンテキスト長に対して強力な結果を示しています。
Transformer と Mamba レイヤーを組み合わせる方法や、エキスパートを混合する方法など、さまざまなアーキテクチャ上の決定を検討し、それらのいくつかが大規模モデリングにおいて非常に重要であることを示します。
また、Jamba のトレーニングと評価によって明らかになったこれらのアーキテクチャの興味深い特性についてもいくつか説明し、この新しいアーキテクチャのさらなる調査を促進するために、さまざまなアブレーション実行からのチェックポイントをリリースする予定です。
私たちは、Jamba の実装の重みを、許容ライセンスの下で公開しています。
この実装は、HuggingFace リポジトリで入手できます。
モデル: https://huggingface.co/ai21labs/Jamba-v0.1
他のモデルとの比較:
さまざまなベンチマークで評価した結果、Jamba はMistral-8x7B 、 Llama-2 70B 、 Mixtral-8x7Bなどの他の最先端モデルと同等のパフォーマンスを示しました。
特に、Jambaは最大256Kトークンのコンテキスト長をサポートしており、これは公開されているモデルの中で最長である。
Hellaswag 、 Arc Challenge 、 PIQAなどのタスクでは、Jamba はLlama 2 、 Mixtral 8x7B 、 Gemma などのモデルよりも優れたパフォーマンスを発揮します。
要約すると、Jamba のハイブリッド アーキテクチャは、Transformer と Mamba レイヤーの長所を組み合わせ、優れたパフォーマンスとスケーラビリティを実現します。
覚えておくべき重要な図は、上記の研究論文に示されているものです。
Mamba モデルと Transformer モデルのインターリーブにより、時間計算量が驚くほど増加します。これは以下の記事でわかりやすくまとめられています。
著者: ニムリタ・コール
日付: 2024年4月1日
まとめ:
Jamba は、AI21 によって導入された最初の製品グレードの Mamba ベースの大規模言語モデルです。
Transformer と Mamba アーキテクチャの両方の長所を組み合わせています。
Transformerベースのモデルは、トレーニング時間の複雑度がO(n²)であるため、長いシーケンスの処理が困難です。
Mambaアーキテクチャは、線形のトレーニング時間計算量( O(n) )と一定の推論時間( O(1) )を提供します。
Mamba は状態空間モデル (SSM) アーキテクチャに基づいています。
SSM は状態変数を使用して、微分方程式または差分方程式を使用してシステムを記述します。
Mamba のハイブリッド アプローチは、既存のモデルの制限に対処することを目的としています。
記事全文はここでお読みいただけます:
Mamba と Jamba — 簡単に説明、Nimrita Koul 著、Medium.com より。
ここで注目すべき重要な点は、トレーニングでは、アルゴリズムはすべての入力トークンを少なくとも 1 回確認する必要があり、時間の計算量はO(n) になるということです。
また、どの LLM モデルでも推論に可能な最速速度は O(1) です。つまり、トークンの長さに関係なく一定の時間です (驚くべき成果です)。
したがって、定数時間の改善では、それでも非常に高い可能性があります (これらの数値は数千億単位です)。
Jamba は、Transformer アルゴリズムの時間計算量の最適な境界に到達しました。
与えられたシステム条件下では、新しいテクノロジー (量子コンピューティングなど) が導入されない限り、漸近的な時間計算量を高速化することはできません。
これは非常に重要な結果です!
A121 labsによる公式発表:
Jamba に関する Medium のもう一つの優れた記事:
現時点で利用可能な Jamba の最良の実装の 1 つ:
もう一度、HuggingFace Hub の Jamba モデルを見てみましょう。
したがって、Jamba は、既存のシステムで電流トランスフォーマー アルゴリズムによって達成できる究極の時間計算量 (一定レベルの変化) に到達します。繰り返しますが、定数は数千億の項のオーダーであるため、非常に大きくなる可能性があります。ただし、これは依然として大きな成果です。また、特に DPO (直接選好最適化) および量子化と組み合わせると、これに関する研究の進むべき道に限界はありません。詳細については、エピローグを参照してください。
この問題には、誰も公然と取り組んでいない側面が一つあります。
Mamba、xLSTM、Jamba モデルは 1 ビットの精度に量子化できますか?
もちろん!
1 ビットに量子化されたときの Mamba と Jamba のパフォーマンスの向上を見るのが待ちきれません。つまり、1.58 ビット {-1, 0, 1 } です。
詳細については、もう一度この記事を参照してください。
この技術の将来は信じられないほどエキサイティングなものになるでしょう!
この分野で働く喜びと感動がいつまでもあなたの中に残りますように!
乾杯!
量子化については、この論文をぜひ読んでみる価値があります。
研究論文 - BitNet: 大規模言語モデルのための 1 ビット トランスフォーマーのスケーリング:
要約: 大規模言語モデルのサイズの増大は、展開上の課題をもたらし、高エネルギー消費による環境への影響についての懸念を引き起こしています。本研究では、大規模言語モデル向けに設計されたスケーラブルで安定した1 ビット Transformer アーキテクチャであるBitNetを紹介します。具体的には、1 ビットの重みを最初からトレーニングするために、 nn.Linear
レイヤーのドロップイン代替としてBitLinearを紹介します。言語モデリングの実験結果によると、 BitNet は、最先端の 8 ビット量子化方法や FP16 Transformer ベースラインと比較して、メモリ フットプリントとエネルギー消費を大幅に削減しながら、競争力のあるパフォーマンスを実現します。さらに、 BitNet は、フル精度 Transformers に似たスケーリング則を示し、効率性とパフォーマンスの利点を維持しながら、さらに大規模な言語モデルに効果的にスケーリングできる可能性を示唆しています。
https://arxiv.org/abs/2310.11453
そしてHuggingFaceのモデル:
このリポジトリには、 BitNet b1.58-3Bモデルの量子化バージョンが含まれています。
元のリポジトリは印象的な検証結果を示していますが、BitNet の線形レイヤーをエミュレートしているため、FP16 モデルと同様のメモリ使用量になります。