Подписывайтесь:

Блог AST-SoftPro

Capy-flash v0.7.1: Qwen3.8-Flash-Next и 27B на двух 16 GB RTX с оффлоадом экспертов в RAM

24.10.2026 9 мин чтения
Capy-flash v0.7.1: Qwen3.8-Flash-Next и 27B на двух 16 GB RTX с оффлоадом экспертов в RAM

Что такое capy-flash

Capy-flash — это движок локального инференса, который заводит на потребительские видеокарты Blackwell две тяжёлые модели Qwen: 125-параметрический MoE Qwen3.8-Flash-Next (6B активных параметров плюс отдельный слой n-gram эмбеддингов объёмом 51B) и плотную Qwen3.8-27B. Идея простая: то, что не помещается в видеопамять, живёт в оперативной памяти хоста и считается на CPU, а всё остальное идёт тензорно-параллельно на двух GPU. Проект появился как форк Neroued/ninfer (ветка ninfer-tp2) и сменил имя на v0.5.0; с тех пор развивается быстро — между v0.5.4 и v0.7.3 вышло несколько релизов за две недели.

Ключевое заявление проекта в одном предложении: 64 GB RAM хватает для Flash-Next. Эксперты MoE, не влезающие в VRAM, держатся page-locked в оперативке, и сервер спокойно поднимается на связке «две 16 GB карты + 64 GB DDR». Для тех, у кого карта одна, отдельный профиль flash-next-1gpu — та же схема, только без tensor parallel.

Что нового в v0.7.1

Релиз v0.7.1 вышел 22 октября 2026 года и закрывает одну конкретную боль: агентные сценарии с длинной историей диалога. Профиль --profile flash-next-1gpu теперь держит восемь состояний разговора прямо в RAM (цена — плюс 0.66 GiB) и переиспользует уже посчитанный контекст между запросами одного агента.

Числа из README проекта, agentic replay на одной GPU:

Метрика v0.7.0 v0.7.1
Доля токенов промпта из кэша 34 % 83 %
Время до первого токена (медиана) 13.3 с 1.9 с
Длительность всего реплея 858 с 276 с
Decode-медиана — 104 tok/s

То есть при том же железе и тех же весах агент, который в v0.7.0 пересчитывал большую часть промпта на каждом шаге, в v0.7.1 получает первый токен почти мгновенно и проходит весь сценарий примерно за треть времени. Это не оптимизация скорости decode — это кэш контекста между вызовами, и именно он превращает «запустить 125B MoE локально» из демо в рабочий инструмент для агентов.

В том же релизе обновлены bin/ninfer-serve (OpenAI- и Anthropic-совместимый сервер) и CLI-генератор; greedy-вывод на 11 промптах (включая суммаризации 16k и 64k) побайтово совпадает с v0.7.2, так что качество от кэша не страдает.

Конфигурация под 32 GB VRAM + 64 GB RAM

Типовая связка для этого проекта — две RTX 50-й серии по 16 GB (в бенчах автора это 5070 Ti и 5080, но схема не зависит от конкретной модели Blackwell) плюс 64 GB DDR. Профили:

# Flash-Next, две GPU, NVFP4 experts, MTP drafter
--profile flash-next
# = --tp 2 --devices 0,1 --kv-dtype int8 --elastic
#   --max-context 262144 --max-concurrency 1
#   --spec mtp --draft-tokens 3

# Flash-Next, одна GPU (профиль v0.7.1)
--profile flash-next-1gpu

# Qwen3.8-27B (с Vision; --no-vision для артефактов без vision tower)
--profile 27b

Что важно знать про память: Flash-Next в NVFP4 требует около 70 GiB свободной host RAM под page-locked экспертов, поэтому «64 GB хватает» — это про сценарий, где система не съедает ещё 10+ GB. KV-кэш идёт int8 (--kv-dtype int8), контекст открывается на полный нативный 262144 токена, а --elastic позволяет серверу подстраивать резервы под нагрузку. MTP-драфтер с тремя draft-токенами даёт заметный прирост decode без деградации качества — это та же механика, что и у llama.cpp (--spec-type draft-mtp), только встроена в профиль по умолчанию.

Скорость: что показывают бенчи

Свежие измерения автора (октябрь 2026, две GPU):

  • Flash-Next, prefill (без prefix-reuse): ~2168 tok/s на 4k, ~3924 tok/s на 16k, ~3994 tok/s на 64k. Для сравнения, Strata с IQ3_S квантом выдаёт 1745 / 2906 / 4037 tok/s на тех же промптах — capy-flash быстрее в коротком и среднем prefill, уступает лишь на самом длинном.

  • Flash-Next, agentic replay decode: медиана 200.9 tok/s против 171.3 tok/s у Strata 0.2.2 (данные v0.7.0). На одной GPU в v0.7.1 — 104 tok/s с кэшем, описанным выше.

  • Qwen3.8-27B, prefill на реальных текстах: 3401–3211 tok/s при промпте 8k токенов; decode — порядка 139 tok/s в двухкарточном режиме. На одной карте с Q3_K_S квантом та же модель даёт ~10.8 tok/s decode и TTFT около 350 мс — это уже другой класс нагрузки, но для «просто поболтать» на одной видеокарте вполне рабочий вариант.

Справедливое предупреждение от самого автора: Strata в том же agentic replay завершает сценарий раньше, потому что его prefill быстрее, и capy-flash выигрывает именно в медиане decode. Выбор движка зависит от того, что важнее — скорость первого токена после кэшированного контекста (capy-flash) или чистый prefill-прогон (Strata).

Сравнение с альтернативами

Движок Что умеет на этом железе Сильная сторона
capy-flash v0.7.1 Flash-Next NVFP4 + 27B, TP=2 или 1 GPU, MTP3, кэш контекста в RAM Агентные сценарии: TTFT 1.9 с при 83 % cache hit
Strata (fork llama.cpp) Flash-Next IQ3_S / NVFP4, PP до ~2000 tok/s на больших картах Prefill и длинный контекст без CPU-оффлоада экспертов
llama.cpp mainline Qwen3.8-Flash-Next с v0.4.0 (сентябрь 2026), --fit, KV q8_0, MTP draft Универсальность, но без page-locked CPU MoE и кэша диалогов

llama.cpp получил поддержку архитектуры в v0.4.0 (4 сентября 2026) — lazy tensor reading, per-slot server context limits, ggml 0.23.0 — и на одной большой карте с --fit on --fit-target 256 + KV q8_0 это рабочий вариант. Но схема «эксперты в page-locked RAM + TP=2 на двух 16 GB картах» у mainline отсутствует, и именно её нишу занимает capy-flash.

Практические замечания

  • RAM — жёсткое ограничение. Flash-Next просит ~70 GiB свободной оперативки под экспертов. Если в системе уже живёт браузер с десятком вкладок или Docker-демоны, закладывайте 64 GB как минимум, лучше больше.

  • Одна карта = профиль flash-next-1gpu. Он появился/настроен именно в v0.7.x и держит восемь диалогов в RAM; для сценария «один агент, длинная история» это то, ради чего стоит брать этот релиз.

  • MTP включён по умолчанию в профилях. Три draft-токена дают прирост decode; если нужен детерминизм — отключайте --spec.

  • Vision у 27B добавляет вес vision tower; для чисто текстовых артефактов ставьте --no-vision, чтобы освободить VRAM под KV.

  • Версии двигаются быстро. v0.7.2 (23.10) добавил «Pick up where you left off» и измерил prefill 4k/16k/64k = 1671 / 2838 / 2921 tok/s на одной GPU; v0.7.3 — CPU-треды, фикс лога под 64 GB и документацию. Если берётесь за настройку — смотрите changelog перед запуском, поведение профилей между минорными версиями меняется.

Вывод

Capy-flash v0.7.1 — это не «ещё один обёртка над llama.cpp», а отдельная ниша: агентный инференс 125B MoE на двух потребительских Blackwell с оффлоадом экспертов в RAM. Кэш восьми диалогов в оперативке превращает TTFT из 13.3 с в 1.9 с и реплей агента из 858 с в 276 с — это именно тот класс улучшения, который отличает «можно запустить» от «можно работать». Для связки 2×16 GB VRAM + 64 GB RAM проект прямо рассчитан на неё, а для тех, у кого одна карта, профиль flash-next-1gpu закрывает и этот случай.

Если же приоритет — максимальный prefill или работа без CPU-оффлоада (большие карты с 24+ GB VRAM), Strata и mainline llama.cpp остаются впереди по своей части. Но для локального агента на доступном железе capy-flash v0.7.1 сейчас выглядит самым готовым вариантом.

Источники

  1. GitHub: ValerioDolci/capy-flash — README, профили и таблица бенчей (v0.7.1 / v0.7.2, октябрь 2026).

  2. Releases · ValerioDolci/capy-flash — история версий v0.5.4 → v0.7.3.

  3. Qwen/Qwen3.8-Flash-Next (Hugging Face) — модельная карточка: 125B MoE, 6B активных, 51B n-gram эмбеддинги, нативный контекст 262144.

  4. llama.cpp v0.4.0 — Qwen3.8-Flash-Next support — поддержка архитектуры в mainline (сентябрь 2026).