第17章 推論のための分散型プリフィルとデコードのスケーリング
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
前の章で述べたように、LLMの推論は2つの明確な段階に分けられる。 によるプリフィル段階とデコード段階だ。プリフィル段階では入力プロンプトをプロセスし、そのプロンプトに対応するモデルの内部キーバリュー(KV)キャッシュを生成する。一方デコード段階では、キャッシュされた値を用いて出力トークンを1つずつ生成する。推測デコードの場合は数個ずつ生成することもある。
これら二つの段階は根本的に異なる性能特性を持つ。プリフィル段階は演算処理に制約され、数千ものトークンに対して並列で大規模な行列乗算を実行し、膨大なFLOPSを消費する。一方、デコード段階はメモリI/Oに制約され、各トークン生成時に大規模なKVキャッシュを読み取り、新たな値を書き込み、メモリ帯域幅に負荷をかける。平たく言えば、プリフィルは高スループットの並列ワークロードであり、デコードは遅延に敏感な順次処理ワークロードである。
初期のLLMサービングシステムは、これら2つのフェーズを同一ハードウェア上の単一パイプラインとして扱っていた。そのため、リクエストのバッチ処理によるスループット優先化により、プレフィルフェーズを重視する傾向があった。しかし対話型アプリケーションが増えるにつれ、 の遅延メトリック(最初のトークンまでの時間(TTFT、全トークンのプリフィル遅延)や出力トークンごとの時間(TPOT、トークンごとのデコード遅延))が、純粋なスループットと同等に重要性を持った。両フェーズを同時に処理する場合、単一のGPUベース推論エンジンでTTFTとTPOTを同時に最適化するのは困難だ。
多数のリクエストをバッチ処理するとスループットは向上するが、各リクエストが最も遅いプリフィルを待つためTTFTは悪化する。また、デコード処理が新規プロンプトのプリフィル処理に遅延するためTPOTにも影響する。
モノリシックな推論システムは、最初のトークン生成時間を改善(短縮)する代わりに後続トークンの生成速度を低下させるか、あるいはトークンごとのスループットを改善(増加)させる代わりに新規リクエストに高い初期遅延を課すかの選択を迫られる。極端なケースでは、1つの長いプロンプトがGPUを完全に占有し、他のユーザ向けプロンプト事前読み込み作業を全てブロックする事態も起こり得る。そしてデコードが開始されると、1トークンごとのプロセスでは各トークン生成の間にGPUコアがアイドル状態になる。
これらの問題に対処するため、研究者やエンジニア は両フェーズを分離する方法を模索した。重要な洞察は、プリフィルとデコードが同一ハードウェア(あるいは同種ハードウェア)上で実行する必要がないという点だ。
プリフィルとデコードの分離とは、各フェーズの要件に特化した異なるリソースに割り当てることを意味する。このアイデアはDistServeに関する論文で提唱され、フェーズ間の干渉を排除することでTTFTとTPOTの両方に対する厳格な遅延要件を同時に満たせることが実証された。
DistServeの評価では、プリフィル/デコード分離を行わない最先端のベースラインと比較して、厳格な遅延サービスレベル目標(SLO)内で7.4倍のリクエストを処理できる可能性が示された。これにより、業界のフレームワークはプリフィルとデコードの分離サーバの実験を開始した。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access