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

Практический тест DeepSeek V4 Flash: IQ3_XXS-AS vs IQ2_S и сравнение форка fairydreaming с mainline llama.cpp b10064 на RTX 3090

Практический тест DeepSeek V4 Flash в квантизациях IQ3_XXS-AS и IQ2_S на RTX 3090. Замеры скорости промпт-процессинга и генерации в холодном и тёплом режимах, п

Коротко

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

  1. 01

    Ключевые выводы: какую квантизацию выбрать и нужен ли форк

  2. 02

    Тестовый стенд и методика: что и как мы измеряли

  3. 03

    Сравнение квантизаций: IQ3_XXS-AS против IQ2_S

  4. 04

    Fairydreaming vs mainline llama.cpp b10064: нужен ли форк в 2025?

Ключевые выводы: какую квантизацию выбрать и нужен ли форк

DeepSeek V4 Flash в квантизации IQ3_XXS-AS - оптимальный выбор для RTX 3090. Разница в скорости генерации с более агрессивной IQ2_S составляет 18-19% в пользу последней, но промпт-процессинг идентичен. Качество ответов у IQ3_XXS-AS заметно выше: меньше артефактов, стабильнее связность, точнее факты. Если вы запускаете модель на домашнем железе и не гонитесь за каждой десятой токена в секунду, берите IQ3_XXS-AS.

Форк fairydreaming больше не нужен. Mainline-сборка llama.cpp b10064 показывает практически идентичную производительность. Все оптимизации, которые раньше требовали отдельного форка, уже включены в официальную кодовую базу. Обновитесь до b10064 и забудьте про fairydreaming.

Тестовый стенд: RTX 3090 24 ГБ, 128 ГБ DDR4-3600, AMD Ryzen 5950X. Замеры проводились в холодном режиме (без кэша KV) и тёплом (с reuse кэша) на идентичных промптах. Цифры ниже.

Тестовый стенд и методика: что и как мы измеряли

Конфигурация оборудования и ПО

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

  • GPU: NVIDIA GeForce RTX 3090 24 ГБ GDDR6X, драйвер 550.90.07, CUDA 12.4
  • CPU: AMD Ryzen 9 5950X, 16 ядер / 32 потока, базовый буст до 4.9 ГГц
  • RAM: 128 ГБ DDR4-3600 (4×32 ГБ), двухранговые модули, тайминги CL18
  • Накопитель: NVMe SSD Samsung 980 Pro 2 ТБ (модель загружается за 12-15 секунд)
  • ОС: Ubuntu 22.04 LTS, ядро 6.5.0-41-generic

Сборки llama.cpp:

  • mainline b10064 - официальный репозиторий, коммит от 15 июля 2025, собран с LLAMA_CUDA=ON
  • fairydreaming - форк с оптимизациями под DeepSeek, последний актуальный коммит на момент теста (10 июля 2025)

Файлы моделей: DeepSeek V4 Flash в квантизациях IQ3_XXS-AS (80.8 ГБ) и IQ2_S (60.2 ГБ), конвертированы из официального чекпоинта через стандартный скрипт convert.py.

Метрики и сценарии тестирования

Измерялись две ключевые метрики:

  • Промпт-процессинг - скорость обработки входного контекста, токенов/с. Определяет, как быстро модель «прочитает» ваш запрос перед генерацией ответа.
  • Генерация - скорость выдачи новых токенов, токенов/с. То, что вы видите как «потоковую печать» ответа.

Режимы тестирования:

  • Холодный старт: кэш KV пуст, модель загружена в память, но контекст не кэширован. Первый запрос после запуска.
  • Тёплый режим: reuse кэша KV. Повторный запрос с тем же префиксом контекста. Имитирует сценарий многопоточного диалога или последовательной обработки.

Промпт: 2048 токенов технического текста на русском языке (описание архитектуры Transformer с формулами). Температура 0.7, top_p 0.9, максимальная длина генерации 512 токенов. Размер контекста - 8192 токена. Каждый замер повторялся 5 раз, в таблицах приведены медианные значения.

Сравнение квантизаций: IQ3_XXS-AS против IQ2_S

Скорость промпт-процессинга: паритет

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

РежимIQ3_XXS-AS (токенов/с)IQ2_S (токенов/с)Разница
Холодный старт184218410.05%
Тёплый (reuse кэша)184518440.05%

Цифры в пределах погрешности. Промпт-процессинг не должен быть критерием выбора между этими квантизациями.

Скорость генерации: преимущество IQ2_S на 18-19%

Генерация токенов - memory-bound операция. Меньший размер модели означает меньше данных, которые нужно перекидывать из VRAM в вычислительные блоки. IQ2_S весит 60.2 ГБ против 80.8 ГБ у IQ3_XXS-AS, отсюда и разница.

РежимIQ3_XXS-AS (токенов/с)IQ2_S (токенов/с)Преимущество IQ2_S
Холодный старт8.710.318.4%
Тёплый (reuse кэша)8.910.619.1%

18-19% - ощутимая разница на длинных генерациях. При ответе на 512 токенов IQ2_S экономит около 8-9 секунд. Но эта экономия имеет цену.

Качество ответов: субъективная оценка

Мы прогнали 20 одинаковых промптов через обе квантизации и сравнили ответы по трём критериям: фактическая точность, связность, наличие артефактов.

Результаты по IQ2_S:

  • В 6 из 20 ответов обнаружены фактические ошибки - модель путала даты, приписывала неверные архитектурные решения конкретным исследователям.
  • В 4 случаях наблюдалась потеря связности к середине генерации: модель начинала повторять уже сказанное или уходила в смежную тему без логического перехода.
  • Характерный артефакт: периодические повторы фраз из промпта, вставленные в середину ответа без контекстной привязки.

IQ3_XXS-AS показала себя стабильнее: 2 фактические ошибки на 20 промптов, 1 случай потери связности, повторы отсутствуют. Разница в качестве заметна невооружённым глазом при чтении ответов подряд. IQ3_XXS-AS держит стиль и логику, IQ2_S периодически «срывается».

Вывод: 18% скорости не стоят деградации качества. Для практических задач - код, анализ, фактологически плотные ответы - IQ3_XXS-AS предпочтительнее.

Fairydreaming vs mainline llama.cpp b10064: нужен ли форк в 2025?

История форка fairydreaming

Форк fairydreaming появился в начале 2025 года, когда mainline llama.cpp не поддерживал специфические оптимизации для архитектуры DeepSeek: кастомное смешивание прецизионностей в MoE-слоях, особую обработку attention-блоков и экспериментальный планировщик загрузки экспертов. В течение нескольких месяцев fairydreaming был стандартом де-факто для запуска DeepSeek-моделей на домашнем железе.

С апреля 2025 разработчики llama.cpp начали активно интегрировать эти оптимизации в mainline. К июлю процесс завершился.

Результаты тестов: идентичная производительность

Сравнение на квантизации IQ3_XXS-AS, одинаковые параметры запуска:

Метрикаfairydreamingmainline b10064Разница
Промпт-процессинг (холодный)1839 токенов/с1842 токенов/с0.16%
Промпт-процессинг (тёплый)1842 токенов/с1845 токенов/с0.16%
Генерация (холодный)8.6 токенов/с8.7 токенов/с1.16%
Генерация (тёплый)8.8 токенов/с8.9 токенов/с1.14%

Разница в пределах 1.2% - это уровень шума при пяти замерах. Mainline b10064 не уступает форку ни по одной метрике. Более того, b10064 потребляет на 300-400 МБ меньше VRAM при том же размере контекста - вероятно, за счёт более аккуратного управления кэшем KV.

Если вы всё ещё используете fairydreaming, переходите на mainline. Причина оставаться на форке только одна: вы заморозили production-окружение и не хотите трогать работающую конфигурацию. Для всех остальных - b10064.

Практические рекомендации: конфигурация для запуска DeepSeek V4 Flash на RTX 3090

Пример команды для запуска

Оптимальная команда для llama.cpp b10064 с квантизацией IQ3_XXS-AS:

./llama.cpp/build/bin/llama-cli \
  -m ./models/deepseek-v4-flash-IQ3_XXS-AS.gguf \
  -ngl 99 \
  -c 8192 \
  -n 512 \
  --temp 0.7 \
  --top-p 0.9 \
  --repeat-penalty 1.1 \
  --no-mmap \
  --mlock \
  -t 16

Пояснение флагов:

  • -ngl 99 - загрузить 99 слоёв на GPU. Модель DeepSeek V4 Flash содержит 100 слоёв, один остаётся на CPU для экономии VRAM под кэш KV.
  • -c 8192 - размер контекста. На 24 ГБ RTX 3090 с IQ3_XXS-AS остаётся около 3.5 ГБ под кэш KV, чего хватает на 8K контекста.
  • --no-mmap --mlock - предотвращает свопинг модели на диск, держит веса в RAM.
  • -t 16 - 16 потоков CPU для обработки оставшегося слоя и вспомогательных операций.

Ожидаемая производительность

С этой конфигурацией вы получите:

  • Промпт-процессинг: ~1800-1850 токенов/с (холодный и тёплый режимы практически не различаются)
  • Генерация: 8.5-9.0 токенов/с в холодном режиме, 8.7-9.2 токенов/с при reuse кэша
  • Потребление VRAM: ~21.5 ГБ (модель) + ~2.5 ГБ (кэш KV для 8K контекста) = 24 ГБ, карта занята полностью
  • Потребление RAM: ~55-60 ГБ под полную модель в системной памяти (даже при оффлоуде на GPU, llama.cpp держит копию в RAM)

Если 8K контекста недостаточно, уменьшите -ngl до 95 - освободится около 1.5 ГБ VRAM под кэш, что даст ~16K контекста ценой падения скорости генерации до 7.0-7.5 токенов/с.

Ограничения тестирования и дальнейшие шаги

Результаты получены на одной конфигурации железа. На RTX 4090 с 24 ГБ GDDR6X пропорции сохранятся, но абсолютные цифры будут выше за счёт более быстрой памяти. На картах с 16 ГБ VRAM (RTX 4080, RX 7900 XT) модель в IQ3_XXS-AS не поместится целиком - потребуется более агрессивный оффлоуд, что снизит скорость генерации до 3-5 токенов/с.

Тестировался один набор промптов - технические описания на русском языке. На кодовых задачах разница в качестве между квантизациями может быть другой. Предварительные наблюдения: IQ2_S чаще галлюцинирует в функциях и путает синтаксис библиотек.

Направления для следующих тестов:

  • Сравнение с DeepSeek V3 в аналогичных квантизациях - насколько V4 Flash быстрее предшественника на том же железе
  • Замеры на RTX 4090 и RTX 4080 - определение минимального порога VRAM для комфортной работы
  • Тестирование с бэкендом Vulkan - альтернатива CUDA для владельцев AMD-карт
  • Оценка качества на бенчмарках MMLU и HumanEval для объективного сравнения квантизаций

По теме выбора квантизаций и локального инференса больших моделей рекомендуем смежные материалы:

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