Без потерь, но не бесплатно: когда Speculative Decoding работает

Speculative Decoding — горячая тема в области инференса LLM.

Такие компании, как DSpark, заявляют об ускорении от 60% до 85%. Google также публикует исследования по этому методу.

Концепция проста: маленькая черновая модель (draft model) генерирует токены, а большая целевая модель (target model) проверяет их за один проход. Это ускоряет генерацию.

Но как инженер, вы должны задать два вопроса:

  • Увеличивает ли это количество галлюцинаций?
  • Не тратит ли дополнительная модель вычислительные ресурсы впустую?

Давайте взглянем на факты.

Во-первых, качество сохраняется без потерь. Целевая модель проверяет каждый токен. Если черновая модель ошибается на третьем токене, целевая модель отклоняет его и начинает регенерацию с этого момента. Результат математически идентичен тому, который выдала бы только целевая модель. Это не усиливает галлюцинации.

Во-вторых, цена реальна. Запуск маленькой модели обходится гораздо дешевле, чем большой. Модель на 7B параметров может стоить в 10 раз меньше, чем модель на 70B.

Speculative Decoding — это ставка.

  • При полном попадании (hit) вы экономите огромные вычислительные ресурсы.
  • При полном промахе (miss) вы проигрываете. Вы запускаете черновую модель плюс дополнительные шаги целевой модели. Это медленнее, чем стандартный инференс.

Чтобы выиграть, нужно следовать правилу: Среднее количество принятых токенов должно быть больше, чем 1 плюс накладные расходы на черновую модель.

Если ваша черновая модель плохо справляется с конкретной задачей, коэффициент принятия (acceptance rate) падает. Если он упадет слишком низко, Speculative Decoding сделает вашу систему медленнее.

Как решить, стоит ли его использовать:

  1. Измерьте свой acceptance rate. Не полагайтесь на общие бенчмарки. Используйте свои собственные данные и задачи.
  2. Проверьте тип задачи. Используйте его для предсказуемых задач, таких как автодополнение кода. Избегайте его для непредсказуемых задач, таких как творческое письмо.
  3. Отслеживайте p99 latency. Полный промах вызывает скачок задержки.

Лучшая оптимизация — это не та, которая всегда побеждает. А та, для которой вы знаете, когда её нужно выключить.

Используйте её, когда hit rate высок. Перестаньте использовать её, когда hit rate резко падает.

Source: https://dev.to/zxpmail/lossless-but-not-free-the-lossless-but-not-free-when-speculative-decoding-actually-pays-off-1c2g

Optional learning community: https://t.me/GyaanSetuAi