Command Palette
Search for a command to run...
推論(Reasoning)とは、モデルの訓練が完了した後、新しい入力に対して順方向計算を実行し、結果を出力するプロセスであり、重みは更新されず、「学習済みパラメータ」を使用するのみである。大規模モデルにとって、推論は通常2つの段階に分かれる。まずプロンプト全体を並列にエンコードする段階(prefill)があり、次にトークンごとに自己回帰的に生成する段階(decode)がある。これらの段階ではリソース特性が異なり、prefill は計算集約的であり、decode はメモリアクセス集約的であるため、最適化手法もそれぞれ異なる。
推論のボトルネックは、計算能力よりも主に VRAM(ビデオメモリ)にある。各リクエストは生成に伴って増大し続ける KV キャッシュを保持する必要があるため、管理が不適切だと深刻なメモリ断片化や重複が発生し、同時に処理できるリクエスト数が制限される。2023年、Kwon らは論文『Efficient Memory Management for Large Language Model Serving with PagedAttention』(https://arxiv.org/abs/2309.06180) において PagedAttention 技術を提案した。この技術を採用した推論フレームワーク vLLM は、同等の遅延条件下でスループットを 2~4 倍向上させた。推論システムにおける VRAM 管理は、本質的にオペレーティングシステムの問題である。さらに、量子化、知識蒸留、推測デコーディング、連続バッチ処理なども、一般的な高速化手法として広く利用されている。オペレーティングシステムの仮想メモリとページングの思想を参考に、KV キャッシュを固定サイズのブロックに分割して必要に応じてマッピングすることで、無駄をほぼゼロに抑え、リクエスト内およびリクエスト間の共有を可能にする。
コスト構造の観点から見ると、訓練は一度限りの投資であるのに対し、推論は継続的に発生するコストである。推論の遅延とスループットは、大規模モデルを実運用へ展開できるか否かを直接決定づけ、こうしたシステム最適化は「使える」状態を「利用可能なコストで使える」状態へ変えるための鍵となる。
[JIALIU_0]