397B MoE en MacBook: Motor Flash-MoE a 4,4 t/s
Flash-MoE: Ejecutando 397 mil millones de parámetros en un MacBook a 4,4+ tokens/segundo
Imagina ejecutar un modelo Mixture-of-Experts (MoE) de 397 mil millones de parámetros en tu MacBook Pro con salida de calidad de producción a 4,4+ tokens/segundo. Eso es exactamente lo que logra Flash-MoE - sin Python, sin frameworks, solo C/Objective-C puro y shaders Metal ajustados manualmente.
La bestia: Qwen3.5-397B-A17B
Esto no es teórico. El proyecto transmite un modelo cuantizado de 4 bits de 209 GB desde SSD mientras ofrece:
| Configuración | Velocidad | Calidad | Disco |
|---|---|---|---|
| Kernel FMA de 4 bits | 4,36 t/s | Excelente | 209 GB |
| Línea base de 4 bits | 3,90 t/s | Excelente | 209 GB |
| Expertos de 2 bits | 5,74 t/s | Buena* | 120 GB |
*2 bits rompe la fiabilidad de JSON/llamadas a herramientas
Verificación de la realidad del hardware
MacBook Pro M3 Max: 48 GB de memoria unificada, GPU de 40 núcleos, SSD de 17,5 GB/s. No se necesita centro de datos.
Técnicas innovadoras
1. Streaming de expertos desde SSD + "Confía en el SO"
Solo carga K=4 expertos activos por capa (~6,75 MB cada uno)
La caché de páginas del SO maneja LRU (tasa de acierto del 71% de forma natural)
pread() paralelo vía grupos de despacho GCD
No se necesita caché personalizada
Lección: LRU Metal personalizado, compresión LZ4 y mmap funcionaron peor.
2. Kernel de desquantización optimizado con FMA (+12% de velocidad)
// Antes: (nibble * scale + bias) * x
// Después: fma(nibble, scale*x, bias*x)
3. Pipeline de GPU diferido
CMD3(cálculo fwd experto) → [DIFERIDO]
CMD1: proyecciones de atención
CPU: enrutamiento + pread expertos
CMD2: combinar + normalización
→ Siguiente capa
4. Kernels Metal escritos a mano
- matvec desquantizado de 4 bits/2 bits (en mosaico, SIMD, caché compartida)
- SwiGLU fusionado, RMS norm, combinación MoE
- Atención GPU en lotes (Q@Kᵀ, softmax, scores@V)
- RoPE GPU + desentrelazado
5. Atención lineal acelerada por BLAS
GatedDeltaNet usa cblas_sgemv/sger - 64% más rápido que código escalar.
Lo que descartaron (58 experimentos)
| Enfoque fallido | Impacto | Por qué |
|---|---|---|
| Compresión LZ4 | -13% | Descompresión > ahorros de caché |
| Desquant LUT GPU | -2% | Serialización de registros |
| Predicción de expertos | -18% | Contaminación de caché |
| Expertos mmap | -5x | Sobrecarga de fallos de página |
Listo para producción
cd metal_infer && make
./infer --prompt "Explica la computación cuántica" --tokens 100
./chat # TUI interactivo + llamadas a herramientas
Seguridad: Huella de memoria fija de 6 GB deja 42 GB para SO + caché de páginas. Sin riesgo de OOM en la máquina principal de desarrollo.
El paper
Detalles técnicos completos cubren más de 90 experimentos y la historia de desarrollo humano+IA de 24 horas. Esto es inferencia state-of-the-art en Apple Silicon - de código abierto, probado en batalla y empujando los límites del hardware.
Estrellas: 3,2k | Forks: 371 - La comunidad reconoce la innovación real cuando la ve.