こしあん
2025-02-21

論文まとめ:Mélange: Cost Efficient Large Language Model Serving by Exploiting GPU Heterogeneity


11{icon} {views}

Mélangeはリクエストサイズやレイテンシー要件を考慮し、複数種類のGPUを自動割り当てすることで最大77%のコスト削減を達成する。また、99.5%以上のSLO達成率を維持しながら、会話型から文書ベースまで多様なワークロードに柔軟に対応できる。

要約 By Gemini 1.5

この論文は、大規模言語モデル(LLM)の推論サービングにおけるGPUコスト効率を最大化するための手法、Mélangeを提案しています。

この論文において解決したい課題は何?

LLMの推論サービングはGPUインスタンスが高コストであるため、費用対効果の高いGPUの種類を選択する効率的な方法がない。

先行研究だとどういう点が課題だった?

先行研究はLLMサービングの高コスト問題に対し、推論エンジンの改善に焦点を当てており、特定のLLMサービスにとって最も費用対効果の高いGPUの種類の選択はあまり考慮されていなかった。また、LLM特有の特性(リクエストサイズ、リクエストレート、SLO)がコスト効率に与える影響を詳細に分析していなかった。

先行研究と比較したとき、提案手法の独自性や貢献は何?

LLMサービスの特性(リクエストサイズ、リクエストレート、SLO)がGPUコスト効率に強く影響することに着目し、これらの特性とGPUの異質性を考慮したコスト最小化のためのGPU割り当てフレームワークMélangeを提案している。Mélangeは、複数のGPUタイプを混在させて利用する初めてのGPU割り当てフレームワークである。

提案手法の手法を初心者でもわかるように詳細に説明して

  1. オフラインプロファイリング: まず、利用可能な各GPUタイプについて、様々なリクエストサイズとレートで性能を測定します。これにより、各GPUが特定のSLOを満たしつつ、どの程度の最大スループットを達成できるかを把握します。
  2. ワークロード分割: LLMサービスのワークロード(リクエストサイズとレートの分布)を小さな「スライス」に分割します。これにより、GPUへの割り当てをより細かく調整できます。
  3. ビンパッキング問題として定式化: GPUを「ビン」、ワークロードスライスを「アイテム」と見なし、コストを最小化しつつ、全てのアイテムをビンに詰め込む問題として定式化します。SLO制約も考慮されます。
  4. 整数線形計画法 (ILP) で解く: 定式化されたビンパッキング問題をILPソルバーを用いて解き、最小コストのGPU割り当てを求めます。

提案手法の有効性をどのように定量・定性評価した?

NVIDIA L4、A10G、A100、H100の4種類のGPUを用いて、会話型(Chatbot Arenaデータセット)、文書ベース(PubMedデータセット)、および混合ワークロードでMélangeを評価しました。結果として、単一のGPUタイプのみを使用する場合と比較して、Mélangeは会話型設定で最大77%、文書ベース設定で最大33%、混合設定で最大51%のコスト削減を達成しました。また、TPOT SLOの達成率は99.5%以上でした。

この論文における限界は?

Mélangeは固定のワークロード分布とリクエストレートを想定しており、GPUの可用性や動的なリクエストレート、サイズ分布への自動スケーリングには対応していません。

次に読むべき論文は?

論文中で参考文献として挙げられている、LLM推論の最適化やクラウド資源を用いた機械学習に関する論文、特に[19] vLLM, [58] Distserveなどが関連性の高い研究として挙げられます。

コードへのリンクは論文中に明示的に示されていません。

はじめに

  • Llama2 70BをBF16でホストするには、A100-80Gが2台で、オンデマンドだと月額5200ドル以上かかる
  • LLMサービスのコスト要因
    • リクエストサイズ。LLMのリクエストサイズは入出力のトークン長で決定。リクエストサイズが小さい場合は、ローエンドGPUはハイエンドGPUよりも、コスパが良い(T/ドルが大きい)
    • リクエストレート:リクエストがまばらだと、ローエンドのGPUにシフトすることでコストを削減。ミックスすることできめ細やかなスケーリングが可能
    • レイテンシーSLO:目標のSLOが厳しい場合はハイエンドGPU、厳しくない場合はローエンドGPUでコスト削減できる。

コスト効率指標

1ドルあたりのトークン数がKPI。これを実験的に計測する。

入出力のトークン数を変化させた場合(横軸)、ローエンドのGPU(A10G)基準で、ハイエンドのGPU(A100)はリクエストあたりのトークン数が多い場合にアドバンテージ。逆にトークン数が少ない場合はローエンドのほうがアドバンテージ

左:最良のGPU÷2番目に良いGPU、右:最良のGPU÷最悪のGPU

SLO(Service Level Objective)の指標

Time Per Output Token(TPOT)をSLOの指標とする。指定したTPOTを満たすという条件でGPUを選択

SLOを厳しく取るほど、ハイエンドなGPUが要求される

リクエストレート

アイドル時間が長い(リクエスト数が少ない)場合は、ローエンドのGPUのほうが良い

コスト効率の良いGPUの選択

GPUの割当タスクをビンパッキング問題として定式化し、最小のコストを計算。ILPソルバーを解く

実験

  • 普通に一種のオンデマンドインスタンスを使う場合と、Melange(ILPによる最適化でのミックスGPU)の場合でのコスト比較を行う。
  • Chatbot Arena、PubMedデータデータセットをミックスして計測
  • 2種類のTPOT SLOを設定してシミュレート。これは実用的なUXを満たすことを保証するため
    • 40ms : 迅速な応答が必要なサービス
    • 120ms:そこまで迅速な応答は必要ないが、人間の平均読書速度を上回る

→最適化することで、コストが最大77%減った

所感

  • TPOTを使ってUXを定量化したのが面白い。最初のトークン数に対する「どのGPUが最良ですが」は結構面白い
  • 一個割と大きなズルをしてるのでは疑惑があって、出力トークン数は既知ではないのに、あたかも既知のように最適化のパラメーターとして使っている点。単なるデータ分析としてなら既知でも構わないが、推論システムの最適化パラメーターに組み込むのは厳しいのではないか。
  • 着想は結構面白いがどこか物足りない印象の論文。アカデミックの人なせいかクラウドに対する理解が浅い。検証も単品のGPUでやっており、キューなど考えていなく総合的なシステムのレイテンシーのテストではない。
  • そもそも複数GPUインスタンスのクラスタを組める段階で、結構リクエストがきているから、最初の疑問提起であった「70BモデルをホストするのにミニマムでA100-80Gが2枚必要でめっちゃ高い」に対するダイレクトな解ではなく、解こうとしている問題と手法がずれてしまっているのではないか
    • Under reviewのままで、1年経ってもどっかに通ってる感じではない
    • 割当GPUを最適化するのではなく、そもそも70Bモデルを使わないがこの問題に対する解なのかもしれない
  • ここを実験的にやっても当たり前な印象が強いので、もっと理論的なアプローチのほうが有益そう


Shikoan's ML Blogの中の人が運営しているサークル「じゅ~しぃ~すくりぷと」の本のご案内

技術書コーナー

北海道の駅巡りコーナー


Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です