
4,555 文字

私は1990年代に、SETIプロジェクトを通じて自分のコンピューターを地球外生命体の探索に使用し、また短期間ですがFolding@homeでタンパク質の折りたたみ研究にも参加していました。この経験から、ここ数年のAIの学習と推論に必要な計算能力が大幅に増加していることを考えると、SETIやFolding@homeのような分散型の手法を使って推論を行うことができるのではないかと考えてきました。テスラも自社の車両を計算ノードとして推論計算に使用することを検討しているようです。
しかし、学習自体については、ノード間で大量の高帯域通信が必要なため、不可能な夢のように思えました。ところが、待ってください。新しいプロジェクト「Sparta」が登場し、この常識を覆して分散型の学習を可能にするかもしれません。これは大きなゲームチェンジャーとなる可能性があります。では、詳しく見ていきましょう。
みなさん、Dr. Know-it-allです。実は今朝は別の動画を作成していたのですが、Christian Dがこの投稿でタグ付けしてくれたんです。これは本当に素晴らしい内容だったので、急遽この動画を作って説明することにしました。
Christianは私の最近の投稿に対して「これを見ましたか?大規模言語モデルの学習のスケーリングに関して、とても重要だと思います」とコメントしてくれました。そして彼は絶対に正しいです。
では、この投稿を見て何が起きているのか理解していきましょう。hasbはここで「これは魅力的だ。Spartaは新しい分散型学習アルゴリズムだ」と述べています。これはハードウェアではなく、基本的にソフトウェアだけのソリューションであり、非常にクールなものです。各ステップで全重みのわずか0.05%を共有するだけで収束するのです。彼が言うように「これは高速道路で2台のトラックが小さなゴムバンド1本で結ばれているのに並走しているようなもの」です。
これはまだ開拓段階のグリーンフィールドです。つまり、これは非常に初期段階だということです。この投稿には2つの比喩が含まれていて、トラックとグリーンフィールドという印象的な表現が使われています。これは初期段階なので、長期的に必ずしも機能するとは限りません。しかし、もし機能すれば本当にゲームチェンジャーになるでしょう。今後の進展に注目する価値は十分にあります。
グラフを見る前に、exolの発表を見てみましょう。彼らは「Spartaの初公開です。GPUs間でパラメータの疎な集合(0.1%未満)を非同期にランダムに交換することで同期を回避する分散型AI学習アルゴリズムです。予備的な結果と、Mac Miniを使用した学習実行の詳細を公開します」と述べています。Mac Miniを使っているんです。これはすごいことですよね。GPU クラスターにMac Miniを使用しているのを見てください。とても印象的です。
さらに彼らは「SpartaはGPU間通信を1,000倍以上削減し、特殊なインフラストラクチャを必要とせずに低帯域幅で大規模モデルの学習を可能にします。Spartaは単独でも機能しますが、DLOOのような同期ベースの低通信学習アルゴリズムと組み合わせることで、さらに良いパフォーマンスを発揮できます」と続けています。
この動画を再生すると、Mac Miniが見えます。ハードウェア的には全く印象的ではありませんが、印象的なのは、従来の学習クラスターよりもはるかに効果的な通信を可能にするソフトウェアのおかげで、大量のハードウェアを必要としないという点です。
では、ここで何が起きているのでしょうか。まず、従来の大規模クラスターがどのように相互に通信を行っているのか考えてみましょう。これはElon MuskとxAIとTeslaが、InfiniBandのようなロスレスな通信ではなく、イーサネットを使用することで大きな改善を実現した分野です。その動画をまだ見ていない方は、この上のリンクをチェックしてください。動画の最後にもリンクを付けておきますので、そちらからも見ることができます。
これは重要な情報だと思います。このアイデアは、ロスレスと低帯域幅通信を何桁も低い帯域幅通信に落とすことです。仮説として、非常に大規模な仮想的なGPU、つまりCPU-GPUの組み合わせで大規模言語モデルや他の生成AIを学習させる場合を考えてみましょう。
従来なら、そのGPUやCPU-GPUの組み合わせのメモリに全てを読み込んで学習を行い、すべてが問題なく動作します。なぜなら、すべてが非常にローカライズされているからです。もちろん、小規模なモデルならGPUに全体を収めることは可能ですが、大規模なモデルではそう簡単ではありません。
しかし、たとえそれが可能だとしても、1つのGPUの効果しか得られません。何千という数が必要な場合はどうでしょうか。その場合、それぞれのGPUに重みのコピーを作成し、一定期間学習を実行してから、それらをすべてマージすることができます。バッチ学習のように、千個のGPUそれぞれでデータの千分の一を学習させ、それをバッチモードでマージして結果を見ることができます。
しかし、まだ待ち時間があります。なぜなら、実際にこれらのGPUそれぞれに重みを送り出し、実際の活動、つまり学習のための作業をすべて行い、それらすべてを何らかの中央ノードに転送し返すのを待つ必要があるからです。そして中央ノードはそれらをすべて処理し、すべての重みをマージして、学習の更新がどうあるべきかを計算し、それらの重みをすべて再び送り返す必要があります。
つまり、データ通信のやり取りだけでかなりの時間が費やされているのです。さらに、1兆パラメータのような非常に大規模なモデルでは事態はさらに悪化します。1兆パラメータは単一のGPUには大きすぎるため、100個の異なるGPUに分割する必要があり、実際の学習実行中にも通信が行き来する必要があります。非常に大きな混乱になります。
結局のところ、これらのGPUは、従来のInfiniBandのようなロスレスなパケット転送や、最近のxAIやGrock、Teslaのようなハードウェアベースのイーサネットを使用したロッシー形式での転送を待つ時間が大きな割合を占めているのです。
しかし、すべての重みを共有する代わりに、そのごく一部だけを共有できればどうでしょうか。それがSpartaが実現しようとしていることです。彼らは0.1%未満、つまり1%ではなく10分の1%を非同期でGPU間で転送できると言っています。
例えば、10億のパラメータがあるとしましょう。数字は例示的なものですが、従来なら10億のパラメータを前後に転送する必要があります。しかし、この場合、GPU間で転送する必要があるのは100万未満のパラメータです。これらはランダムに転送され、非同期で行われるため、GPUがこのデータ転送を待つために停止する必要はありません。
つまり、転送する必要のある情報量が1000分の1に削減され、さらに0.05%や0.01%まで下がる可能性があるため、データ量が10,000分の1になる可能性があります。さらに、非同期で行われるため待機する必要がなく、高価なGPUをより多くの時間活用できます。
大規模クラスターでは、60%や70%といった大きな割合でアイドル状態になることがありますが、この方式が適切にスケールすれば、70%から80%の時間を活用し、アイドル時間を10%から20%程度に抑えることができる可能性があります。これらの数字は私の推測なので、あまり当てにしないでください。ただ、GPUの待機時間を大幅に削減でき、より効率的に働かせることができ、学習実行をより迅速に行えることを示すために例示しています。
では、このグラフを見てみましょう。ここにあるのは、Spartaアルゴリズムを使用して交換されるパラメータの割合を変化させた場合の評価パープレキシティです。完全な同期を許可した場合、これがベースラインとなります。パープレキシティが低いほど良いです。これは基本的にモデルの学習における混乱を示しています。
また、ベースラインもありますが、その詳細は不明確です。重要なのは、この間にある色付きのバーです。茶色からグリーンの色に上がるにつれて、交換するパラメータの割合は少なくなっています。0.05%、つまり0.1%未満から始まる茶色のバーは、ベースラインと完全同期の間でかなり良い性能を示しています。
さらに、2桁少ない0.005%のパラメータ交換でも、かなり decent なパープレキシティの低下が得られ、25,000イテレーション付近で収束し始めているように見えます。これは非常に印象的な結果です。
もちろん、現在はわずか4ノードでの結果なので、明日にでも巨大なデータクラスターでこれが実現するとは考えないでください。これは明らかに非常に新しい技術であり、4から16、4,000、40,000といったように、ノード数を本当に増やしていった場合にスケールするかどうかを確認する必要があります。
しかし、現時点では非常に有望です。これらのデータクラスターのコストの大きな部分を占める超高速クラスター、超高速通信インターコネクトの必要性を本当に減らすことができそうです。また、これらのシステムは内部に計算能力を持ち、データの転送で配線が熱くなり、計算ノードも熱くなるなど、データ転送だけでも多くのエネルギーを消費しています。したがって、大きな省電力効果も期待できます。
さらに将来的に考えると、私の背後にある現在使用中のMac Studioを例に取ってみましょう。私は夜8時間から10時間は寝ているので、その間は使用していません。それをSpartaネットワークのようなものに接続して学習に利用し、このごく少量のパラメータをインターネット経由で交換することができるかもしれません。
非常に遅く、非常に非同期的になる可能性がありますが、これはまだ推測の段階です。現時点では、これらのシステムは非常に近接して共存している状態です。しかし、理論的には、世界中の何百万台ものコンピューターからなる巨大な分散コンピューティングネットワークを想像することができ、少量のパラメータを交換しながら、巨大なデータクラスターではなく、家庭のコンピューターで実際に学習を行うことができるかもしれません。
これは本当にすべてを変えることになります。大規模言語モデルの学習の性質を完全に変え、学習のスケーリングの可能性を大規模に広げることになるでしょう。
皆さん、改めてChristian Dとexol laabsの投稿に感謝します。皆さんはどう思いますか?コメントで教えてください。ついでに、よろしければいいねと購読をお願いします。1月29日は私の60歳の誕生日です。60歳の誕生日プレゼントとして、購読して10万人の登録者を達成できたらうれしいです。いずれにせよ、次の動画でお会いしましょう。さようなら。


コメント