К тренажеру
ВопросHardllm-servingРеальный собес

Как работает speculative decoding и acceptance ratio

Интервьюер спрашивает: как можно держать высокий acceptance ratio при большом числе draft tokens в speculative decoding?

Короткий ответ

Speculative decoding ускоряет generation: маленькая draft model предлагает несколько токенов вперед, большая target model проверяет их пачкой. Acceptance ratio показывает, какая доля draft tokens была принята.

Полный разбор

Базовая схема такая: быстрая draft model генерирует несколько кандидатов вперед, затем основная target model одним проходом проверяет эти токены. Если распределения моделей близки, значительная часть токенов принимается, и мы экономим время на последовательном decode.

Высокий acceptance ratio при большом числе draft tokens возможен, если draft model хорошо согласована с target model: похожая архитектура/токенизация, дообучение на похожем домене, корректная температура, близкое распределение ответов и отсутствие резкого domain shift. Чем дальше draft model от target model, тем чаще будут отклонения.

Trade-off: больше draft tokens потенциально дают больше speedup, но при низком acceptance ratio можно потратить лишний compute и ухудшить latency. Поэтому в production обычно подбирают draft length по задаче, длине ответа, latency SLA и observed acceptance ratio.

Теория

Speculative decoding — это не изменение качества модели, а оптимизация serving. Его нужно оценивать по latency, throughput, GPU utilization, acceptance ratio и качеству ответа на реальном traffic mix.

Типичные ошибки

  • Думать, что draft model просто заменяет основную модель.
  • Не объяснить, кто генерирует, а кто валидирует.
  • Не связать acceptance ratio с похожестью draft и target распределений.

Как отвечать на собеседовании

  • Отвечай через пару draft model и target model.
  • После механики сразу назови метрики: latency, throughput, acceptance ratio, quality guardrails.