Инференс и оптимизация
34 просмотра
Prefill и Decode
Prefill and Decode Phases
Prefill и Decode — две фазы авторегрессивного инференса LLM. Prefill обрабатывает весь входной промпт параллельно, Decode генерирует токены по одному. У каждой фазы свой bottleneck.
Две фазы инференса LLM
Prefill: модель обрабатывает весь входной промпт за один проход, создавая KV-Cache.
Decode: модель генерирует выходные токены по одному, используя KV-Cache.
Промпт: "Какой GPU лучше для обучения LLM?"
[Prefill] — 8 токенов параллельно → KV-Cache
Время: 100 мс (compute-bound)
[Decode] — генерация по 1 токену
Токен 1: "Для" → 15 мс
Токен 2: "обучения" → 15 мс
...
(memory-bandwidth-bound)
Bottleneck каждой фазы
| Характеристика | Prefill | Decode |
|---|---|---|
| Bottleneck | Compute (TFLOPS) | Memory bandwidth |
| Утилизация GPU | 60-80% | 5-15% |
| Метрика | TTFT | TPOT / ITL |
Оптимизации
Для Prefill: Flash Attention, Tensor Parallelism, Chunked Prefill.
Для Decode: KV-Cache, Speculative Decoding, Continuous Batching, PagedAttention.
Disaggregated Inference
Продвинутый подход: Prefill и Decode на разных GPU — Prefill нужны TFLOPS (H100), Decode нужен bandwidth (H200 141GB HBM3e).