Flash-MoE: Ejecutando el Modelo Qwen de 397B Parámetros en MacBook Pro con C/Metal Puro

✍️ OpenClawRadar📅 Publicado: 22 de marzo de 2026🔗 Source
Flash-MoE: Ejecutando el Modelo Qwen de 397B Parámetros en MacBook Pro con C/Metal Puro
Ad

Implementación Técnica

Flash-MoE ejecuta Qwen3.5-397B-A17B, un modelo Mixture-of-Experts de 397 mil millones de parámetros con 60 capas de transformador: 45 GatedDeltaNet (atención lineal) + 15 atención completa estándar. Cada capa tiene 512 expertos, con K=4 activados por token más un experto compartido. La dimensión oculta es 4096.

Benchmarks de Rendimiento

  • Expertos de 4 bits, kernel FMA: 4.36 tokens/segundo, calidad excelente, llamadas a herramientas completas, 209 GB en disco (mejor actual)
  • Expertos de 4 bits, línea base: 3.90 tokens/segundo, calidad excelente
  • Expertos de 2 bits, confiar en el SO: 5.74 tokens/segundo, buena calidad, 120 GB en disco (rompe JSON/llamadas a herramientas)
  • Pico de token único de 2 bits: 7.05 tokens/segundo, buena calidad (no apto para uso de herramientas)

Nota: La cuantización de 2 bits produce \nombre\ en lugar de "nombre" en la salida JSON, haciendo que las llamadas a herramientas no sean confiables. La de 4 bits es la configuración de producción.

Requisitos de Hardware

  • Máquina: MacBook Pro con Apple M3 Max
  • Chip: CPU de 16 núcleos (12P + 4E), GPU de 40 núcleos, ANE de 16 núcleos
  • Memoria: 48 GB unificada (~400 GB/s de ancho de banda)
  • SSD: 1TB Apple Fabric, 17.5 GB/s lectura secuencial (medido)
  • macOS: 26.2 (Darwin 25.2.0)
Ad

Técnicas Clave

Transmisión de Expertos desde SSD

Los pesos de los expertos (209 GB a 4 bits) se leen desde el SSD NVMe bajo demanda mediante pread() paralelo con grupos de despacho GCD. Solo se cargan los K=4 expertos activos por capa (~6.75 MB cada uno). La caché de páginas del SO gestiona el almacenamiento en caché sin necesidad de caché personalizada (principio "Confiar en el SO"), logrando ~71% de tasa de aciertos de forma natural.

Kernel de Descuantización Optimizado con FMA

El bucle interno de la multiplicación matriz-vector descuantizada de 4 bits reorganiza las matemáticas de (nibble * escala + sesgo) * x a fma(nibble, escala*x, sesgo*x). Precalcular escala*x y sesgo*x permite que la unidad de multiplicación-suma fusionada de la GPU realice la descuantización+multiplicación en una instrucción, resultando en un rendimiento 12% más rápido que la formulación ingenua.

Sombreadores de Computación Metal

Los kernels Metal escritos a mano incluyen:

  • Multiplicación matriz-vector descuantizada de 4 y 2 bits (en mosaico, reducida SIMD, caché de entrada compartida, optimizada FMA)
  • Activación SwiGLU fusionada
  • Normalización RMS (dos pasos: reducción de suma de cuadrados + aplicación)
  • Atención GPU por lotes (Q@K^T, softmax, scores@V) para capas de atención completa
  • RoPE en GPU (fusionado con desentrelazado de Q y normalización de K)
  • Combinación MoE + residual + compuerta sigmoide (kernel fusionado)

Cómputo de Expertos en GPU Diferido

CMD3 (paso hacia adelante del experto) se envía sin esperar. La GPU lo ejecuta mientras la CPU prepara la siguiente capa. La combinación + residual + normalización también están en la GPU, alimentando directamente las proyecciones de atención de la siguiente capa.

BLAS Acelerado para Atención Lineal

La recurrencia de GatedDeltaNet utiliza cblas_sscal, cblas_sgemv y cblas_sger para la actualización de la matriz de estado de 64 cabezas × 128×128, logrando un rendimiento 64% más rápido que el código escalar.

Rendimiento de la Tubería

Promedio por capa a 4 bits: 4.28 ms

  • CMD3(prev) → CMD1: proyecciones de atención + delta-net [1.22 ms GPU]
  • CPU: vaciar resultados [0.01 ms CPU]
  • CMD2: o_proj + norm + enrutamiento + compartido [0.55 ms GPU]
  • CPU: softmax + enrutamiento topK [0.003 ms]
  • E/S: pread paralelo K=4 expertos [2.41 ms SSD]
  • CMD3: paso hacia adelante del experto + combinación + norm [0.04 ms codificar, DIFERIDO]

Restricciones de Arquitectura

En Apple Silicon, el DMA del SSD y el cómputo de la GPU comparten el mismo controlador de memoria y no se pueden superponer de manera rentable. Los kernels de descuantización de la GPU están saturados de ancho de banda a ~418 GiB/s. Incluso pequeños DMA de SSD en segundo plano causan picos de latencia desproporcionados en la GPU a través del arbitraje del controlador de memoria, requiriendo una tubería en serie.

📖 Leer la fuente completa: HN AI Agents

Ad

👀 Ver también

MarkView: Herramienta de código abierto que renderiza y gestiona archivos Markdown generados por IA
Herramientas

MarkView: Herramienta de código abierto que renderiza y gestiona archivos Markdown generados por IA

MarkView es un motor de renderizado con enfoque en la privacidad que muestra archivos Markdown con diagramas Mermaid y fórmulas matemáticas KaTeX, disponible como aplicación web, aplicación nativa para macOS y servidor MCP para integración con Claude Desktop y Cursor.

OpenClawRadar
SmallClaw v1.0.2 añade un sistema de tareas en segundo plano para LLMs locales.
Herramientas

SmallClaw v1.0.2 añade un sistema de tareas en segundo plano para LLMs locales.

SmallClaw v1.0.2 introduce un motor de tareas en segundo plano que ejecuta flujos de trabajo de múltiples pasos de forma autónoma, con verificación de pasos para abordar los problemas de confiabilidad de los modelos pequeños. La actualización ha sido probada en modelos de clase 4B como qwen3:4b en máquinas de 8GB.

OpenClawRadar
Benchmark: MLX vs Ollama ejecutando Qwen3-Coder-Next de 8 bits en MacBook Pro M5 Max
Herramientas

Benchmark: MLX vs Ollama ejecutando Qwen3-Coder-Next de 8 bits en MacBook Pro M5 Max

Un punto de referencia que compara los backends MLX y Ollama ejecutando Qwen3-Coder-Next con cuantización de 8 bits en un MacBook Pro M5 Max con 128 GB de RAM muestra que MLX alcanza aproximadamente 72 tokens por segundo, aproximadamente el doble del rendimiento de Ollama en diversas tareas de programación.

OpenClawRadar
Habilidad de autocuración de código abierto para agentes de IA que detecta y corrige fallas automáticamente.
Herramientas

Habilidad de autocuración de código abierto para agentes de IA que detecta y corrige fallas automáticamente.

Una nueva habilidad de código abierto permite a los agentes de IA detectar automáticamente fallos, diagnosticar causas raíz e implementar correcciones. Incluye un escáner de fallos para crons, subagentes y registros de despliegue, además de una base de datos que aprende de correcciones anteriores.

OpenClawRadar