Как ускорить Qwen 35B в 2.4 раза на RTX 3090 без потери скорости генерации
Исследователь показал, как сбросив 8 экспертных слоёв MoE-модели Qwen3.6-35B на CPU, можно увеличить batch-размеры и разогнать prompt processing с 564 до 1330 токенов/сек (2.36×) на RTX 3090, сохранив скорость генерации. Ключ — освобождение VRAM для увеличения батча, а не сам CPU-оффлоад.
Показывает, как выжать максимум из ограниченной видеокарты без апгрейда железа — актуально для разработчиков и компаний, не готовых платить за A100/H100.
Что сделали
Автор эксперимента показал, что на RTX 3090 (24 ГБ) можно серьёзно разогнать обработку промптов в больших MoE-моделях, умело жонглируя памятью. Взял Qwen3.6-35B-A3B в квантизации Q6 (~27 ГБ) и сбросил веса восьми экспертных слоёв на CPU. Это освободило достаточно VRAM, чтобы увеличить batch-параметры с -b 512 -ub 128 до -b 1024 -ub 512.
Результат: prompt processing ускорился с 564 до 1330 токенов/сек (прирост 2.36×), а скорость генерации осталась прежней (97–84 tok/s в зависимости от контекста). Важный нюанс: CPU-оффлоад сам по себе не даёт буста, выигрыш приносит увеличение батча благодаря освобождённой памяти.
Метод: автор применил эволюционный поиск конфигураций (инструмент LEVI), прогнав ~100 вариантов за 40 минут. Цель — автоматизировать подбор оптимальных параметров под конкретную связку модель+железо. Тесты проводились с целевым контекстом 64К, на аренде в Vast.ai (Threadripper PRO, ~100 ГБ RAM).
Практический смысл: подход позволяет втиснуть модели, которые формально не помещаются в GPU, и выжать из них производительность, манипулируя распределением слоёв и размером батча.
Автор: Анна Мельникова · Источник: reddit.com
Разработчикам. Можно втиснуть 27-гиговую Q6-модель в 24 ГБ и разогнать префилл в 2+ раза, грамотно распределив MoE-эксперты между GPU и RAM. Эволюционный поиск конфигураций (LEVI) автоматизирует подбор флагов llama.cpp под конкретное железо. Ключевой параметр — увеличение -b и -ub после освобождения VRAM.
Бизнесу. Техника снижает требования к GPU для больших MoE-моделей: вместо A100 можно обойтись потребительской 3090, сократив затраты на инференс в ~3-5 раз без потери скорости генерации. Особенно актуально для приложений с длинными промптами (RAG, агенты, анализ документов).
Инвесторам. MoE-модели растут быстрее плотных, но упираются в память GPU. Решения вроде умного оффлоада продлевают жизнь потребительского железа и снижают барьер входа для стартапов, использующих локальные LLM. Сектор инструментов для оптимизации инференса (профилирование, автотюнинг) набирает обороты.
- Упаковать Qwen 35B/70B в 24 ГБ и продавать inference API на недорогих 3090/4090 — демпинг против провайдеров на A100
- Сделать SaaS-сервис автонастройки llama.cpp под железо пользователя: загрузил GGUF + указал GPU → получил оптимальные флаги
- Предложить managed-хостинг MoE-моделей с динамическим CPU-оффлоадом — платишь за GPU, часть весов в RAM бесплатно
- Разработать профилировщик для llama.cpp, визуализирующий распределение памяти по слоям и предлагающий оптимизации
- Создать библиотеку готовых конфигов для популярных связок модель+GPU (Qwen/Mixtral на 3090/4090/A6000) — монетизация через комьюнити/подписки
- Результат получен на аренде с 100 ГБ RAM — у большинства пользователей 32–64 ГБ, там выигрыш может быть скромнее или отсутствовать
- Два прогона — слишком мало для статистической значимости, реальный прирост может оказаться ближе к 1.8–2× с учётом вариативности
- CPU-оффлоад восьми слоёв может просесть при реальной нагрузке (много параллельных запросов, маленькие батчи) — бенчмарк оптимистичен
- Эволюционный поиск за 40 минут на аренде — дорого для индивидуалов, нужен общедоступный инструмент или пререндер конфигов
Это типичный пример, когда красивая цифра (2.36×) скрывает нюансы. Да, прирост реален, но он не от CPU-оффлоада как такового, а от того, что освободившаяся VRAM позволила увеличить батч — вот где магия. На практике это работает, если у вас: (1) модель почти не влезает в GPU, (2) есть запас оперативки (100 ГБ в примере), (3) задача — длинные промпты + короткие ответы (RAG, классификация). Если генерируете длинные тексты, выигрыш съест медленный доступ к CPU.
Важнее сам подход: эволюционный поиск конфигураций llama.cpp — это то, что должно быть встроено в каждый фреймворк инференса. Сейчас 95% пользователей копируют флаги с Reddit, не понимая, что они делают. Инструмент LEVI пока сырой, но идея правильная. Если автор доведёт до UI и публичного каталога конфигов — может выстрелить. Пока что — полезный лайфхак для тех, кто уперся в 24 ГБ и не хочет платить за облачные A100.
Комментарии