Flash-MoE: Ausführen eines 397B-Parameter-Qwen-Modells auf dem MacBook Pro mit reinem C/Metal

Technische Implementierung
Flash-MoE führt Qwen3.5-397B-A17B aus, ein Mixture-of-Experts-Modell mit 397 Milliarden Parametern und 60 Transformer-Schichten: 45 GatedDeltaNet (lineare Aufmerksamkeit) + 15 Standard-Vollaufmerksamkeit. Jede Schicht hat 512 Experten, wobei K=4 pro Token aktiviert werden plus einem gemeinsamen Experten. Die versteckte Dimension beträgt 4096.
Leistungsbenchmarks
- 4-Bit-Experten, FMA-Kernel: 4,36 Token/Sekunde, ausgezeichnete Qualität, vollständige Tool-Aufrufe, 209 GB auf der Festplatte (aktuell beste)
- 4-Bit-Experten, Basisversion: 3,90 Token/Sekunde, ausgezeichnete Qualität
- 2-Bit-Experten, OS-Vertrauen: 5,74 Token/Sekunde, gute Qualität, 120 GB auf der Festplatte (bricht JSON/Tool-Aufrufe)
- 2-Bit Spitzenwert einzelner Token: 7,05 Token/Sekunde, gute Qualität (nicht für Tool-Nutzung geeignet)
Hinweis: 2-Bit-Quantisierung erzeugt \name\ anstelle von "name" in der JSON-Ausgabe, was Tool-Aufrufe unzuverlässig macht. 4-Bit ist die Produktionskonfiguration.
Hardware-Anforderungen
- Maschine: MacBook Pro mit Apple M3 Max
- Chip: 16-Kern-CPU (12P + 4E), 40-Kern-GPU, 16-Kern-ANE
- Arbeitsspeicher: 48 GB vereinheitlicht (~400 GB/s Bandbreite)
- SSD: 1 TB Apple Fabric, 17,5 GB/s sequenzielles Lesen (gemessen)
- macOS: 26.2 (Darwin 25.2.0)
Schlüsseltechniken
SSD-Experten-Streaming
Experten-Gewichte (209 GB bei 4 Bit) werden bei Bedarf von der NVMe-SSD über parallele pread() mit GCD-Dispatch-Gruppen gelesen. Nur die K=4 aktiven Experten pro Schicht werden geladen (~6,75 MB jeweils). Der OS-Seitencache verwaltet das Caching ohne benutzerdefinierten Cache („Vertraue dem OS“-Prinzip) und erreicht natürlich ~71 % Trefferquote.
FMA-optimierter Dequant-Kernel
Die innere Schleife der 4-Bit-dequantisierten Matrix-Vektor-Multiplikation ordnet die Mathematik von (Nibble * Skalierung + Bias) * x zu fma(Nibble, Skalierung*x, Bias*x) um. Das Vorberechnen von Skalierung*x und Bias*x ermöglicht es der GPU-Fused-Multiply-Add-Einheit, Dequantisierung+Multiplikation in einer Anweisung durchzuführen, was zu 12 % schnellerer Leistung als die naive Formulierung führt.
Metal-Compute-Shader
Handgeschriebene Metal-Kernel umfassen:
- 4-Bit- und 2-Bit-dequantisierte Matrix-Vektor-Multiplikation (gekachelt, SIMD-reduziert, gemeinsamer Eingabe-Cache, FMA-optimiert)
- Verschmolzene SwiGLU-Aktivierung
- RMS-Normalisierung (zweistufig: Quadratsummen-Reduktion + Anwendung)
- Gebündelte GPU-Aufmerksamkeit (Q@K^T, Softmax, Scores@V) für Vollaufmerksamkeitsschichten
- GPU-RoPE (verschmolzen mit Q-Entflechtung und K-Normalisierung)
- MoE-Kombination + Rest + Sigmoid-Gate (verschmolzener Kernel)
Verzögerte GPU-Experten-Berechnung
CMD3 (Experten-Vorwärtspass) wird ohne Wartezeit übermittelt. Die GPU führt ihn aus, während die CPU die nächste Schicht vorbereitet. Die Kombination + Rest + Normierung erfolgen ebenfalls auf der GPU und speisen direkt in die Aufmerksamkeitsprojektionen der nächsten Schicht ein.
Accelerate-BLAS für lineare Aufmerksamkeit
Die GatedDeltaNet-Rekurrenz verwendet cblas_sscal, cblas_sgemv und cblas_sger für die 64-Kopf × 128×128-Zustandsmatrix-Aktualisierung und erreicht 64 % schnellere Leistung als Skalarcode.
Pipeline-Leistung
Durchschnitt pro Schicht bei 4 Bit: 4,28 ms
- CMD3(vorher) → CMD1: Aufmerksamkeitsprojektionen + Delta-Netz [1,22 ms GPU]
- CPU: Ergebnisse leeren [0,01 ms CPU]
- CMD2: o_proj + Norm + Routing + gemeinsam [0,55 ms GPU]
- CPU: Softmax + TopK-Routing [0,003 ms]
- E/A: paralleles pread K=4 Experten [2,41 ms SSD]
- CMD3: Experten-Vorwärtspass + Kombination + Norm [0,04 ms kodieren, VERZÖGERT]
Architekturbeschränkungen
Auf Apple Silicon teilen sich SSD-DMA und GPU-Berechnung denselben Speichercontroller und können nicht profitabel überlappt werden. Die Dequant-Kernels der GPU sind bei ~418 GiB/s bandbreitengesättigt. Selbst kleiner Hintergrund-SSD-DMA verursacht unverhältnismäßige GPU-Latenzspitzen durch Speichercontroller-Arbitrierung, was eine serielle Pipeline erfordert.
📖 Read the full source: HN AI Agents
👀 Siehe auch

ClawControl v1.3.1 fügt Medienunterstützung, Sprachdiktat und Linux-Paketierung hinzu.
ClawControl v1.3.1 ist ein plattformübergreifender OpenClaw-Client, der jetzt Bildfreigabe, Sprachdiktatur per Weckwort, Nutzungsdiagramme und Linux-AppImage/.deb-Pakete unterstützt. Das Release enthält Sicherheitsupdates, die OpenClaw 2.19+-Benutzer dazu verpflichten, Control UI Allowed Origins zu aktualisieren.

Feinabstimmung von Qwen 14B für die Discord-Autovervollständigung
Ein Entwickler hat das Qwen 14B Modell mithilfe seines Discord-Nachrichtendatensatzes angepasst, um ein Autocomplete-Tool zu erstellen.

Memento v1.0: Persistenter Speicher-MCP-Server für Claude Code mit 17 Werkzeugen
Memento v1.0 ist ein persistenter Speicher-MCP-Server für Claude Code, der mit 17 Tools, Hybridsuche, Widerspruchserkennung und einem visuellen Speichergraphen ausgestattet ist. Er läuft lokal ohne Cloud-Abhängigkeiten und unterstützt mehrere IDEs, darunter Claude Code, Cursor, Windsurf und OpenCode.

Verwandle deine Wissensdatenbank in ein Wiki + MCP-Server für Claude
Eine Demo, wie Akyn eine Wissensdatenbank (URL, PDF, Notion) in ein Wiki verwandelt und als MCP-Server bereitstellt, sodass Claude darin suchen und schreiben kann – mit OAuth, Human-in-the-Loop und automatischer Synchronisierung.