397B MoE sur MacBook : 4,4 t/s Moteur Flash-MoE
Flash-MoE : Exécution de 397 milliards de paramètres sur un MacBook à 4,4+ jetons/seconde
Imaginez exécuter un modèle Mixture-of-Experts (MoE) de 397 milliards de paramètres sur votre MacBook Pro avec une sortie de qualité production à 4,4+ jetons/seconde. C'est exactement ce que Flash-MoE accomplit - sans Python, sans frameworks, juste du C/Objective-C pur et des shaders Metal ajustés manuellement.
La Bête : Qwen3.5-397B-A17B
Ce n'est pas théorique. Le projet diffuse un modèle quantifié 4 bits de 209 Go depuis le SSD tout en offrant :
| Configuration | Vitesse | Qualité | Disque |
|---|---|---|---|
| Noyau FMA 4 bits | 4,36 t/s | Excellente | 209 Go |
| Baseline 4 bits | 3,90 t/s | Excellente | 209 Go |
| Experts 2 bits | 5,74 t/s | Bonne* | 120 Go |
*2 bits casse la fiabilité JSON/appels d'outils
Vérification de la réalité matérielle
MacBook Pro M3 Max : 48 Go de mémoire unifiée, GPU 40 cœurs, SSD 17,5 Go/s. Pas besoin de centre de données.
Techniques de rupture
1. Streaming d'experts SSD + « Faites confiance à l'OS »
Ne charger que K=4 experts actifs par couche (~6,75 Mo chacun)
Cache de pages OS gère LRU (taux de succès 71 % naturellement)
pread() parallèle via groupes de dispatch GCD
Pas besoin de cache personnalisé
Leçon : LRU Metal personnalisé, compression LZ4 et mmap ont tous performé moins bien.
2. Noyau de déquantification optimisé FMA (+12 % de vitesse)
// Avant : (nibble * scale + bias) * x
// Après : fma(nibble, scale*x, bias*x)
3. Pipeline GPU différé
CMD3(expert fwd) → [DIFFÉRÉ]
CMD1 : projections d'attention
CPU : routage + pread experts
CMD2 : combiner + norm
→ Couche suivante
4. Noyaux Metal écrits à la main
- Matvec déquantifié 4 bits/2 bits (tuilé, SIMD, cache partagé)
- SwiGLU fusionné, RMS norm, combinaison MoE
- Attention GPU batchée (Q@Kᵀ, softmax, scores@V)
- RoPE GPU + désentrelacement
5. Attention linéaire accélérée par BLAS
GatedDeltaNet utilise cblas_sgemv/sger - 64 % plus rapide que le code scalaire.
Ce qu'ils ont écarté (58 expériences)
| Approche échouée | Impact | Pourquoi |
|---|---|---|
| Compression LZ4 | -13 % | Décompression > économies de cache |
| Déquant LUT GPU | -2 % | Sérialisation des registres |
| Prédiction d'experts | -18 % | Pollution du cache |
| mmap experts | -5x | Surcharge de faute de page |
Prêt pour la production
cd metal_infer && make
./infer --prompt "Expliquez l'informatique quantique" --tokens 100
./chat # TUI interactif + appels d'outils
Sécurité : Empreinte mémoire fixe de 6 Go laisse 42 Go pour l'OS + cache de pages. Pas de risque OOM sur la machine de dev principale.
L'article
Déails techniques complets couvrent 90+ expériences et l'histoire de développement humain+IA de 24 heures. Ceci est une inférence Apple Silicon de pointe - open source, testée au combat, et repoussant les limites du matériel.
Étoiles : 3,2k | Fourches : 371 - La communauté reconnaît l'innovation réelle quand elle la voit.