「FlexGenに会おう:GPUメモリが限られている場合に大規模な言語モデル(LLM)を実行するための高スループットな生成エンジン」

FlexGen High-throughput generation engine for running large language models (LLM) when GPU memory is limited

大規模言語モデル(LLM)は最近、さまざまなタスクで印象的なパフォーマンスを発揮しています。生成型LLMの推論は以前にないほどの力を持っていますが、特定の困難にも直面しています。これらのモデルは数十億または数兆のパラメータを含むことがあり、それらを実行するには膨大なメモリと計算能力が必要です。例えば、GPT-175Bは、モデルの重みを読み込むために325GBのGPU RAMだけが必要です。このモデルをGPUに適合させるには、少なくとも5つのA100(80GB)のGPUと高度な並列処理技術が必要です。そのため、LLM推論に必要なリソースの削減は最近、多くの関心を集めています。

LLMは、ベンチマーキング、情報抽出、データ整形、フォーム処理、チャットボットなどのさまざまな「裏方」の操作に使用されます。この研究では、スループット志向の生成型推論という状況に焦点を当てています。企業のコーパスの全ペーパーなど、大量のトークンにわたってバッチでLLM推論を実行する必要があるため、トークン生成の遅延への感受性が低いというのがこれらのジョブの重要な特徴です。そのため、一部のワークロードでは、遅延を犠牲にしてスループットを向上させることで、リソースの必要性を低減する可能性があります。

LLM推論に必要なリソースを削減するためには、次の3つのアプローチが使用されています: 全体のメモリフットプリントを減らすためのモデル圧縮、推論のコストを分散させるための共同推論、メモリとディスク上のメモリの効果的な利用のためのオフロード。明確な制約は存在しますが、これらの戦略により、LLMの利用に必要なリソースが大幅に削減されています。最初の2つの方法の研究では、モデルがGPUメモリに収まることを前提としているため、単一の商用GPU上で175Bスケールのモデルを実行するための支援が必要です。一方、第3のカテゴリに属する最先端のオフローディングベースのシステムは、効果的なI/Oスケジューリングとテンソル配置ができないため、単一のGPU上で受け入れ可能なスループットに到達することはできません。

単一の商用GPUを使用して、彼らの主な目標は高スループットの生成型推論のための効果的なオフロードメカニズムを構築することです。彼らはLLMを部分的にロードし、制約のあるGPUメモリでのLLMの演算を逐次的にオフロードして実行することができます。典型的なシステムでは、メモリの階層は3つの層に分かれています。下位レベルは遅いですが豊富で、上位レベルは速いですが希少です。小さなバッチサイズはこれらのシステムでボトルネックを引き起こす可能性があります。高バッチサイズを使用し、高価なI/O操作を複数のメモリ階層に分散させて処理と重なり合わせることで、スループット志向のシナリオでは遅延を犠牲にすることができます。

ただし、遅延を犠牲にしても、制約のあるGPUメモリで高スループットの生成型推論を達成することは困難です。最初の困難は、成功するオフローディング計画を立てることです。計画では、どのテンソルをオフロードするか、3レベルのメモリ構造のどこにオフロードするか、推論中にいつオフロードするかを明確にする必要があります。生成型推論では、重み、アクティベーション、キー値(KV)キャッシュの3種類のテンソルが使用されます。

アルゴリズムのバッチごと、トークンごと、レイヤごとの構造のため、計算方法はいくつかあります。これらのオプションが組み合わさって複雑な設計空間が作成されます。現在使用されているオフローディングベースの推論システムは、過度のI/Oを実行し、理論的なハードウェアの制約に比べてスループットが大幅に低下しているため、推論においては劣悪な領域となっています。効率的な圧縮アルゴリズムの作成は、2番目の問題を提起します。以前の出版物では、LLMの重みとアクティベーションは、有望な圧縮結果を示しています。ただし、高スループットの生成型推論のために圧縮とオフロードを組み合わせる場合、重みとKVキャッシュのI/Oコストとメモリ削減によって追加の圧縮戦略が推進されます。

UCB、Stanford、CMU、Meta、Yandex、ETH、HSEの研究者たちは、これらの問題を克服するために、高スループットのLLM推論のためのオフロードフレームワークであるFlexGenを共同で紹介しています。FlexGenは、GPU、CPU、ディスクからのメモリを組み合わせて、効果的なI/Oアクティビティ、潜在的な圧縮技術、および分散パイプライン並列処理を効果的にスケジュールします。彼らの貢献は以下の通りです:

  • 計算スケジュール、テンソル配置、計算委任を考慮した潜在的なオフロードオプションの検索空間を明示的に説明します。彼らは、その検索空間がI/Oの複雑さを最適性の2つ以内に捉える計算順序を表していることを示します。次に、彼らは検索空間内でスループットを最大化するための線形計画に基づく検索アルゴリズムを作成します。
  • 再トレーニングやキャリブレーションなしに、OPT-175BのようなLLMの重みとKVキャッシュを4ビットに減らすことが可能で、ほとんどまたは全く精度の低下がありません。I/Oコストとオフロード時のメモリ使用量を低減するために適した細かいグループごとの量子化がこれを実現しています。
  • 彼らは、NVIDIA T4(16GB)GPU上でOPT-175Bを実行することで、FlexGenの効率を示します。FlexGenは、DeepSpeed Zero-InferenceやHugging Face Accelerateといった2つの最先端のオフローディングベースの推論アルゴリズムよりも大きなバッチサイズを許容することが多く、その結果、大幅に高いスループットを実現できます。

以下に、PaperGithubをご覧ください。この研究に関するすべてのクレジットは、このプロジェクトの研究者に帰属します。また、最新のAI研究ニュースや素敵なAIプロジェクトなどを共有している16k+ ML SubRedditDiscordチャンネル、およびメールニュースレターにもぜひ参加してください。

Tensorleapの解釈性プラットフォームで深層学習の秘密を解き放つ

この投稿は、MarkTechPostに掲載されています。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AI研究

「医療分野における生成型AI」

はじめに 生成型人工知能は、ここ数年で急速に注目を集めています。医療と生成型人工知能の間に強い関係性が生まれていること...

人工知能

「GPT4Readability — リードミーをもう一度書く必要はありません」

複雑なPythonのコードベースをナビゲートすることは、特にプロジェクトに十分なドキュメンテーションがない場合には困難なタ...

データサイエンス

LangChain:LLMがあなたのコードとやり取りできるようにします

生成モデルは皆の注目を集めています現在、多くのAIアプリケーションでは、機械学習の専門家ではなく、API呼び出しの実装方法...

機械学習

バード:新しいChatGPTの競争相手

「人工知能におけるユーザーエクスペリエンスを最適化するための絶え間ない探求心を持つGoogleは、最新で最も先進的な対話シ...

機械学習

「ステーブル拡散」は実際にどのように機能するのでしょうか?直感的な説明

この短い記事では、初心者に対して安定した拡散(Stable Diffusion)が直感的にどのように機能するかを説明していますこれは...

データサイエンス

「迅速エンジニアリングのための普遍的な道筋:コンテクストの足場フレームワーク(CSF)」

「最近の記事では、私はChatGPT4の新しいプロンプトエンジニアリングアプローチを探求しましたそれはプログラムシミュレーシ...