VRAM кончился, а модель всё не думает: знакомо?
Каждый, кто пробовал запустить современную LLM на домашней видеокарте, знает эту боль. Модель весит 70 гигабайт, а у тебя только 16 ГБ VRAM - единственный выход spillover (offload) на диск. И вот она уже запустилась, но скорость генерации падает до черепашьей: 0.1 токена в секунду. Потому что каждое обращение к весам - это чтение с SSD, пусть даже и NVMe.
Но 2026 год принёс хорошие новости. Четыре буквы - dSpark, dFlash, MTP, QAT - могут перевернуть ситуацию. Разберёмся, как каждая из этих технологий атакует проблему, и главное - можно ли их скрестить, чтобы spillover перестал быть приговором.
Суть спилловера: когда веса частично лежат в RAM/SSD, а частично в VRAM, и для каждого forward/backward нужно подгружать нужные блоки. Задержка - десятки миллисекунд на каждую передачу. Все современные методы направлены на то, чтобы либо уменьшить объём передаваемых данных, либо ускорить сами вычисления, чтобы скрыть эти задержки.
dSpark: разреженность в массы
Технология dSpark - это не просто разреженность (sparsity), а умная динамическая активация только нужных параметров. Мы уже писали о прототипе Sparsity, который экономит 15-50x памяти на эмбеддингах. dSpark пошёл дальше: он применяет разреженность ко всем линейным слоям модели, причём паттерн разреженности адаптируется под входные данные.
Для спилловера это подарок. Если модель в любой момент использует только 10-20% параметров, то и на диск нужно скидывать далеко не все веса. А те, что на диске, можно подгружать небольшими порциями. По предварительным тестам библиотеки z-lab (той же, что выпустила DFlash на Gemma 4), dSpark позволяет держать до 70% весов на диске без заметного падения скорости - при условии, что модель спроектирована для разреженного инференса.
Но есть нюанс: dSpark требует специального обучения или дообучения. Не каждая модель поддерживает такую динамическую разреженность. Тем не менее, GLM-5 Air и Flash уже идут с нативной поддержкой ultra-sparse архитектур - и это не хайп, а реальный шаг вперёд.
dFlash: внимание, которое не жрёт память
dFlash - это эволюция Flash Attention. Если стандартный Flash Attention экономит память за счёт поблочных вычислений и не хранит полную матрицу внимания, то dFlash добавляет ещё и сжатие ключей/значений (KV cache) прямо на лету. В сочетании со спилловером это даёт двойной эффект: меньше данных нужно передавать между VRAM и RAM/SSD, потому что KV cache теперь занимает в 4-8 раз меньше места.
Тот самый эксперимент z-lab с Gemma 4 показал: при offload 50% весов на диск скорость с dFlash выросла в 3 раза по сравнению с обычным Flash Attention. Разработчики утверждают, что dFlash может работать даже с моделями до 200B параметров на картах с 24 ГБ VRAM - вопрос только в оптимизации под конкретный GPU.
MTP: генерация вперёд, задержки назад
Multi-Token Prediction (MTP) - технология, которая позволяет генерировать сразу несколько токенов за один проход. Сначала это казалось маркетингом, но наши бенчмарки подтвердили: для кодинга ускорение до 2х, для креатива - скромнее, но тоже есть.
Какое отношение MTP имеет к спилловеру? Самое прямое. Если вы генерируете по 4 токена за шаг, вы в 4 раза реже обращаетесь к весам, которые лежат на диске. Каждое обращение к SSD - это latency в несколько миллисекунд. Чем меньше таких обращений, тем выше итоговая скорость. По данным MTP merging в llama.cpp, при спилловере 30% параметров ускорение составило 1.8x на 8-токенном предикшене.
Но работает MTP эффективно только при условии, что draft-модель (маленькая сетка, предсказывающая следующие токены) тоже оптимизирована под offload. Иначе вы просто удвоите количество данных, которые нужно гонять туда-сюда. Бенчмарк на 9070XT показал: на картах с 16 ГБ VRAM MTP без оптимизации может даже замедлить генерацию при сильном spillover.
QAT: квантование, которое не режет качество
Quantization-Aware Training - это не новость, но в 2026 году эта технология доросла до индустриального применения. Раньше QAT был слишком дорогим в обучении, но теперь REAP-квантование MiniMax-M2.5 показало: сжатие 19-50% с минимальной потерей качества. Для спилловера это означает, что на диске лежит меньше данных, а значит выше скорость чтения и меньше bottleneck.
QAT в сочетании с dFlash и dSpark позволяет создать модель, которая в 4-5 раз меньше оригинала и при этом сохраняет 99% качества. При spillover такой модели даже на медленный SATA SSD скорость будет приемлемой - до 5-10 токенов в секунду для 70B моделей. Для сравнения: без QAT такой же спилловер даёт 0.5-1 токен/с.
Соберём пазл: что работает вместе?
Каждая технология по отдельности хороша, но их потенциал раскрывается в комбинации. Представьте: dSpark уменьшает количество активных параметров, dFlash сжимает KV cache, QAT снижает разрядность весов, а MTP генерирует по несколько токенов за шаг. Итоговый объём данных, передаваемых между VRAM и SSD, падает в десятки раз. Задержки скрываются за счёт более редких обращений.
| Технология | Принцип действия | Влияние на spillover |
|---|---|---|
| dSpark | Динамическая разреженность | Меньше параметров на диск |
| dFlash | Сжатие KV cache + поблочные вычисления | Меньше данных в attention phase |
| MTP | Множественные токены за шаг | Реже обращения к диску |
| QAT | Квантование с учётом обучения | Меньше бит на параметр |
Но есть подвох: все эти оптимизации требуют совместимости. Например, dSpark может конфликтовать с QAT, если разреженность и квантование накладываются друг на друга. Пока не существует единого фреймворка, который бы сочетал все четыре метода. Однако прогресс идёт - Flash-MoE уже объединил разреженность экспертов с оптимизацией внимания, а Luce Spark запускает 35B MoE модель на 16 ГБ GPU без offload - это уже результат комбинации sparsity и квантования.
Предупреждение: не гонитесь за всеми технологиями сразу. Начните с QAT и dFlash - они дают наибольший эффект на существующих моделях. MTP добавляйте, если ваш юзкейс (кодинг, шаблонные тексты) позволяет speculative inference. dSpark пока требует кастомных моделей, но уже доступен в виде форков llama.cpp.
А что с реальными цифрами?
В середине 2026 года уже есть первые сборки, объединяющие dFlash и MTP. Тесты на Gemma 4 (с dFlash) + QAT (INT4) + MTP (4 токена) показывают: при spillover 60% весов на диск скорость достигает 8-12 токенов/с на RTX 4090. Это уже близко к комфортному использованию для чат-ботов. Для сравнения: без этих оптимизаций тот же сценарий выдавал 1-2 токена/с.
Конечно, до скорости полностью in-VRAM моделей (50-100 токенов/с) далеко. Но задача, которую мы ставили - сделать spillover приемлемым - уже решена. Если у вас 16-24 ГБ VRAM и быстрый NVMe, вы сможете запускать модели 70-120B параметров с приемлемой скоростью для большинства задач.
Единственное, о чём стоит помнить: технологии активно развиваются, и текущие реализации - не финальные. Например, dSpark пока не поддерживается в популярных рантаймах (CUDA, OpenCL), но уже есть бинарные сборки для AMD ROCm. Запасайтесь терпением и следите за обновлениями z-lab и сообществ вокруг llama.cpp.