プリフィルとデコード(TTFT)
LLMの推論は2段階に分かれます。プロンプト全体を一括で読み込むプリフィル(prefill)と、そこから1トークンずつ生成するデコード(decode)です。「長い文書を貼ると、最初の返事が来るまでだけ異様に遅い」の正体はプリフィルで、この2段階を知ると速度表記が読めるようになります。
2つの段階は律速が違う
プリフィルはプロンプトの全トークンを並列に処理してKVキャッシュを作る工程で、GPUの計算力(Tensorコア)が律速です。デコードは1トークンごとにモデルの重みを読み直す工程で、メモリ帯域が律速です。だから同じマシンでも「プリフィル毎秒数百〜数千トークン、デコード毎秒数〜数十トークン」と桁が違います。
TTFT — 体感を決めるもう一つの速度
TTFT(Time To First Token)は最初のトークンが出るまでの時間で、ほぼプリフィルの所要時間です。3万トークンの文書を貼れば、その全量のプリフィルが終わるまで返事は始まりません。「生成は速いのに反応が遅い」と感じたら、疑うのはデコード速度でなくこちらです。llama.cpp系のベンチ表記では、プリフィルがpp(prompt processing)、デコードがtg(text generation)として区別されます。
当サイトの数字との関係
当サイトの実測ベンチやGPUページの速度帯はデコード側(会話中の生成速度)の話です。長文RAGや文書貼り付けが主用途なら、デコードだけでなくプリフィル性能——つまりGPUの計算力側——も効いてくる、と覚えておいてください。
関連用語
- メモリ帯域(メモリバンド幅) — メモリを毎秒何GB読み書きできるか。ローカルLLMの生成速度を事実上決めるスペック
- KVキャッシュ — 会話の文脈を保持する作業メモリ。GQA・MLA・ハイブリッドアテンションでサイズが数十倍変わる
- コンテキスト長 — モデルが一度に覚えていられる会話・文書の長さ。長いほどKVキャッシュがVRAMを食う
- Tensor Core — 行列積専用の演算ユニット。ただし1人ぶんの生成速度は帯域で決まる
参考資料(出典)
- https://developer.nvidia.com/blog/mastering-llm-techniques-inference-optimization/
- https://github.com/ggml-org/llama.cpp
▶ あなたのPCで動くモデルを自動判定する(スペック送信なし・ブラウザ内完結)
上記はアフィリエイトリンクです。経由して課金された場合、当サイトに紹介料が入ります。