Вдогонку к посту про запуск DeepSeek V4 Flash на Mac: параллельно с исследованием ds4 я посмотрел ещё два проекта для запуска больших MoE-моделей на потребительском железе. У них другое железо и другой подход.


flash-moe⌗

flash-moe написан на чистом C, Objective-C и Metal — без Python и фреймворков. Автор пишет, что собрал движок с AI в паре за 24 часа.

Цель проекта — одна конкретная модель: Qwen3.5-397B-A17B. Это 397 миллиардов параметров, 17 миллиардов активных на токен, 512 экспертов на слой, top-4 плюс один общий эксперт и 60 слоёв: 45 GatedDeltaNet и 15 обычного внимания.

Принцип тот же, что у ds4: эксперты читаются с SSD на лету. Но подход к кэшированию противоположный. Авторы отказались от собственного кэша экспертов и выбрали «Trust the OS»: эксперты читаются параллельным pread(), а кэшированием занимается системный page cache.

Они пробовали собственный LRU-кэш на Metal, malloc-кэш и LZ4-компрессию. Каждый вариант оказался медленнее обычного page cache. Предиктивную предзагрузку тоже проверили и убрали: она давала 25% попаданий и расходовала пропускную способность SSD.

Результат на MacBook Pro M3 Max с 48 ГБ:

  • 4,36 t/s на 4-битных экспертах с рабочим tool calling;
  • 5,74–7,05 t/s на 2-битных экспертах, но при этом ломается JSON и перестают работать вызовы инструментов.

freetoken⌗

freetoken — движок на Python, выросший из кода mini-sglang, SGLang, vLLM и FlashInfer. Поддерживается только железо NVIDIA: RTX 30/40/50.

Здесь эксперты не читаются с диска. Они лежат в оперативной памяти хоста и по PCIe подгружаются в VRAM. Кэш — собственный LRU на GPU.

Есть hybrid-режим: часть недостающих экспертов тянется по PCIe, а часть считается прямо на CPU, если так быстрее. Баланс между PCIe и CPU не захардкожен: движок сам замеряет пропускную способность конкретной машины и решает, где выгоднее добирать экспертов.

Список поддерживаемых моделей шире:

  • DeepSeek V4;
  • GLM-5.2 и 4.7;
  • семейство Qwen3.5/3.6;
  • gpt-oss;
  • Gemma-4;
  • MiniMax-M2.5.

Это сервер, а не однобинарный CLI. В нём есть OpenAI- и Anthropic API, continuous batching, KV-кэш для агентных сценариев и запуск одной командой под Claude Code, Codex или OpenCode.

Сам я freetoken пока не пробовал: у меня нет подходящего железа. flash-moe тоже не запускал, поскольку Qwen3.5-397B-A17B массивнее DeepSeek V4 Flash — 397B параметров, из них 17B активных, против 284B/13B у DeepSeek — и на моём Mac будет ещё медленнее.


Что попробовать дальше⌗

Я с интересом смотрю в сторону Qwen3.8-Flash-Next.

Разница с DeepSeek V4 Flash — в двух вещах.

Первая — активные параметры: 6B против 13B, то есть вдвое меньше вычислений на токен.

Вторая — внимание. У DS4 Flash все 43 слоя держат растущий KV-кэш, пусть и сжатый. У Qwen3.8-Flash-Next из 48 слоёв 36 — Gated DeltaNet с рекуррентным состоянием фиксированного размера. Стоимость обработки токена на них не зависит от длины контекста.

Это должно положительно повлиять на скорость prefill. В целом можно ожидать заметно лучшей производительности Qwen3.8-Flash-Next на моём Mac и, возможно, запуска q4-кванта.