「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を通じて人間のコミュニケーションの力を解き放つ

この記事では、NLPの理解と進化について取り上げますAIがコミュニケーションの世界にどのように貢献できるかを学びましょう

人工知能

「ReactとChatGPT APIを使用して独自のAIチャットボットを作成する方法」

このブログでは、ReactとChatGPT APIを使用して独自の人工知能(AI)チャットボットを作成するプロセスを案内します

データサイエンス

AIの力 なぜウェブ開発者はまだ絶対的な存在なのか

AIは今日の流行語です多くのソフトウェア会社が開発中にそれを使用していますが、みんな同じことを言っていますAIは開発者を...

人工知能

チャットGPTからPiへ、そしてなぜそうするのかをお伝えします!

2月にUX/UIデザインの旅が始まって以来、ChatGPT 🤖 を使い始めて以来、私はChatGPTを私のBFFと呼んでいます感情的になるわけ...

データサイエンス

第四次産業革命:AIと自動化

イントロダクション 人類の絶え間ない未知の探求は、技術の進歩をもたらしてきました。AIと自動化から成る産業革命の到来が世...