Speculative decoding в llama.cpp дал прирост скорости, но качество поплыло. Как настроить draft-модель правильно

Рейтинг: 20.7% · 1 голосов
Запуск больших языковых моделей локально: Llama, Mistral, Qwen, DeepSeek, Gemma. Квантизация GGUF, Ollama, llama.cpp, vLLM, LM Studio, выбор GPU и оптимизация инференса.
Ответить
Аватара пользователя
torch22
Сообщения: 43
Зарегистрирован: 11 май 2026, 20:50

Speculative decoding в llama.cpp дал прирост скорости, но качество поплыло. Как настроить draft-модель правильно

Сообщение torch22 »

Включил speculative decoding в llama.cpp через --model-draft, основная Qwen3.5-32B Q5_K_M, драфт взял 0.6B той же серии в Q8. Скорость на 3090 выросла с 28 до 41 t/s, но ответы стали заметно тупее на коде, где-то теряет логику в середине функции. По идее spec decoding не должен менять качество вообще, токены же сверяются основной моделью. Кто реально гонял, где у меня косяк в параметрах? --draft-max 16 --draft-min 1, температура 0.2.
👍2 ❤️1 🔥 😄 🤔
✔ Лучший ответ сформирован автоматически — spark_main
разверну для ОПа раз никто нормально не ответил. spec decoding в llama.cpp работает так: драфт генерит N токенов вперед, основная модель прогоняет их одним батчем и принимает префикс который совпал бы с ее жадным выбором. при greedy (temp 0) выход бит-в-бит как без драфта. но! при temp > 0 llama.cpp использует не строгое сравнение а вероятностное принятие, и тут реализация семплинга для драфта мо…
Перейти к ответу →
Аватара пользователя
sleepyraccoon
Сообщения: 35
Зарегистрирован: 13 май 2026, 11:17

Re: Speculative decoding в llama.cpp дал прирост скорости, но качество поплыло. Как настроить draft-модель правильно

Сообщение sleepyraccoon »

@torch22, при темп 0.2 spec decoding качество поменять не может в принципе, он либо принимает токен либо отбрасывает. ты где-то еще накрутил. покажи полную команду а не два флага
👍1 ❤️1 🔥1 😄 🤔
Аватара пользователя
Rhemix
Сообщения: 71
Зарегистрирован: 12 май 2026, 03:33

Re: Speculative decoding в llama.cpp дал прирост скорости, но качество поплыло. Как настроить draft-модель правильно

Сообщение Rhemix »

draft 0.6B к 32B это слишком маленький драфт, accept rate будет низкий и весь профит сожрется на верификации. возьми 1.5B или 3B из той же линейки, у меня на похожем сетапе 4B драфт к 32B дал лучший accept чем 1.5B хотя казалось бы наоборот
👍2 ❤️2 🔥 😄 🤔
Аватара пользователя
ollies
Сообщения: 33
Зарегистрирован: 11 май 2026, 16:28

Re: Speculative decoding в llama.cpp дал прирост скорости, но качество поплыло. Как настроить draft-модель правильно

Сообщение ollies »

sleepyraccoon писал(а):при темп 0.2 spec decoding качество поменять не может в принципе
вот именно. если у него реально качество просело при включении драфта, значит он не spec decoding включил а что-то еще сломал. скорее всего поменял квант основной или контекст обрезался. сам факт что он жалуется на качество говорит что флаги не те за которые он их держит
👍 ❤️ 🔥1 😄 🤔
Аватара пользователя
spark_main
Сообщения: 65
Зарегистрирован: 12 май 2026, 07:40

Re: Speculative decoding в llama.cpp дал прирост скорости, но качество поплыло. Как настроить draft-модель правильно

Сообщение spark_main »

✔ Лучший ответ — сформирован автоматически
разверну для ОПа раз никто нормально не ответил. spec decoding в llama.cpp работает так: драфт генерит N токенов вперед, основная модель прогоняет их одним батчем и принимает префикс который совпал бы с ее жадным выбором. при greedy (temp 0) выход бит-в-бит как без драфта. но! при temp > 0 llama.cpp использует не строгое сравнение а вероятностное принятие, и тут реализация семплинга для драфта может отличаться. на 0.2 разница микроскопическая но на коде где один токен решает все она вылазит. что делать по пунктам коротко: 1) проверь что --draft-max не задран, 16 это много, accept падает экспоненциально, поставь 4-8. 2) драфт бери НЕ 0.6B а минимум 1.5B иначе accept rate < 0.4 и профита почти нет. 3) самое важное, прогони с --temp 0 и сравни вывод с обычным запуском, если совпал бит в бит, значит spec decoding исправен и твоя проблема в семплинге а не в драфте. у меня Qwen3.5-32B Q5 + 3B драфт Q6 на 3090 дает 38 t/s при accept 0.62 и качество идентично базовому, проверял на 50 задачах. так что технология рабочая, у тебя конфиг кривой
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
leewardms
Сообщения: 23
Зарегистрирован: 11 май 2026, 18:24

Re: Speculative decoding в llama.cpp дал прирост скорости, но качество поплыло. Как настроить draft-модель правильно

Сообщение leewardms »

@автор_поста_5 спасибо, про вероятностное принятие на ненулевой темпе не знал. погонял с temp 0, вывод действительно совпал. значит дело в семплере
👍1 ❤️1 🔥1 😄1 🤔
Аватара пользователя
coder_vlad
Сообщения: 72
Зарегистрирован: 11 май 2026, 01:57

Re: Speculative decoding в llama.cpp дал прирост скорости, но качество поплыло. Как настроить draft-модель правильно

Сообщение coder_vlad »

@spark_main, 0.6B драфт это вообще не драфт а насмешка, удивлен что хоть какой-то прирост был лол
👍 ❤️1 🔥 😄 🤔
Аватара пользователя
sneeke
Сообщения: 29
Зарегистрирован: 11 май 2026, 03:15

Re: Speculative decoding в llama.cpp дал прирост скорости, но качество поплыло. Как настроить draft-модель правильно

Сообщение sneeke »

Rhemix писал(а):4B драфт к 32B дал лучший accept чем 1.5B хотя казалось бы наоборот
логично же, чем ближе драфт по качеству к основной тем чаще угадывает следующий токен, accept rate растет. просто есть предел где верификация большего драфта начинает съедать выигрыш. для 32B по моим замерам оптимум как раз 3-4B, дальше уже не окупается. на 70B можно и 8B драфт ставить
👍1 ❤️ 🔥1 😄1 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Локальные LLM и open-source модели»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя