Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Тестирование DeepSeek, Qwen и GLM на ПК с RTX 5090: подборы инференса, VRAM и драфтеры

Тестирование DeepSeek, Qwen и GLM на ПК с RTX 5090: подборы инференса, VRAM и драфтеры

Около года назад я обновлял свою рабочую станцию, собрав ПК на базе флагманской видеокарты GeForce RTX 5090 и 96 ГБ оперативной памяти. В тот момент казалось, что подобный массив ресурсов станет ультимативным запасом для решения абсолютно любых задач по запуску и обработке нейросетей. Однако релиз DeepSeek V4 Flash наглядно продемонстрировал, что суммарных 128 ГБ комбинированной памяти (VRAM и RAM) недостаточно: производительные модели удавалось развернуть либо в экстремально сжатом кванте Q2, либо с большими ограничениями в Q3XSS. Если для условной Qwen 3.6 объемов хватало, то для более тяжелых архитектур требовалось ощутимое расширение памяти.

Единственным логичным шагом стало расширение ОЗУ до 192 ГБ на платформе Socket AM5. Четыре плашки оперативной памяти успешно завелись на частоте 6000 МГц в режиме 1:1, пройдя стресс-тесты на стабильность после точечной настройки напряжений.

Интерфейс программы Jan Desktop для работы с LLM
Интерфейс Jan Desktop, подключенный к локальному серверу llama-server
Консоль запуска llama-server с параметрами квантования
Окно терминала с процессом инициализации контекста 256K и KV-кэша
Мониторинг загрузки видеопамяти RTX 5090
Распределение VRAM и системной RAM при работе MoE-модели
Сравнение вывода NInfer и llama.cpp
Сравнительный график скорости вывода в движках NInfer и llama.cpp
Тестирование генерации SVG-графики нейросетью
Пример отрисовки векторной картинки по текстовому запросу
Запущенная HTML-игра Battle City, созданная нейросетью
Работающий аналог Battle City, сгенерированный за один запрос
График распределения токенов в контекстном окне
Заполнение KV-кэша при работе с текстами объемом до 256K токенов
Тест точности квантов Q4, Q6 и Q8
Влияние уровня квантования на точность выполнения логических инструкций
Схема разгрузки экспертов MoE в оперативную память
Маршрутизация вычислений между GPU VRAM и системной DDR5 RAM
Тестирование DeepSeek, Qwen и GLM на ПК с RTX 5090: подборы инференса, VRAM и драфтеры
Тестирование DeepSeek, Qwen и GLM на ПК с RTX 5090: подборы инференса, VRAM и драфтеры
Тестирование DeepSeek, Qwen и GLM на ПК с RTX 5090: подборы инференса, VRAM и драфтеры

Конец лета принес целый каскад важнейших релизов в сфере открытых языковых моделей:

Реклама
Модули оперативной памяти DDR5 на материнской плате AM5
Платформа AM5 с четырьмя планками DDR5-6000 на 192 ГБ
  • DeepSeek V4 Flash (0731): MoE-архитектура на 284 млрд параметров (с 13 млрд активных), специально заточенная под работу мультиагентных ИИ-систем.
  • Qwen 3.8 27B: монолитная («плотная», dense) модель, без проблем помещающаяся в видеопамять одного мощного ускорителя.
  • GLM 5.3 Flash: мультимодальная MoE-модель на 320 млрд параметров (18 млрд активных), ранее проходившая скрытые тесты под кодовым именем Ox Alpha.
  • Qwen 3.8 Flash Next: архитектурное превью будущей линейки Qwen 4. Представляет собой MoE-нейросеть с базовыми ~125B параметрами (~6B активных на токен) и ~51B n-gram эмбеддингов, что в сумме дает около 180 млрд параметров.

К этому списку добавились и другие любопытные разработки, такие как Ornith 1.5 (версии 35B-A3B и 397B). Имея на руках мощное железо и богатый выбор свежего софта, я решил провести комплексное тестирование, чтобы выяснить: что из этого сегодня реально использовать локально с высоким качеством ответов, длинным контекстом и адекватной скоростью.

Формат и методика тестирования

Для объективной оценки я подготовил специальный cmd-скрипт запуска, поднимавший локальный REST API сервер (http://127.0.0.1:5000/v1). Запросы к нейросетям отправлялись через клиент Jan Desktop. Скрипт настраивал исполнительный исполняемый файл llama-server, подгружал библиотеки CUDA, выставлял контекстное окно в 256K с квантованием KV-кэша в Q8_0, а также регулировал количество потоков процессора (16) и гибридный режим распределения слоев.

Каждая нейросеть при каждом варианте запуска проходила три стандартные контрольные задачи в режиме «one-shot»:

Сравнение архитектур Dense и Mixture of Experts
Принцип работы плотных слоев и структуры Mixture of Experts (MoE)
  1. Технический разбор спекулятивного декодирования: требовалось подробно объяснить механизм работы speculative decoding, проанализировать долю принятых предсказаний (acceptance rate), накладные расходы черновой модели (draft model), этап проверки (verification), влияние пропускной способности памяти и длину блока предсказаний. Ответ должен был генерироваться без использования таблиц до достижения лимита в 4096 токенов.
  2. Генерация векторной графики: создание одного чистого SVG-файла без Markdown и внешних ресурсов. На рисунке должен быть изображен осел на велосипеде и медведь на заднем плане в лесу.
  3. Разработка браузерной игры: создание полностью готового аналога Battle City в одном HTML-файле. Игра должна включать управление клавишами WASD/стрелками, стрельбу на пробел, разрушаемые кирпичные и неразрушаемые стены, противников, подсчет очков, жизни, экран поражения и перезапуск.

В список тестируемых вошли: Ornith-1.5–35B‑A3B, Qwen3.6–35B‑A3B, Qwen3.8–27B, Qwen3.5–122B‑A10B, Laguna‑S-2.1, Qwen3.8-Flash‑Next, DeepSeek‑V4-Flash-0731, Ornith-1.5–397B, GLM-5.3-Flash, Hy3 и MiniMax‑M3. В качестве эксперимента я также запустил гигантскую модель Hy4-preview в жестком кванте STQ1_0.

График скорости генерации со спекулятивным декодированием
Сравнение скорости генерации токенов с включенным и выключенным MTP

Выбор движков инференса

В процессе работы стало очевидно, что стандартный и универсальный llama.cpp не всегда обеспечивает максимальную производительность. Пришлось опробовать несколько альтернативных среды вывода:

Таблица параметров запуска и средней скорости LLM
Сводная таблица параметров запуска движков и средней скорости генерации
  • NInfer: узкоспециализированный движок, оптимизированный под графические процессоры NVIDIA. На видеокартах архитектуры Blackwell с поддержкой аппаратных 4-битных вычислений NVFP4 он показывает колоссальный прирост. На модели Qwen3.8–27B скорость генерации выросла со ~100 токенов в секунду (в llama.cpp) до ~170 ток/с. Недостатки — завязка на собственный формат файлов *.ninfer и потенциальное снижение точности из-за 4-битного представления. Под Windows доступны решения как через WSL2, так и нативные порты.
  • ExLlamaV3: ориентирован на карты NVIDIA и использует формат EXL3, демонстрируя отличную скорость на отдельных типах квантования.
  • FreeToken: движок с оптимизированной выгрузкой экспертных слоев MoE-моделей в оперативную память.
  • vLLM и SGLang: мощные серверные инструменты, рассчитанные на параллельное обслуживание множества пользователей, сложную работу с кэшем контекста и распределение нагрузки по нескольким GPU. В рамках локального однопользовательского теста они не применялись.

Память VRAM, RAM и особенности архитектуры MoE

Сравнительное тестирование квантов Q6 и Q8 на моделях Qwen3.8–27B и Ornith-1.5–35B‑A3B наглядно показало критическую разницу между классическими «плотными» (dense) и MoE-архитектурами.

Таблица подробных результатов бенчмарков нейросетей
Детальные результаты тестов моделей на задачах кодинга и генерации

Для монолитной Qwen3.8–27B перенос всего пары слоев из VRAM видеокарты в оперативную память приводят к обвалу скорости со 100 токенов в секунду до 10 ток/с — ровно в 10 раз! В то же время у MoE-модели Ornith-1.5–35B‑A3B частичный перенос слоев в RAM при увеличении контекстного окна со 192K до 256K снизил скорость с 235 до 185 ток/с, а перевод всей модели в Q8 дал ~95 ток/с.

Реклама
Скриншот результатов тестирования нейросетей, часть 1
Результаты выполнения тестовых заданий языковыми моделями (часть 1)

Разница обусловлена принципом работы Mixture of Experts (смесь экспертов). В плотных моделях каждый токен последовательно просчитывается через все 100% параметров каждого слоя. В MoE специальный роутер активирует для каждого слоя лишь небольшую группу экспертов (Routed Experts). Это позволяет проходить слой существенно быстрее и снижает требования к пропускной способности памяти. Поэтому эксперты MoE могут размещаться в относительно «медленной» ОЗУ (около 96 ГБ/с на двухканальной DDR5-6000), в то время как плотные модели требуют катастрофически высокой ПСП видеопамяти (1792 ГБ/с у RTX 5090).

Скриншот результатов тестирования нейросетей, часть 2
Результаты выполнения тестовых заданий языковыми моделями (часть 2)

При этом важно учитывать, что общие слои (attention, нормализации) и постоянные эксперты (Shared Experts) крайне важно удерживать в VRAM. Аналогично стоит поступать и с KV-кэшем.

Скриншот результатов тестирования нейросетей, часть 3
Результаты выполнения тестовых заданий языковыми моделями (часть 3)

KV-кэш (Key-Value Cache) представляет собой буфер в памяти, где хранятся промежуточные тензоры механизма самовнимания для всех ранее обработанных токенов. Он предотвращает повторные вычисления, сокращая временную сложность генерации с O(N²) до O(N). На контекстах в 128K–256K токенов KV-кэш может занимать десятки гигабайт. Квантование KV-кэша в Q8_0 или Q4_0 позволяет значительно сократить расход VRAM без заметного падения качества понимания текста.

Скриншот результатов тестирования нейросетей, часть 4
Результаты выполнения тестовых заданий языковыми моделями (часть 4)

Опыт работы с упреждающим декодированием (драфтерами)

Идея технологий MTP (Multi-Token Prediction) и DSpark / dFlash выглядит заманчиво: небольшая встроенная или внешняя модель-предиктор (draft model) угадывает сразу несколько последующих токенов, а тяжелая основная модель проверяет всю цепочку за один проход. Однако реальные бенчмарки преподнесли сюрпризы:

  • Qwen3.8–27B (dense): включение MTP дало двукратный рост — со 56 до 106 токенов в секунду.
  • Qwen3.8-Flash‑Next (MoE): без MTP модель выдавала 34,3 ток/с. Включение MTP обвалило скорость до 20,5–21,2 ток/с (падение на 38–41%), независимо от размера блока предсказания n_max.
  • GLM-5.3 Flash (MoE): базовый показатель 9,22 ток/с при MTP с n=2 вырос лишь до 9,49 ток/с (+2.9%), а при n=3 упал до 8,19 ток/с. Драфтер фактически сработал в ноль.
  • DeepSeek V4 Flash (MoE): модуль DSpark продемонстрировал честный прирост — с 13,5 до 17 ток/с (+25%).

Причина подобного разброса заключается в стоимости работы самого драфтера. У Qwen Flash‑Next базовая модель имеет всего около 6 млрд активных параметров на токен и работает очень быстро сама по себе — дополнительная проверка предсказаний лишь перегружает систему. Кроме того, при хранении экспертов MoE в оперативке проверка нескольких токенов за раз приводит к обращению к разным экспертам в RAM, что снижает выгоду от параллельного прохода. В результате спекулятивное декодирование нельзя включать «вслепую» — его эффективность необходимо проверять под конкретную модель и конфигурацию железа.

Итоговая диаграмма производительности локальных моделей
Итоговая диаграмма соотношения скорости и качества локальных LLM

Результаты тестов и ключевые выводы

Подводя итоги проведенных бенчмарков, можно выделить следующие практические наблюдения:

  1. Поколение модели важнее ее размера: современные архитектуры вроде Qwen3.8–27B, Qwen3.8-Flash‑Next, DeepSeek V4 Flash и GLM-5.3 Flash работают качественнее и разумнее, чем гигантские модели предыдущих поколений (например, Ornith-397B или MiniMax M3).
  2. Галлюцинации с вызовом инструментов: свежие агентные модели в обычных диалогах иногда пытаются вызывать несуществующие функции, что является издержкой их специализированного обучения.
  3. Размещение горячих данных в VRAM критично: выпадание основных рабочих тензоров из видеопамяти в ОЗУ фатально для плотных моделей и ощутимо снижает скорость MoE.
  4. Движок NInfer дает реальное преимущество: на поддерживаемых моделях он заметно обходит llama.cpp по скорости.
  5. Скорость в ток/с не равна общему времени ответа: Qwen Flash‑Next генерирует токены быстрее DeepSeek V4, однако из-за более развернутых формулировок может тратить больше времени на выполнение итоговой задачи.
  6. Квантование Q4 не является «бесплатным»: падение точности ниже уровня Q6/Q8 отчетливо заметно на сложных логических инструкциях, а кванты ниже Q3 вовсе непригодны для использования.

Итоговый рейтинг локальных моделей

По результатам моих тестов текущий топ открытых нейросетей для локального запуска выглядит следующим образом:

  1. Qwen3.8–27B: абсолютный лидер по балансу скорости, качества и требований к железу.
  2. GLM-5.3-Flash: лучший вариант по точности и глубине проработки ответов, но довольно медлительный.
  3. DeepSeek‑V4-Flash-0731: производительная и сбалансированная MoE-модель для агентных задач.
  4. Qwen3.8-Flash‑Next: наиболее быстрая среди крупных MoE-архитектур.
  5. Ornith-1.5–35B‑A3B: оптимальный выбор при скромном бюджете и ограниченном объеме памяти.

Запуск Qwen3.8-Flash-Next 125B на минимальном объеме VRAM

Отдельно стоит отметить эксперимент по запуску оригинального чекпоинта Qwen3.8-Flash-Next (125B) в формате bf16. За счет эффективного гибридного распределения экспертных слоев в RAM и выноса весов Vision пиковый расход видеопамяти на RTX 4090 составил всего 5,95 ГБ VRAM. В задачах кодинга и работы с ИИ-агентами эта модель демонстрирует уровень, сопоставимый с топовыми закрытыми облачными сервисами.

Источник: habr.com

01.