【ITニュース解説】75% More Requests, Same GPUs: Why LLM Serving Runs on Two Machines Now
2026年10月20日に「Dev.to」が公開したITニュース「75% More Requests, Same GPUs: Why LLM Serving Runs on Two Machines Now」について初心者にもわかりやすく解説しています。
ITニュース概要
LLMの応答を速くするには、計算量の多い「プロンプト処理」とメモリ帯域を使う「トークン生成」を分けて、別々のGPUで動かすのが効果的だ。これにより、長い指示でも応答がスムーズになり、コストも削減できる。
ITニュース解説
LLM(大規模言語モデル)の推論(Serving)とは、ChatGPTのようなAIチャットサービスで、私たちが入力した質問に対してAIが回答を生成する一連の処理を指す。この処理は、現代のAIサービスにおいて非常に重要な部分であり、その性能がユーザー体験に直結する。しかし、このLLMの推論処理には、効率化が難しい固有の課題がある。特に、多くのユーザーからのリクエストを同時に、かつ高速に処理するためには、システム設計に工夫が必要となる。
LLMの推論処理は、大きく分けて「Prefill(プロンプト処理)」と「Decode(トークン生成)」という二つのフェーズで構成される。Prefillフェーズは、ユーザーが入力した長い質問文(これをプロンプトと呼ぶ)全体を一度に受け取り、その内容をモデルが理解するための準備を行う段階だ。このとき、モデルは入力されたすべての単語(トークン)間の関係性を計算し、次に続くトークンを予測するための「KVキャッシュ」と呼ばれる情報を構築する。この計算は非常に複雑で、プロンプトの長さが長くなればなるほど、必要な計算リソースが指数関数的に増大するという特性を持つ。そのため、Prefillフェーズは「計算量に制約される(compute-bound)」と言われ、処理の速さが「最初の1トークンが返ってくるまでの時間(Time-to-First-Token、TTFT)」に大きく影響する。
一方、Decodeフェーズは、Prefillフェーズで準備されたKVキャッシュと、学習済みのモデルの知識(モデルウェイトと呼ぶ)を利用して、回答のトークンを一つずつ順番に生成していく段階だ。このフェーズでは、新しいトークンを生成するたびに、モデルウェイトと増加していくKVキャッシュの情報を、高速なメモリから繰り返し読み込む必要がある。そのため、Decodeフェーズは「メモリ帯域幅に制約される(memory-bandwidth-bound)」と言われ、処理の速さが「トークンが次々と生成される間隔(Inter-Token Latency、ITL)」、つまりチャットの応答速度のスムーズさに直結する。
これら二つのフェーズは、必要なリソースの種類と特性がほぼ正反対だ。従来、これらのフェーズは一台のGPU(グラフィックス処理装置)上で実行されていた。しかし、Prefillは大量の計算能力を必要とし、Decodeは大量のメモリ帯域幅を必要とするため、同じGPU上で同時に実行しようとすると、お互いのリソースを奪い合い、処理が競合してしまう。特に、最近のAIエージェントのプロンプトは非常に長くなる傾向があり、数万トークンにも及ぶことがある。このような長いPrefillが実行されると、その間、Decode処理は停止してしまい、ユーザーは応答が途切れたり、長い待ち時間を経験したりすることになる。これは、チャットが途切れ途切れになる「スタッター」現象として現れる。
この問題を解決するために登場したのが、「PrefillとDecodeを異なるリソースで実行する」というアプローチだ。Prefillフェーズには計算能力に優れたGPUを割り当て、Decodeフェーズには高速なメモリ帯域幅を持つGPUを割り当てることで、それぞれの特性に最適なリソースを効率的に利用できるようになる。これにより、PrefillがDecodeをブロックすることなく、両方の処理が並行してスムーズに進む。
この分離において非常に重要な役割を果たすのが、先述の「KVキャッシュ」だ。KVキャッシュは、Prefillフェーズで構築され、Decodeフェーズが必要とする全ての情報を含んでいる。このKVキャッシュを、Prefillを担当するリソースからDecodeを担当するリソースへと効率的に「受け渡す(ハンドオフ)」ことが、全体の性能を左右する鍵となる。この受け渡しの遅延をいかに小さくするかが、技術的な工夫の大きな焦点となっている。メモリの配置を最適化するなどの技術によって、この受け渡しにかかる時間を大幅に短縮できるようになってきている。
この「分離」のアイデアは、数年前から研究されており、現在ではその適用範囲が大きく広がっている。初期の研究では、PrefillとDecodeを物理的に異なるマシンで実行するという単純な分離から始まった。これは、Decodeフェーズが必ずしも最新で最も高性能なGPUの計算能力を必要としないという観察に基づいている。その後、PrefillとDecodeに異なるベンダーのハードウェア、つまりPrefillには計算に特化した安価なチップを、Decodeには高速なメモリを持つGPUを使い分けることで、コスト効率を大幅に向上させる研究も進められた。
さらに、この分離はハードウェアレベルだけでなく、ソフトウェアやモデルの内部構造にまで及んでいる。PrefillとDecodeで異なる種類の量子化(モデルの数値をより少ないビット数で表現し、メモリ使用量と計算量を削減する技術)を適用したり、それぞれに最適化されたモデルのチェックポイント(モデルの状態を保存したもの)を使用したりするアプローチも登場している。これは、Prefillは高速な低精度計算を好む一方、Decodeはより正確なモデルウェイトの読み込みを重視するという、それぞれの要件の違いに基づいている。
究極的には、モデルのアーキテクチャ自体をPrefill用の部分とDecode用の部分に分ける研究も進められている。これにより、モデル全体の規模を大きくしても、Prefillの計算コストが比例して増大するのを防ぐことができ、特に長いプロンプトが頻繁に使われるエージェントのようなワークロードにおいて、サービス提供にかかる総コストを大幅に削減できる可能性を秘めている。なぜなら、多くのAIサービスでは、入力プロンプトの処理にかかる費用が出力トークンの生成費用を大きく上回る傾向があるからだ。
実際に、Prime Intellectという企業が「Prime Inference」というサービス提供プラットフォームを立ち上げ、この分離技術をGB200 NVL72ラックという高性能なハードウェア上で実現し、その効果を実証している。彼らは、PrefillとDecodeの適切なリソース比率の調整、KVキャッシュの効率的な圧縮、そして最適なメモリ配置の採用など、さまざまな最適化を行うことで、ユーザーへの応答時間を劇的に改善し、より多くのユーザーを同時にさばくことに成功した。例えば、KVキャッシュのデータ量を削減したり、受け渡し時間を短縮したりといった具体的な改善が、システムの応答性向上に貢献している。
このPrefillとDecodeの分離は、現在ではAIインフラの標準的な構成になりつつある。NVIDIAのような大手企業も、自社のソフトウェアでこの分離を容易に設定できるようにしている。クラウドサービスプロバイダーも、この分離を基本的なオプションとして提供し始めている。
重要な点は、PrefillとDecodeの間のKVキャッシュの受け渡し効率が、この分離技術がどれだけ成功するかを決定する製品のようなものだということだ。この受け渡しにかかる時間、つまり「ハンドオフ税」は、以前は比較的大きかったが、技術の進歩によって現在ではわずか数十ミリ秒にまで短縮され、さらに改善が進んでいる。
この分離技術は、すべてのケースで必要となるわけではない。小規模なトラフィックや、応答速度にそれほど厳しくない要件であれば、一台のGPUでPrefillとDecodeを両方実行するシンプルな構成でも十分に機能する。しかし、大規模なユーザーベースを持ち、かつChatGPTのようにスムーズなリアルタイム応答が求められるサービスにおいては、このPrefillとDecodeの分離が、ユーザー体験の質を決定づける重要な要素となる。特に、長いプロンプトを多用するエージェントのような先進的なAIワークロードでは、Prefillフェーズの最適化が、サービス運用費用の削減に直接的に貢献するため、その重要性は増す一方だ。