Перейти к содержанию
Публикация AiManual

DeepSeek V4 Flash 284B на одной RTX PRO 6000: как размещение драфтера в RAM ускоряет генерацию на 15–17%

Бенчмарк DeepSeek V4 Flash 284B на одной RTX PRO 6000 96GB: перенос драфтера DSpark в RAM дал +4.4% к скорости, итоговый прирост 15–17% с 3 спекулятивными токен

Коротко

Что будет в материале

  1. 01

    Ключевой результат: +15–17% к скорости генерации

  2. 02

    Конфигурация теста: железо, модель и параметры

  3. 03

    Эксперимент: драфтер в VRAM против RAM

  4. 04

    Оптимальные параметры: 3 спекулятивных токена и 19 слоёв в RAM

Энтузиаст провёл детальный бенчмарк DeepSeek V4 Flash 284B в кванте UD-Q4_K_XL размером 144.4 ГБ на одной RTX PRO 6000 96GB. Результат: перенос драфтера DSpark из VRAM в системную RAM дал +4.4% к скорости генерации, а итоговый прирост с 3 спекулятивными токенами и 19 экспертными слоями в RAM составил 15–17% относительно работы без DSpark. Достигнута скорость 31.16 ток/с на реальной многоходовой задаче кодинга.

Механизм ускорения неочевиден. Освободившаяся VRAM позволила разместить больше экспертных слоёв целевой модели на GPU. Это оказалось важнее, чем локальность драфтера в быстрой памяти. Драфтер генерирует черновые токены быстро, его размер невелик, поэтому задержка доступа к RAM не критична. Целевая модель с большим числом экспертных слоёв на GPU работает значительно быстрее, что даёт общий прирост.

Ключевой результат: +15–17% к скорости генерации

Без спекулятивного декодинга DSpark модель работала медленнее. С DSpark и 3 спекулятивными токенами скорость выросла до 31.16 ток/с на реальной многоходовой задаче кодинга. Прирост составил 15–17%. Это прямой ответ на вопрос, стоит ли использовать спекулятивное декодирование на конфигурации с одной картой и CPU-оффлоадом экспертов.

Перенос драфтера из VRAM в RAM дал дополнительно +4.4% к скорости генерации. На первый взгляд это противоречит интуиции: драфтер должен находиться в быстрой памяти. Однако выигрыш от размещения большего числа экспертных слоёв целевой модели на GPU перевесил потерю локальности драфтера.

Качество ответов при этом осталось приемлемым: 93.3% на LiveCodeBench. KV-кэш q8_0 практически не влияет на скорость декодирования вплоть до 768K контекста. Это позволяет экономить память без потери производительности.

Конфигурация теста: железо, модель и параметры

Целевая модель: DeepSeek V4 Flash 284B, квант UD-Q4_K_XL, размер 144.4 ГБ. Фреймворк: llama.cpp с поддержкой спекулятивного декодинга. Драфтер: DSpark. Параметры: CPU-оффлоад экспертов, 3 спекулятивных токена, 19 экспертных слоёв в RAM, KV-кэш q8_0.

Почему именно RTX PRO 6000 96GB?

RTX PRO 6000 96GB - профессиональная видеокарта с большим объёмом памяти. Модель 144.4 ГБ не помещается целиком, поэтому требуется оффлоад части слоёв в системную RAM. Это типичный сценарий для энтузиастов, запускающих большие модели на одной карте. 96 ГБ VRAM достаточно для частичного размещения модели, но не для всей, что делает задачу оптимизации актуальной.

Роль спекулятивного декодинга DSpark

DSpark - небольшая модель-драфтер. Она быстро генерирует черновые токены, а целевая модель проверяет их параллельно. Это увеличивает скорость генерации за счёт меньшего числа последовательных шагов. В эксперименте использовалось 3 спекулятивных токена.

Эксперимент: драфтер в VRAM против RAM

Сравнивались два варианта размещения драфтера: в VRAM совместно с частью целевой модели и в системной RAM. Перенос драфтера в RAM дал +4.4% к скорости генерации. Освободившаяся VRAM позволила разместить больше экспертных слоёв целевой модели на GPU, что ускорило вычисления.

Почему локальность драфтера оказалась не так важна?

Драфтер генерирует токены быстро, но его размер невелик. Задержка доступа к RAM не критична. Целевая модель с большим числом экспертных слоёв на GPU работает значительно быстрее. Это даёт общий прирост, несмотря на более медленный доступ к драфтеру.

Оптимальные параметры: 3 спекулятивных токена и 19 слоёв в RAM

С 3 спекулятивными токенами и 19 экспертными слоями в RAM достигнута скорость 31.16 ток/с на реальной многоходовой задаче кодинга. 19 слоёв в RAM - баланс между использованием VRAM и оффлоадом. Большее число спекулятивных токенов может увеличить отбраковку и снизить эффективность.

Влияние количества спекулятивных токенов

3 токена дали лучший результат. Дальнейшее увеличение не давало прироста из-за роста отбраковки. Оптимальное значение подбирается экспериментально для конкретной конфигурации.

Качество ответов: 93.3% на LiveCodeBench

Качество ответов на LiveCodeBench составило 93.3%. Это приемлемо и сопоставимо с работой без спекулятивного декодинга. Спекулятивное декодирование не меняет логику модели, а лишь ускоряет генерацию, поэтому качество не страдает.

KV-кэш q8_0: минимальное влияние на скорость до 768K контекста

Использование KV-кэша q8_0 практически не влияет на скорость декодирования вплоть до 768K контекста. Это позволяет экономить память без потери скорости. Для длинных контекстов это особенно важно.

Практические выводы и рекомендации

При нехватке VRAM размещение драфтера в RAM может быть выгодным, если освободившаяся память позволяет перенести больше слоёв целевой модели на GPU. Оптимальное число спекулятивных токенов подбирается экспериментально. Квантование KV-кэша q8_0 безопасно для скорости. Качество ответов остаётся высоким.

Как воспроизвести на своём оборудовании

Скачайте модель DeepSeek V4 Flash 284B в кванте UD-Q4_K_XL. Установите llama.cpp с поддержкой спекулятивного декодинга. Настройте параметры: --draft-model DSpark, --num-speculative-tokens 3, --n-gpu-layers 19, --kv-cache-type q8_0. Пример команды запуска:

llama-server -m deepseek-v4-flash-284b-UD-Q4_K_XL.gguf --draft-model dspark.gguf --num-speculative-tokens 3 --n-gpu-layers 19 --kv-cache-type q8_0

Подробный разбор параметров llama.cpp для спекулятивного декодирования на частично выгруженных MoE-моделях есть в статье про Laguna S 2.1 на двух RTX 5090. Там разобраны три типичные ошибки, которые приводят к замедлению в 2.5 раза, и пошаговый тюнинг p_min/n_max/квантования.

Если вы работаете с RTX 5090, полезен разбор оптимизации llama.cpp для Qwen 3.6 27B. Там разобраны все параметры от батчей до спекулятивного декодирования с цифрами и готовой командой запуска.

Ограничения и когда это может не сработать

Результаты получены на конкретной конфигурации: RTX PRO 6000 96GB. На других GPU с меньшим объёмом VRAM или другой архитектурой они могут не воспроизводиться. Прирост зависит от соотношения размеров модели и драфтера, а также от пропускной способности системной RAM. Если VRAM достаточно для размещения всей целевой модели, перенос драфтера в RAM не даст выигрыша.

Для сравнения: на одном B300 с vLLM энтузиасты получили 770 токенов/с, но столкнулись с отказом MoE-ядра без expert parallel и деградацией DSpark в насыщенном батче. Подробнее в разборе запуска DeepSeek-V4-Flash на B300. На Apple Silicon через DS4 DwarfStar удалось достичь 30+ ток/с против 15 в llama.cpp, что описано в статье про DS4 DwarfStar.

Подписаться на канал