Flash-MoE : Exécution du modèle Qwen de 397 milliards de paramètres sur MacBook Pro avec du C/Metal pur

✍️ OpenClawRadar📅 Publié: March 22, 2026🔗 Source
Flash-MoE : Exécution du modèle Qwen de 397 milliards de paramètres sur MacBook Pro avec du C/Metal pur
Ad

Implémentation technique

Flash-MoE exécute Qwen3.5-397B-A17B, un modèle Mixture-of-Experts de 397 milliards de paramètres avec 60 couches de transformateurs : 45 GatedDeltaNet (attention linéaire) + 15 attention complète standard. Chaque couche comporte 512 experts, avec K=4 activés par token plus un expert partagé. La dimension cachée est de 4096.

Benchmarks de performance

  • Experts 4 bits, noyau FMA : 4,36 tokens/seconde, excellente qualité, appel d'outils complet, 209 Go sur disque (meilleure configuration actuelle)
  • Experts 4 bits, référence : 3,90 tokens/seconde, excellente qualité
  • Experts 2 bits, confiance OS : 5,74 tokens/seconde, bonne qualité, 120 Go sur disque (incompatible avec JSON/appel d'outils)
  • Pic 2 bits par token unique : 7,05 tokens/seconde, bonne qualité (inadapté à l'utilisation d'outils)

Note : la quantification 2 bits produit \name\ au lieu de "name" dans la sortie JSON, rendant l'appel d'outils peu fiable. La configuration 4 bits est celle de production.

Exigences matérielles

  • Machine : MacBook Pro avec Apple M3 Max
  • Puce : CPU 16 cœurs (12P + 4E), GPU 40 cœurs, ANE 16 cœurs
  • Mémoire : 48 Go unifiée (~400 Go/s de bande passante)
  • SSD : 1 To Apple Fabric, 17,5 Go/s lecture séquentielle (mesuré)
  • macOS : 26.2 (Darwin 25.2.0)
Ad

Techniques clés

Streaming d'experts depuis SSD

Les poids des experts (209 Go en 4 bits) sont lus depuis le SSD NVMe à la demande via pread() parallèle avec groupes de dispatch GCD. Seuls les K=4 experts actifs par couche sont chargés (~6,75 Mo chacun). Le cache de pages du système gère la mise en cache sans cache personnalisé nécessaire (principe "Confiance au système"), atteignant naturellement un taux de réussite d'environ 71 %.

Noyau de déquantification optimisé FMA

La boucle interne de la multiplication matrice-vecteur déquantifiée 4 bits réorganise les calculs de (nibble * échelle + biais) * x en fma(nibble, échelle*x, biais*x). Le pré-calcul de échelle*x et biais*x permet à l'unité FMA du GPU d'effectuer déquantification+multiplication en une instruction, résultant en une performance 12 % plus rapide que la formulation naïve.

Shaders de calcul Metal

Les noyaux Metal écrits à la main incluent :

  • Multiplication matrice-vecteur déquantifiée 4 et 2 bits (tuilée, réduite SIMD, cache d'entrée partagé, optimisée FMA)
  • Activation SwiGLU fusionnée
  • Normalisation RMS (deux passes : réduction somme-des-carrés + application)
  • Attention GPU par lots (Q@K^T, softmax, scores@V) pour les couches d'attention complète
  • RoPE GPU (fusionnée avec désentrelacement Q et normalisation K)
  • Combinaison MoE + résiduel + porte sigmoïde (noyau fusionné)

Calcul d'expert GPU différé

CMD3 (passe avant des experts) est soumis sans attente. Le GPU l'exécute pendant que le CPU prépare la couche suivante. La combinaison + résiduel + normalisation sont également sur GPU, alimentant directement les projections d'attention de la couche suivante.

Accelerate BLAS pour l'attention linéaire

La récurrence GatedDeltaNet utilise cblas_sscal, cblas_sgemv et cblas_sger pour la mise à jour de la matrice d'état 64 têtes × 128×128, atteignant une performance 64 % plus rapide que le code scalaire.

Performance du pipeline

Moyenne par couche en 4 bits : 4,28 ms

  • CMD3(précédent) → CMD1 : projections d'attention + delta-net [1,22 ms GPU]
  • CPU : vidage des résultats [0,01 ms CPU]
  • CMD2 : o_proj + norm + routage + partagé [0,55 ms GPU]
  • CPU : softmax + routage topK [0,003 ms]
  • E/S : pread parallèle K=4 experts [2,41 ms SSD]
  • CMD3 : passe avant des experts + combinaison + norm [0,04 ms encodage, DIFFÉRÉ]

Contraintes d'architecture

Sur Apple Silicon, le DMA SSD et le calcul GPU partagent le même contrôleur mémoire et ne peuvent pas être efficacement superposés. Les noyaux de déquantification du GPU sont saturés en bande passante à ~418 Gio/s. Même un petit DMA SSD en arrière-plan provoque des pics de latence GPU disproportionnés via l'arbitrage du contrôleur mémoire, nécessitant un pipeline sérialisé.

📖 Read the full source: HN AI Agents

Ad

👀 See Also

Développement Guidé par Manuel : Une Méthode pour Prévenir la Dérivation Confiante du Code Claude
Tools

Développement Guidé par Manuel : Une Méthode pour Prévenir la Dérivation Confiante du Code Claude

Le développement piloté manuellement (MDD) est une méthode qui traite de la divergence confiante dans Claude Code, où l'IA produit un code erroné qui passe ses propres tests. Lors d'un audit de production, le MDD a identifié 190 problèmes, écrit 876 nouveaux tests en moins de 8 heures et éliminé toutes les violations de règles.

OpenClawRadar
DAUB MCP Server Permet à Claude de Générer et Rendre des Interfaces Utilisateur via des Spécifications JSON
Tools

DAUB MCP Server Permet à Claude de Générer et Rendre des Interfaces Utilisateur via des Spécifications JSON

DAUB est un serveur MCP qui permet à Claude de générer des interfaces utilisateur directement à partir d'invites en langage naturel, produisant des spécifications JSON structurées qui s'affichent comme des interfaces en direct sans génération de code ni compilation. Il expose quatre outils, notamment generate_ui, render_spec, validate_spec et get_component_catalog.

OpenClawRadar
Objectif pour Claude Code : tâches persistantes avec examen contradictoire
Tools

Objectif pour Claude Code : tâches persistantes avec examen contradictoire

Une commande /goal pour Claude Code qui le maintient sur une tâche longue à travers de nombreux tours, avec une session Claude distincte et facultative qui examine le résultat final pour éviter une complétion prématurée.

OpenClawRadar
Orion : Contourner CoreML pour exécuter et entraîner des LLM directement sur le Neural Engine d'Apple
Tools

Orion : Contourner CoreML pour exécuter et entraîner des LLM directement sur le Neural Engine d'Apple

Orion est un système open-source en Objective-C qui contourne CoreML d'Apple pour exécuter et entraîner des LLM directement sur le moteur neuronal Apple (ANE), atteignant plus de 170 tokens/s pour le décodage GPT-2 124M et un entraînement stable multi-étapes sur un transformateur de 110 millions de paramètres.

OpenClawRadar