Prefill / Decode
LLM推論の二つのフェーズ。prefillはプロンプト全体を並列に処理してKVキャッシュを埋め、decodeは回答を1トークンずつ生成する。性能特性がまったく違い、LLMの最適化や価格設定の形を決めている。
Prefillでは、入力テキスト全体を一度にモデルへ通す(全トークンを並列処理)。計算律速でGPUを有効に使え、「最初のトークンまでの時間」(TTFT)を決める。Decodeでは、新しいトークン1個ごとにモデル全体を通す必要があるが、対象は1トークンだけだ。メモリ帯域律速(1トークンを出すために全重みとKVキャッシュを読む)で、トークン当たりの効率は悪く、「毎秒トークン数」を決める。結果として、長いプロンプトはprefillが高くつき(入力と出力でトークン価格が違う理由の一つ)、decodeはバッチ処理とKVキャッシュの最適化が効く。両フェーズを別のGPUに分ける構成(「disaggregated serving」)さえある。LLMのレイテンシとコストを理解する基礎である。