Запуск DeepSeek-V4-Flash-0731 на RTX 3090: совместимость и требования
Да, DeepSeek-V4-Flash-0731 можно запустить на RTX 3090 с 24 ГБ VRAM, но не в полной точности и не целиком на GPU. Рабочий вариант - гибридный инференс с выгрузкой части экспертов MoE в системную память через механизм CPU-MoE в llama.cpp.
Для конкретной конфигурации с 128 ГБ DDR5 5600 МГц и квантованием UD-IQ3_S получена стабильная скорость 12.5 токенов в секунду. Ниже приведены требования, команды и ограничения именно этого сценария; цифры не следует воспринимать как универсальные для любого CPU, объёма RAM или версии llama.cpp.
- GPU и VRAM: NVIDIA RTX 3090 с 24 ГБ VRAM; целевое значение
--n-gpu-layers 28. - RAM: 128 ГБ DDR5 5600 МГц. Это практический ориентир для стабильной работы UD-IQ3_S без постоянного свопинга.
- Модель: файл
DeepSeek-V4-Flash-0731-UD-IQ3_S.ggufобъёмом около 110 ГБ. - llama.cpp: CUDA-сборка с поддержкой
--n-cpu-moe; для RTX 3090 нужна архитектураsm_86. - Результат: около 12.5 токенов/с при
--ctx-size 4096; главное ограничение - требования к RAM и нагрузка на CPU.
Кому подходит этот способ
Подходит тем, кому нужна именно DeepSeek-V4-Flash-0731 локально, уже есть RTX 3090 и большой объём RAM, а скорость порядка 12.5 токенов/с приемлема для диалогов, генерации кода и прототипирования.
Не подходит для систем с 64 ГБ RAM без готовности мириться со свопингом, а также для высоконагруженных сценариев с параллельными запросами и жёсткими требованиями по задержке.
Этот материал содержит пошаговую настройку окружения, параметры запуска, анализ производительности и практический кейс генерации 3D-сцены на Three.js. Все цифры получены на реальном железе, команды воспроизводимы.
CPU-MoE и гибридная память: как запустить DeepSeek-V4-Flash-0731 на RTX 3090
DeepSeek-V4-Flash-0731 использует архитектуру MoE (Mixture of Experts). Модель содержит множество экспертных подсетей, но на каждый токен активируется лишь их часть. DeepSeek-V4-Flash-0731 имеет 284B полных параметров, из которых около 20B активны на токен. Квантование UD-IQ3_S сжимает модель примерно до 110 ГБ, однако хранить нужно всех экспертов, а не только активные. Поэтому модель всё равно не помещается в 24 ГБ VRAM.
llama.cpp реализует частичную выгрузку экспертов MoE на CPU. Флаг --n-cpu-moe 39 указывает, что 39 экспертов из общего пула обрабатываются процессором, остальные остаются на GPU. Плотная часть модели и часть экспертов загружаются в VRAM, а оставшиеся эксперты размещаются в RAM. При инференсе токены, маршрутизированные к CPU-экспертам, передаются через PCIe, вычисляются на ядрах процессора и возвращаются обратно. Задержка возрастает, но требования к VRAM снижаются радикально. Выбор числа 39 - результат эмпирического подбора под 24 ГБ VRAM: оставшиеся эксперты умещаются в видеопамять, а выгруженные не перегружают CPU настолько, чтобы скорость стала неприемлемой.
Установка llama.cpp в text-generation-webui для запуска DeepSeek-V4-Flash-0731
Стандартная поставка text-generation-webui часто содержит устаревшие бинарники llama.cpp без поддержки CPU-MoE. Требуется ручное обновление. Важен не конкретный номер version сам по себе, а наличие нужного флага в CUDA-сборке.
Какая сборка llama.cpp нужна и как её проверить
- Сборка: версия с поддержкой CUDA, в названии файла обычно присутствует суффикс
-cuda-. - Архитектура: сборка под
sm_86, соответствующую RTX 3090. - Обязательная возможность: поддержка флага
--n-cpu-moe. - Формат модели: GGUF, в данном случае
DeepSeek-V4-Flash-0731-UD-IQ3_S.gguf.
Сборки публикуются в разделе Releases официального репозитория llama.cpp. Версия проверяется командой:
./llama-cli --version
Наличие флага --n-cpu-moe подтверждается через справку:
./llama-cli --help | grep n-cpu-moe
Если флаг отсутствует, сборка не поддерживает CPU-MoE.
Интеграция с text-generation-webui: замена файлов и проверка
Алгоритм замены:
- Остановить text-generation-webui.
- Перейти в директорию
text-generation-webui/installer_files/env/bin/или аналог для вашей ОС. - Заменить
llama-cli,llama-serverи библиотекиlibllama.so/llama.dllновыми версиями. - Перезапустить веб-интерфейс.
- В разделе Model указать путь к GGUF-файлу и прописать flags в поле Custom model flags.
Частая ошибка - несовпадение версий библиотек и бинарников. Симптом: ошибка сегментации при старте. Решение: копировать все файлы из одного архива релиза, а не смешивать компоненты разных Releases.
Запуск DeepSeek-V4-Flash-0731 на RTX 3090: параметры llama.cpp
Рабочая команда запуска для RTX 3090 и 128 ГБ DDR5:
./llama-cli \ --model DeepSeek-V4-Flash-0731-UD-IQ3_S.gguf \ --n-gpu-layers 28 \ --n-cpu-moe 39 \ --threads 16 \ --ctx-size 4096 \ --temp 0.7 \ --repeat-penalty 1.1
Таблица параметров запуска
| Параметр | Значение | Зачем нужно | Что будет при изменении |
|---|---|---|---|
--model | DeepSeek-V4-Flash-0731-UD-IQ3_S.gguf | Выбирает GGUF-файл и quantization UD-IQ3_S. | Другой quantization изменит требования к памяти, скорость и качество; приведённые замеры нельзя переносить напрямую. |
--n-gpu-layers | 28 | Размещает плотные слои модели в VRAM. | Увеличение ускоряет работу, но приближает к CUDA out of memory; уменьшение освобождает VRAM, но может снизить скорость. |
--n-cpu-moe | 39 | Выгружает 39 экспертов MoE на CPU и в RAM. | Увеличение уменьшает потребление VRAM, но может усилить нагрузку на CPU и обмен через PCIe; уменьшение требует больше VRAM. |
--threads | 16 | Задаёт число CPU-потоков для CPU-MoE. | Меньшее значение обычно снижает скорость; большее не гарантирует прироста и увеличивает нагрузку на процессор. |
--ctx-size | 4096 | Задаёт context size и объём доступного контекста. | Увеличение повышает расход RAM из-за KV-кэша и может снизить скорость; уменьшение экономит память, но сокращает историю. |
--temp | 0.7 | Настраивает случайность генерации. | Большее значение даёт более вариативные ответы, меньшее - более предсказуемые; на объём памяти параметр напрямую не влияет. |
--repeat-penalty | 1.1 | Сдерживает повторение токенов. | При повторениях можно поднять значение до 1.15–1.2, но слишком высокий штраф способен ухудшить формулировки. |
Как подобрать --n-gpu-layers для 24 ГБ VRAM
Параметр --n-gpu-layers определяет, сколько плотных слоёв модели размещается в видеопамяти. Методика подбора: начать с 0 и увеличивать значение, пока потребление VRAM не приблизится к 23.5 ГБ. Для UD-IQ3_S на RTX 3090 стабильно работает значение 28. Потребление контролируется через:
watch -n 1 nvidia-smi
При превышении лимита llama.cpp аварийно завершается с ошибкой CUDA out of memory. В этом случае --n-gpu-layers уменьшают на 2–4 и повторяют запуск.
Требования к RAM и VRAM: почему важны 128 ГБ DDR5
UD-IQ3_S занимает около 110 ГБ в формате GGUF. С операционной системой и буферами фактическое потребление RAM достигает 115–120 ГБ. 64 ГБ недостаточно: начинается свопинг на диск, поэтому 128 ГБ дают необходимый запас и стабильность.
Частота DDR5 прямо влияет на пропускную способность. DDR5 5600 МГц в двухканальном режиме выдаёт около 70 ГБ/с, тогда как DDR4 3200 МГц - около 45 ГБ/с. Разница в 1.5 раза транслируется в пропорциональный прирост скорости CPU-MoE. На DDR4 3200 МГц с теми же настройками скорость падает до 8–9 токенов/с. Если ваша система на DDR4, ожидайте снижения производительности на 30–35%.
Бенчмарк DeepSeek-V4-Flash-0731 на RTX 3090: 12.5 токенов/с
Методика: 10 последовательных запросов с одинаковым промптом, замер скорости генерации после первого токена. Промпт - техническое описание задачи на 200 токенов. Контекст - 4096 токенов. Результаты относятся к описанной конфигурации с RTX 3090, 128 ГБ DDR5 и UD-IQ3_S:
| Метрика | Значение |
|---|---|
| Средняя скорость генерации | 12.5 токенов/с |
| Пиковая скорость | 14.1 токенов/с |
| Минимальная скорость | 10.8 токенов/с |
| Задержка первого токена | 3.2 секунды |
| Потребление VRAM | 23.1 ГБ |
| Потребление RAM | 117 ГБ |
12.5 токенов/с - это скорость чтения текста. Для диалогового режима достаточно: ответы появляются с небольшим опережением чтения. Для пакетной обработки или агентных сценариев с параллельными запросами это медленно; здесь выигрывают конфигурации с несколькими GPU, как в оптимизации инференса на B300.
Влияние длины контекста на скорость и RAM
Замеры при разных значениях --ctx-size:
| Контекст, токенов | Скорость, токенов/с | Потребление RAM, ГБ |
|---|---|---|
| 2048 | 13.2 | 108 |
| 4096 | 12.5 | 117 |
| 8192 | 10.1 | 126 |
При 8192 токенах KV-кэш начинает конкурировать с экспертами за RAM, скорость падает. Для большинства задач генерации кода и диалогов 4096 токенов - оптимальный баланс.
Практический кейс: генерация 3D-сцены на Three.js
Задача: создать анимированную 3D-сцену с вращающимся тором, точечным источником света и частицами. Промпт:
Сгенерируй HTML-файл с Three.js: анимированная сцена с тором, вращающимся вокруг двух осей, фон из 200 случайных частиц, точечный свет, материал MeshStandardMaterial.
Модель выдала 147 строк валидного JavaScript. Код запустился без синтаксических ошибок. Тор вращался, частицы отрисовывались, освещение работало.
Анализ сгенерированного кода: плюсы и минусы
Сильные стороны:
- Корректный импорт Three.js через CDN.
- Правильная инициализация сцены, камеры, рендерера.
- Частицы реализованы через BufferGeometry с атрибутами позиции - эффективный подход.
Недостатки:
- Отсутствовал OrbitControls - камера статична, сцену нельзя вращать мышью.
- Цвета частиц не варьировались - все белые.
- Анимационный цикл использовал setInterval вместо requestAnimationFrame.
Правки заняли 5 минут: добавлен OrbitControls, цвета заданы через массив, таймер заменён. Итоговый результат - полноценная интерактивная 3D-сцена. Модель пригодна для прототипирования и ускорения рутинного кода, но требует ревью. Это согласуется с результатами практического теста DeepSeek V4 Flash на RTX 3090, где квантизация IQ3_S показала хороший баланс качества и скорости.
Ограничения CPU-MoE и потенциальные проблемы
Главное ограничение - требование к объёму RAM. 128 ГБ DDR5 - это серверный или топовый десктопный сегмент. На системах с 64 ГБ запуск возможен с агрессивным свопингом, но скорость падает до 1–2 токенов/с. Квантование UD-IQ3_S снижает качество относительно полной модели: в задачах на рассуждение и точное следование инструкциям разница заметна. Модель склонна к повторам при генерации длинных последовательностей - помогает повышение repeat_penalty до 1.15–1.2.
Ещё один нюанс: CPU-MoE нагружает процессор. На AMD Ryzen 5950X с 16 ядрами загрузка CPU во время генерации достигает 70–80%. Охлаждение должно справляться с длительной нагрузкой, иначе частоты снижаются, и скорость падает.
Типичные ошибки и симптомы
- CUDA out of memory при запуске: VRAM заполнена. Уменьшите
--n-gpu-layersна 2–4 и повторите запуск. - Свопинг и скорость на уровне единиц токенов/с: системе не хватает свободной RAM. Для UD-IQ3_S нужен запас сверх объёма самого GGUF-файла; ориентир для стабильной работы - 128 ГБ.
- Ошибка сегментации при старте: несовпадение версий бинарников и библиотек. Скопируйте все файлы из одного архива Releases.
- Падение скорости после длительной работы: CPU перегревается и снижает частоты. Проверьте охлаждение перед длительными запусками CPU-MoE.
Когда стоит выбрать другой подход
Гибридный инференс оправдан, когда нужна именно DeepSeek-V4-Flash-0731 на локальном железе без покупки нескольких GPU. Если задача допускает меньшую модель, рассмотрите варианты из обзора MoE-моделей с 2B активных параметров - они полностью помещаются в VRAM и выдают 40–60 токенов/с. Для высоконагруженных продакшен-сценариев с жёсткими требованиями по задержке практичнее арендовать облачный GPU-инференс или собрать конфигурацию с несколькими картами, как описано в руководстве по запуску MoE-моделей на одной видеокарте.
Подход CPU-MoE - компромисс между стоимостью железа и производительностью. Он работает и даёт доступ к возможностям флагманской модели на потребительском оборудовании, но не заменяет специализированные инференс-решения.