Flash-MoE: Запуск модели Qwen с 397 миллиардами параметров на MacBook Pro с использованием чистого C/Metal

Техническая реализация
Flash-MoE запускает Qwen3.5-397B-A17B — модель смеси экспертов с 397 миллиардами параметров и 60 трансформерными слоями: 45 GatedDeltaNet (линейное внимание) + 15 стандартных слоёв полного внимания. Каждый слой содержит 512 экспертов, с K=4 активированными на токен плюс один общий эксперт. Размер скрытого слоя — 4096.
Тесты производительности
- 4-битные эксперты, ядро FMA: 4.36 токена/сек, отличное качество, полная поддержка вызова инструментов, 209 ГБ на диске (текущий лучший вариант)
- 4-битные эксперты, базовый вариант: 3.90 токена/сек, отличное качество
- 2-битные эксперты, доверие ОС: 5.74 токена/сек, хорошее качество, 120 ГБ на диске (нарушает JSON/вызов инструментов)
- 2-битные, пиковая скорость на одном токене: 7.05 токена/сек, хорошее качество (не подходит для использования инструментов)
Примечание: 2-битное квантование выдаёт \name\ вместо "name" в выводе JSON, что делает вызов инструментов ненадёжным. 4-битная конфигурация используется для продакшена.
Требования к оборудованию
- Устройство: MacBook Pro с Apple M3 Max
- Чип: 16-ядерный CPU (12P + 4E), 40-ядерный GPU, 16-ядерный ANE
- Память: 48 ГБ унифицированной (~400 ГБ/с пропускной способности)
- SSD: 1 ТБ Apple Fabric, 17.5 ГБ/с последовательного чтения (измерено)
- macOS: 26.2 (Darwin 25.2.0)
Ключевые технологии
Потоковая загрузка экспертов с SSD
Веса экспертов (209 ГБ при 4-битном квантовании) считываются с NVMe SSD по запросу через параллельные вызовы pread() с группами диспетчеризации GCD. Загружаются только K=4 активных эксперта на слой (~6.75 МБ каждый). Кэширование управляется кэшем страниц ОС без необходимости в пользовательском кэше (принцип "Доверяй ОС"), что естественным образом обеспечивает ~71% попаданий.
Оптимизированное ядро де-квантования с FMA
Внутренний цикл 4-битного де-квантованного матрично-векторного умножения перестраивает вычисления с (ниббл * масштаб + смещение) * x на fma(ниббл, масштаб*x, смещение*x). Предварительный расчёт масштаб*x и смещение*x позволяет блоку FMA GPU выполнить де-квантование+умножение за одну инструкцию, что даёт на 12% более высокую производительность по сравнению с наивной формулировкой.
Metal Compute-шейдеры
Написанные вручную Metal-ядра включают:
- 4-битное и 2-битное де-квантованное матрично-векторное умножение (тайловое, с SIMD-редукцией, общим кэшем входных данных, оптимизированное под FMA)
- Объединённую активацию SwiGLU
- RMS-нормализацию (двухпроходная: редукция суммы квадратов + применение)
- Пакетное GPU-внимание (Q@K^T, softmax, scores@V) для слоёв полного внимания
- GPU RoPE (объединённое с деинтерливингом Q и нормализацией K)
- Объединение MoE + остаточная связь + сигмоидный гейт (объединённое ядро)
Отложенные вычисления экспертов на GPU
CMD3 (прямой проход эксперта) отправляется без ожидания. GPU выполняет его, пока CPU подготавливает следующий слой. Объединение + остаточная связь + нормализация также выполняются на GPU, передавая данные напрямую в проекции внимания следующего слоя.
Accelerate BLAS для линейного внимания
Рекуррентность GatedDeltaNet использует cblas_sscal, cblas_sgemv и cblas_sger для обновления матрицы состояния 64-голов × 128×128, что обеспечивает на 64% более высокую производительность по сравнению со скалярным кодом.
Производительность конвейера
Среднее время на слой при 4-битном квантовании: 4.28 мс
- CMD3(предыдущий) → CMD1: проекции внимания + delta-net [1.22 мс GPU]
- CPU: сброс результатов [0.01 мс CPU]
- CMD2: o_proj + нормализация + маршрутизация + общий [0.55 мс GPU]
- CPU: softmax + topK маршрутизация [0.003 мс]
- Ввод-вывод: параллельные pread K=4 экспертов [2.41 мс SSD]
- CMD3: прямой проход эксперта + объединение + нормализация [0.04 мс кодирование, ОТЛОЖЕНО]
Архитектурные ограничения
На Apple Silicon DMA SSD и вычисления на GPU используют один и тот же контроллер памяти и не могут эффективно перекрываться. Де-квантующие ядра GPU насыщают пропускную способность на уровне ~418 ГиБ/с. Даже небольшой фоновый DMA SSD вызывает непропорциональные скачки задержки GPU из-за арбитража контроллера памяти, что требует последовательного конвейера.
📖 Read the full source: HN AI Agents
👀 Смотрите также

Навыки Claude: 12 строгих наборов правил кодирования для TypeScript, Rust, Swift, Go, JS, Postgres и аудитов
12 файлов Markdown с авторитетными правилами, учитывающими версии, для TS, Rust, Swift, Go, JS, Postgres, безопасности, производительности, тестирования, проверки кода, стандартов GitHub и git-коммитов. MIT, бесплатно, без регистрации.

Пленг: Самостоятельно размещаемая облачная платформа с управлением инфраструктурой на основе искусственного интеллекта
Pleng — это платформа для самостоятельного размещения в облаке с открытой лицензией AGPL-3.0, которая использует ИИ-агента (в настоящее время Claude) для управления инфраструктурой через команды бота в Telegram. Она развертывается из репозиториев GitHub или локальных директорий с автоматической маршрутизацией Traefik, SSL-сертификатами Let's Encrypt и базовой аналитикой.

Красная королева: Детерминированный оркестратор, запускающий Claude Code в качестве пула работников
Red Queen использует конечный автомат для оркестрации подпроцессов Claude Code, устраняя ошибки маршрутизации LLM и потерю токенов из-за мега-промптов.

SWE-rebench-V2 выпущен: Крупнейший открытый мультиязычный набор данных для обучения кодовых агентов
Nebius выпустил SWE-rebench-V2, в настоящее время самый большой открытый набор данных для обучения кодирующих агентов, с автоматизированным конвейером для извлечения RL-сред в масштабе и специально разработанный для крупномасштабного обучения с подкреплением.