✨ 要約🔬 技術概要
大規模言語モデルが長い会話を保持したり、膨大な文書を処理したりする場合、単純だが手強い物理的な限界に直面します。それはメモリです。モデルは、回答の整合性を保つために、会話の中で言ったことや聞いたことのすべての記録を、「キャッシュ」として知られるコンピュータメモリ内の特別な領域に保持し続けなければなりません。もし会話が長すぎたり、同時に多くの人が質問を投げかけたりすると、このキャッシュが溢れ、システムはクラッシュします。サービスを稼働させ続けるために、エンジニアたちは伝統的に、2つの異なる戦略に頼ってきました。一つのアプローチは、より多くのコンピュータチップを購入し、複数の強力なプロセッサが一斉に動作することでメモリの負荷を分散させることです。もう一つのアプローチは、会話自体のメモリ占有量を縮小することです。数学的な巧妙なトリックを用いてデータを圧縮し、たとえわずかな精度を犠牲にすることになったとしても、単一のチップに収まるようにする方法です。長年、これら2つの専門家グループは別々の世界で活動しており、それぞれの解決策の実際の価格を比較することは滅多にありませんでした。
新しい研究は、これら2つのアプローチを同じ部屋に集め、システムを運営する人々にとってどちらが本当に安上がりであるかを明らかにしようとしています。実世界のハードウェアに合わせて調整されたシミュレーションを用いた研究者たちは、チップを追加することがデータの圧縮よりも優れた取引となる「転換点」を見つけ出そうとしました。彼らは、人気のあるオープンソースのモデルとさまざまな種類のハイエンド・コンピュータチップを用いて様々な構成をテストし、生成された100万語あたりのコストをレスポス速度に対して測定しました。その結果は驚くべきものでした。転換点は存在しなかったのです。テストされたあらゆるシナリオにおいて、データを圧縮する方が、ハードウェアを追加するよりも大幅に安価でした。メモリの解放がより多く必要とされるほど、コストの差は拡大し、圧縮は単にチップを追加する場合と比較して、最大で2倍近い節約を実現しました。
この研究は、問いそのものが、これらのシステムの失敗の仕組みに対する誤解に基づいていたことを明らかにしています。研究者たちは、小規模なモデルの場合、会話の長さだけでメモリ制限に達することは稀であることを発見しました。標準的なハイエンドチップ上で動作する70億パラメータのモデルは、メモリ不足になることなく、可能な最大会話長を処理できます。真の障壁は会話の長さではなく、モデル自体の大きさなのです。モデルの核となる指示、すなわち「重み」が単一のチップに収まりきらないほど大きい場合、いくら圧縮を行っても解決にはなりません。なぜなら、圧縮は会話の履歴を縮小するだけであり、モデルの「脳」を縮小するものではないからです。このようなケースでは、チップを追加することは選択肢ではなく、システムを機能させるための唯一の方法となります。ここに明確な境界線が存在します。もしモデルが単一のチップに収まるほど十分に小さいのであれば、圧縮が優れた低コストの選択肢となります。もしモデルが大きすぎる場合は、チップを追加することが必須であり、圧縮はハードウェアが配置された後に、より多くのユーザーを処理するための二次的なツールとなります。
研究者たちはまた、これら2つの戦略がそれぞれ異なるものを購入していることも発見しました。チップを追加することは、回答の開始時間や各単語の生成時間を短縮し、システムを高速化します。しかし、データを圧縮すると、コンピュータが圧縮された情報を展開するために、より多くの作業を強いられるため、システムは遅くなります。また、圧縮によって対応できるユーザー数が増えることで、交通渋滞が発生し、レスポンスの遅延を招きます。圧縮によって、ハードウェアへの支出1ドルあたり約16倍もの同時接続ユーザーをサポートできる一方で、チップを追加してもその容量はわずかにしか増加せず、コストもはるかに高くなります。研究の結論は、最も効率的な経路は、まずモデルが単一のチップに収まるかどうかを判断することです。もし収まるのであれば、より多くの人々に対して安価にサービスを提供するためにデータを圧縮してください。もし収まらないのであれば、実行可能にするために必要なチップを追加し、その上で、そのハードウェアがサポートできるユーザー数を最大化するためにデータを圧縮してください。これら2つの手法のコストが等しくなるような中間地点が存在するという考えは、これらのシミュレーションが示す現実の世界には存在しないのです。
テクニカル・サマリー:GPUの増設か、キャッシュの削減か? メモリ制約のあるLLMサービングにおけるテンソル並列化とKV圧縮の比較
問題提起 大規模言語モデル(LLM)のサービング展開において、長いコンテキストや大きなバッチサイズによってメモリ制約に直面した際、実務者はこれまでほとんど連携されてこなかった2つの確立された戦略の間で、二者択一の選択を迫られる。
テンソル並列化(システム・コミュニティ): モデルの重みとKVキャッシュを複数のGPUに分割(シャーディング)する。これによりメモリの余白は増えるが、ハードウェアコストが線形に増加し、各レイヤーで通信オーバーヘッド(all-reduce)が発生する。
KV圧縮(アルゴリズム・コミュニティ): 量子化(例:8ビット、4ビット)や蒸発(高価値なトークンのみを保持)を通じて、単一GPU上のKVキャッシュのフットプリントを削減する。これはハードウェアコストを回避できるが、生成品質の低下とデクオンタイゼーション(逆量子化)のオーバーヘッドを伴う。
核心となる問題は、コスト正規化された比較が欠如していることである。並列化に関する論文はスループットのスケーリングを報告し、圧縮に関する論文はメモリの比率を報告する。その結果、エンジニアは、固定されたモデル、品質の閾値、およびレイテンシ目標に対して、どちらの戦略がより安価であるかを判断することができない。
手法 著者らは、これらの戦略を直接比較するために、コスト正規化されたフロンティアを構築した。
シミュレーション・バックボーン: 本研究では、実機のA100、A40、H100ハードウェアに基づいてプロファイリングされたシミュレータであるVidur を利用している。著者らは直接的なGPUアクセスを持っておらず、レイテンシとスループットはVidurの予測器から導出されている(実機と比較して誤差9%未満で検証済み)。
コスト指標: 主な軸は、以下の**100万トークンあたりのコスト(Cost per Million Tokens)**である:Cost/Mtok = C g p u / h r × p 3600 × Throughput × 10 6 \text{Cost/Mtok} = \frac{C_{gpu/hr} \times p}{3600 \times \text{Throughput} \times 10^6} Cost/Mtok = 3600 × Throughput × 1 0 6 C g p u / h r × p ここで、p p p はテンソル並列度である。決定的なことに、デバイス数の乗数 p p p が含まれており、GPUを追加することが「無料」のメモリ増設として扱われないよう保証されている。
実験設定:
モデル: Llama-2-7B(主要)および Llama-2-70B(実現可能性の限界をテストするため)。
構成: テンソル並列度(TP)1, 2, 4, 8。KV圧縮の設定には、ビット幅(16, 8, 4)および保持率(1.0, 0.5, 0.25)が含まれる。
ワークロード: 正確なメモリ算術を確保するため、合成された固定長ワークロード(W1: インタラクティブ、W2: プリフィル重視/飽和状態)を使用。
実現可能性チェック: 構成が有効であるためには、重みとKVキャッシュの両方がデバイスメモリ内に収まる必要がある(2 W / p + B ⋅ m k v ≤ M d e v 2W/p + B \cdot m_{kv} \le M_{dev} 2 W / p + B ⋅ m k v ≤ M d e v )。
制約: 本研究では、出力品質(精度)を評価せず、デクオンタイゼーションの特定のカーネルレベルのレイテンシもモデリングしていない。後者は、堅牢性をテストするための「ベストケース」シナリオとして扱っている。
主な結果 中心的な知見は、テストされた領域内において、コストの等価性が成立するクロスオーバーポイントは存在しない ということである。2つの戦略が単一のコスト曲線上で競合するという前提は無効である。
実現可能性の壁の下では圧縮が優位:
単一GPUに収まるモデル(例:80GB A100上のLlama-2-7B)の場合、KV圧縮はGPUを追加するよりも一貫して安価である。
同等のメモリ解放レベルにおいて、圧縮はテンソル並列化よりも1.20倍から2.00倍安価 である。
容量 vs レイテンシ: 圧縮は、1ドルあたりの同時実行容量を16.5倍 にするが、テンソル並列化(TP=8)による8倍の支出増は、1ドルあたりの容量を1.21倍 しか向上させない。
レイテンシのトレードオフ: 圧縮はコストを削減する一方で、バッチ処理の競合により、トークンあたりのレイテンシ(TPOT)を**8%から93%**悪化させる。テンソル並列化は、レイテンシと容量の両方を改善できる唯一の手段である。
実現可能性の壁(モデルサイズ vs デバイスメモリ):
決定境界は、コンテキスト長やバッチサイズではなく、デバイスメモリに対するモデルサイズ である。
80GBのデバイスにおいて、壁は約36Bパラメータ (fp16重み)にある。
壁の下(例:7B): KVキャッシュがコンテキストウィンドウ内でデバイスメモリを使い果たすことは稀である。GPUを追加することは主に無駄な支出であり、圧縮が最適な戦略である。
壁の上(例:70B): 単一GPUでは重みを保持できない(Llama-2-70Bは127.5 GB)。KV圧縮は重みを縮小しないため、この問題を解決できない。テンソル並列化は、選択肢ではなく**入場券(必須事項)**となる。
壁の上での挙動:
Llama-2-70Bの場合、最小限の実現可能なTP度数(TP=2)であっても、システムはメモリ飽和状態にある。
この領域では、TPを2から4に上げることで、結合メモリ制約が緩和されるため、超線形なスケーリング (効率169%)が得られ、インタラクティブなワークロードにおいてトークンあたりのコストが41%減少する。
しかし、同等のメモリ解放レベルにおいては、さらなるスケーリング(例:TP=8)よりも圧縮の方が依然として安価である。
意義と主張 本論文は、コンテキスト長が長くなるとテンソル並列化の方が安価になるという一般的な仮定を正し、インフラ計画のための決定的な意思決定ルールを提供すると主張している。
クロスオーバーの反証: 著者らは、追加のGPUが圧縮よりも安価になるクロスオーバーポイントは見つからなかったと明言している。あらゆるレベルのメモリ解放において、圧縮の方が安価である。
真の意思決定ルール:
実現可能性を確認する: モデルの重みがデバイスメモリを超える場合(例:80GBに対して>36B)、テンソル並列化は必須 である(p m i n = ⌈ 2 W / M u s a b l e ⌉ p_{min} = \lceil 2W/M_{usable} \rceil p min = ⌈ 2 W / M u s ab l e ⌉ )。
飽和を確認する: 最小限の実現可能なTP度数(p m i n p_{min} p min )においてメモリ飽和(高いKV占有率)が発生する場合、TP度数を一段階上げる(例:TP=2からTP=4)ことで、トークンあたりのコストを下げられる可能性がある。
容量を最適化する: 重みが収まり、システムがメモリ飽和していない場合、KV圧縮 が容量を増やすための支配的な戦略となる。GPUを追加することは非効率である。
補完的なメカニズム: これら2つの戦略は、異なるものを購入する。テンソル並列化はレイテンシ と実現可能性 (重みの分割)を購入する。圧縮は、ハードウェアコストをほぼゼロにして容量 (同時実行性)を購入する。
認められた限界 著者らは、本研究が(デクオンタイゼーションのオーバーヘッドをモデル化せずに)圧縮のレイテンシをシミュレーションに依存していること、および出力品質を測定していないことを認めている。もしデクオンタイゼーションのオーバーヘッドが大幅に高く(スループットの17〜47%の損失)、現在の文献が示唆するよりも大きい場合、順序が逆転する可能性がある。ただし、現在の文献ではオーバーヘッドはより低いことが示唆されている。また、「実現可能性の壁」はfp16重みに特有のものである。重みの量子化を行えば、この境界は移動する。
毎週最高の AI 論文をお届け。
スタンフォード、ケンブリッジ、フランス科学アカデミーの研究者に信頼されています。
受信トレイを確認して登録を完了してください。
問題が発生しました。もう一度お試しください。
スパムなし、いつでも解除可能。
週刊ダイジェスト — 最新の研究をわかりやすく。 登録 ×