Инференс и оптимизация 19 просмотров

Speculative Decoding

Speculative Decoding

Speculative Decoding — техника ускорения инференса LLM, при которой маленькая модель (draft) предсказывает несколько токенов вперёд, а большая модель (target) верифицирует их за один проход. Ускоряет генерацию в 2-3×.

Что такое Speculative Decoding

Speculative Decoding (Leviathan et al., 2022; Chen et al., 2023) — метод ускорения авторегрессивной генерации. Основная идея: маленькая «черновая» модель (draft) быстро генерирует K токенов, затем большая «целевая» модель (target) проверяет их все за один forward pass.

Проблема обычного инференса

При авторегрессивной генерации каждый новый токен требует полного forward pass через модель. Этот процесс memory-bound — GPU большую часть времени читает веса из памяти, а не вычисляет.

Генерация 100 токенов = 100 forward passes. Каждый pass использует GPU на ~5-10% от пиковой производительности.

Как работает

1. Draft model (1-3B) генерирует K=5 токенов:
   "The cat sat on the"  "mat in the warm sun"
                           [t1] [t2] [t3] [t4] [t5]

2. Target model (70B) проверяет все 5 за ОДИН forward pass:
   - t1 "mat"  (вероятность совпала)
   - t2 "in"  
   - t3 "the" 
   - t4 "warm"  (target выбрал "bright")
   - t5  отброшен

3. Принято 3 токена + 1 от target = 4 токена за 1 проход target-модели!

Математическая гарантия

Speculative Decoding не меняет распределение выходных токенов. Результат идентичен обычной генерации target-модели. Это достигается через rejection sampling.

Ускорение

Параметр Значение
Acceptance rate 60-80% (зависит от пары моделей)
Speedup 2-3× для длинных генераций
Задержка (TTFT) Не улучшается (только decode-фаза)

Реализации

# vLLM с speculative decoding
python -m vllm.entrypoints.openai.api_server \
    --model meta-llama/Llama-3-70B-Instruct \
    --speculative-model meta-llama/Llama-3-8B-Instruct \
    --num-speculative-tokens 5

Другие варианты draft-модели:
- Маленькая модель того же семейства
- Medusa heads — дополнительные головы предсказания на самой модели
- EAGLE — авторегрессивная draft-модель на скрытых состояниях

Связанные термины

Улучшает
Требует
Используется в

Попробуйте на практике

Арендуйте GPU и запустите ML-модели в Intelion Cloud

Начать работу