Спекулятивное декодирование
Спекулятивное декодирование — метод ускорения инференса больших языковых моделей, при котором небольшая «черновая» модель генерирует несколько токенов подряд, а большая модель проверяет их все за один параллельный проход, не меняя распределения выходных данных.
Спекулятивное декодирование (speculative decoding) — техника ускорения генерации текста в больших языковых моделях. Суть: вместо того чтобы основная модель генерировала токены по одному, небольшая черновая модель (draft model) быстро предлагает γ токенов подряд (обычно 4–8), а затем большая модель верифицирует весь блок за один прямой проход, вычисляя вероятности для всех позиций одновременно.
Механизм верификации основан на rejection sampling: если вероятность предложенного токена по основной модели не ниже вероятности по черновой, токен принимается; иначе применяется скорректированное распределение и генерация продолжается с этой позиции. Это математически гарантирует, что итоговое распределение выходных токенов идентично распределению одной только большой модели — качество не снижается.
Метод важен, потому что инференс LLM ограничен пропускной способностью памяти: узкое место — перемещение весов модели из DRAM в вычислительные блоки при каждом шаге. Спекулятивное декодирование сокращает число таких перемещений, обрабатывая несколько токенов за одну операцию. Практический прирост скорости составляет 2–3× в зависимости от совместимости черновой и основной модели.
К 2025–2026 годам метод внедрён в продакшн: Google применяет его в Gemini, Anthropic — в части развёртываний Claude, Meta — в инфраструктуре Llama. Появились расширения: Self-Speculative Decoding (слои самой модели как черновик), Medusa (несколько голов декодирования), SpecInfer. Метод стал стандартным инструментом оптимизации инференса в крупных ML-системах.