スパースコンパイラ:LLM推論の新たなフロンティアを切り拓く | A100 GPUがスパースコンピューティングを強化

スパースコンパイラ:LLM推論の新たなフロンティアを切り拓く | A100 GPUがスパースコンピューティングを強化

大規模言語モデル推論において100倍の高速化を実現するスパース技術。スパースコンパイラがどのようにLLM推論に革命をもたらし、前例のない効率性と速度を実現するかを探る。前回の議論「LLMはスパース性によってどのように推論を高速化するか」では、第2部「活性化スパース性による推論の高速化」を紹介しました。第1部「LLMはどのようにプルーニングを行うか」のレビューはこちらをクリック。今回は、第3部「スパースコンパイラがLLM推論に与える影響」について掘り下げます。

コンパイラの必要性

最近の開発により、深層学習の計算はますますスパース化している、すなわちゼロを多く含むテンソルに対して演算が行われるようになっています。静的で事前に既知であることが多いスパースモデルの重みに加えて、入力に依存し実行時にのみ判明するスパースパターン、すなわち動的スパース性も発見されています。例えば、GPTやOPTなどの大規模言語モデル(LLM)はさまざまな種類の動的スパース性を示します。第一に、Transformerモデル(および他のタイプのモデル)は、入力、活性化、勾配に固有の動的スパース性を示します。活性化グラフでは、ごく一部の要素だけが非ゼロです(例:T5-Baseで3.0%、ViT-B/16で6.3%)。第二に、動的スパース性を活用してDNNモデルをさらにスケールアップします。1兆を超えるパラメータを持つ既存のモデルのほとんどは、エキスパート混合(MoE)アーキテクチャを採用し、スパースな入力に基づいて動的にエキスパートを活性化します。さらに、動的スパース学習はトレーニング中に重要でない接続を動的に刈り込み、その優れた計算効率から注目を集めています。実行前にスパースパターンが不明な動的スパース性は、深層学習に大きな課題をもたらします。事前処理のオーバーヘッドが大きいため、高度なスパース対応深層学習ソリューションは、事前定義された静的スパースパターンに限定されています。動的スパース計算を効率的に実行するには、GPUフレンドリーなテンソルブロック構成と、スパース対応ブロック形状における無駄なカバレッジ(テンソル内の非ゼロ値)の最小化との間で、しばしば矛盾が生じます。LLMのスパース性にはスパース演算子の使用が必要であり、cuSPARSEやSputnikなどの従来のライブラリは、汎用的な設計であり最適ではないため、静的にコンパイルされたスパース対応カーネルのみをサポートするか、スパース行列を密形式に動的に変換する必要があり、動的スパース性のシナリオで大きな性能オーバーヘッドをもたらします。

主流コンパイラの比較

現在の主流なスパース計算コンパイラには、cuSPARSE、Sputnik、OpenAI Block Sparse、SparTA、PITなどがあり、文献[11]で参照されています。以下は高速化データの比較表です:シナリオ:4096 × 4096 × 4096の行列乗算 指標:レイテンシ(ms)

特筆すべきは、PITが最先端のスパース最適化を上回り、cuSPARSE、Sputnik、OpenAI Block Sparse、SparTAと比較してそれぞれ最大88.7倍、5.8倍、17.5倍、5.7倍の高速化を達成している点です。

コンパイラがLLM推論に与える影響

OPT

実験[11]では、PITをAlpacaデータセットでOPTモデルの2つのバージョン(OPT13Bと30B)に対して、8つのV100–32GB GPUで評価しています。PITはOPTに2つの動的スパース最適化を適用します:(1) 同じバッチ内で異なる長さの文に対するパディングオーバーヘッドの排除、(2) FFN層のReLU活性化によって生じる細粒度スパース性(最大99%)の活用。バッチサイズは32に設定され、PyTorch-SはTritonをバックエンドとして使用しています。

OPTのバッチあたりのエンドツーエンドレイテンシとメモリフットプリント

PITのパフォーマンスは、PyTorch、PyTorchS、DeepSpeedをそれぞれ2.1倍~2.3倍、2.5倍~3.0倍、2.0倍~2.2倍上回ります。動的シーケンスにおけるパディング回避により、PITはベースラインに対して1.6倍~1.7倍の高速化を達成しています。さらにFFN層のReLU活性化における動的スパース性を活用することで、PITはさらに1.3倍~1.4倍の性能向上を実現しています。ブロックサイズ32x32のTritonブロックスパースカーネルを使用するPyTorch-Sと比較して、PITはより小さなマイクロブロック(すなわち1x32)とSReadおよびSWriteによる効率的な計算を採用し、計算の無駄を回避しています。また、PyTorch-Sはスパース形式変換のオーバーヘッドの影響も受けるため、最も高いレイテンシを示しています。メモリ消費に関しては、DeepSpeedが最も低いメモリ使用量を示しています。これはエンコーダ層全体を1つの演算子に融合し、活性化メモリを節約しているためです。

MOE

エンコーダとMoE構造を持つ大規模ビジョンモデルSwinMoEに関する実験[11]では、PITの性能をA100上でfloat16精度を使用して評価しています。ビジュアルトランスフォーマーでは、同じバッチ内の入力画像が同じ解像度にリスケールされ、シーケンス長が一貫するようにしました。実験では、異なるバッチサイズとエキスパート数におけるSwin-MoEのエンドツーエンド推論レイテンシとメモリ使用量を比較しました。MegaBlocksは、すべてのエキスパートを同時に実行し、スパースカーネルを効果的に利用して計算の無駄を回避することで、他のベースラインを上回っています。PITはさらに、メモリ階層間のデータ移動におけるデータシャッフルをサポートすることで、MegaBlocksと比較して性能を向上させています。

A100におけるSwinMoEのエンドツーエンドレイテンシとメモリフットプリント

PyTorch、PyTorchS、Tutel、DeepSpeed、MegaBlocksと比較して、PITはそれぞれ1.5倍~6.3倍、1.5倍~2.9倍、1.1倍~1.8倍、1.2倍~1.6倍、1.1倍~1.4倍の高速化を達成しました。Swin-MoEにおけるPITの性能向上はSwitch Transformerよりも小さいです。これはSwin-MoEのエキスパート数がSwitch Transformerよりも大幅に少ないためです。そのため、エキスパート数が8から32に増加すると、MoE層はエンドツーエンドレイテンシの23.6%から61.2%を占めるに過ぎません。MoE層単体のレイテンシを比較すると、PITはMegaBlocksよりも約1.2倍~1.7倍高速です。以下はPITのコンパイル済み比較データです:

最後に、高速化に必要なハードウェアサポートについて説明します。

GPU

NVIDIA A100

A100は新しいAmpereアーキテクチャを採用し、最大6912個のCUDAコアと40GBの高速HBM2メモリを搭載しています。また、第2世代NVLink技術をサポートし、高速なGPU間通信を実現し、大規模モデルのトレーニング速度を向上させます。A100は、強力な新しい第3世代Tensor Coreを導入し、DLおよびHPCデータタイプの包括的なサポートに加え、スループットをさらに2倍にする新しいスパース機能も備えています。A100のTF32 Tensor Core演算は、DLフレームワークやHPCにおけるFP32入出力データを高速化する簡単な方法を提供し、V100のFP32 FMA演算の10倍、スパース性を活用した場合は20倍の速度で動作します。FP16/FP32混合精度DLの場合、A100の性能はV100の2.5倍で、スパース性を適用すると5倍になります。PyTorchフレームワークでAIモデルを実行する場合、前世代のV100チップと比較して、A100はBERTモデルトレーニングで6倍、BERT推論で7倍の性能向上を示します。

Intel MaxシリーズGPU

文献[18]によると、NVIDIA V100 GPU上での2つのスパース行列演算の最近の実装では、V100上の参照実装と比較して最大10倍の性能向上が示されています。

結論

まとめると、スパース性によるLLM推論の高速化に関して、以下の3つの結論が得られます。

  • 重みスパース性(50%)、活性化スパース性(90%)、MOEスパース性(例:Mistral 8x7Bの動的スパース性75%)は直交する要素です(効果は累積可能ですが、モデル性能に影響を与える可能性があります)。PITコンパイラによるスパースモデルへの2~3倍の高速化効果と組み合わせると、現在の主流の推論フレームワーク(TGI/vLLMなど)と比較して、理論上の高速化限界は5~30倍になります。
  • レイテンシは、現在のスパース技術の主要な焦点です(スパース性には一定の効果がありますが、バッチサイズが大きいほどスパース性の効果は低下します)。スループット方向は新たな最適化の方向性となるでしょう。なぜなら、活性化スパース性はある種のべき乗分布を示し、大きなエンジニアリング最適化の可能性を秘めているからです。
  • LLMの活性化関数を非ReLUからReLUに変換するコストは比較的低く(約3%のファインチューニングコスト、データ品質は比較的重要)、DejaVuにおける予測器のトレーニングコストも低い(トレーニングが速く、データに依存しない)。推論速度の向上によるコスト削減と組み合わせると、これはROIの高い取り組みであり、商業的に実行可能です。

参考文献

[11] PIT: Optimization of dynamic sparse deep learning models via permutation invariant transformation [18] Performance Optimization of Deep Learning Sparse Matrix Kernels on Intel Max Series GPU

novita.ai は、Stable Diffusion APIと、10,000モデルに対応する数百の高速かつ低価格なAI画像生成APIを提供しています。🎯 最短2秒で生成、従量課金制、標準画像1枚あたり最低0.0015ドル、独自モデルの追加可能、GPUメンテナンス不要。オープンソースの拡張機能を無料で共有。

おすすめ記事 LLMプルーナー技術の解明:推論速度を2倍にする

活性化スパース性革命:再トレーニングなしでモデル性能を向上させ推論を高速化!