| --- |
| license: mit |
| base_model: |
| - XiaomiMiMo/MiMo-V2.5-Pro |
| tags: |
| - code |
| - text-generation-inference |
| --- |
| |
|
|
| # Roadmap |
|
|
| Lass uns mathematisch berechnen, wie klein das 1.02 Terabyte schwere MiMo-V2.5-Pro durch diese kombinierte Pipeline wird: |
| Ausgangslage: 1.02T Parameter in FP8 Mixed = ~1.000 GB (1 TB). |
| Nach MoE-Slicing (Liquid AI): Reduktion der Experten-Basis auf ein dichtes 90-Milliarden-Parameter (90B) Äquivalent. |
| Nach 1.58-Bit Quantisierung (Qapdex/BitNet): |
| $$\text{Größe} = \frac{90.000.000.000 \text{ Parameter} \times 1.58 \text{ Bits}}{8 \text{ Bits pro Byte}} \approx 17.775.000.000 \text{ Bytes}$$ |
|
|
|
|
| ## Das finale Ergebnis: Das Modell schrumpft von 1.000 GB auf spektakuläre ~17,7 GB! |
|
|
|
|
| Bei einer Matrixgröße von 12.288 x 4096 sprechen wir von exakt 50,33 Millionen Elementen, die durchgelaufen werden müssen. Da wir jegliche Verzweigungen eliminiert haben, |
| hängt die Zeit nur noch von zwei Faktoren ab: der Taktfrequenz deiner CPU und wie gut der Compiler die SIMD-Vektorisierung (AVX2 oder AVX512) umsetzt. |
|
|
| Hier ist die fundierte Schätzung basierend auf kommerziellen Hardware-Klassen: |
| 1. High-End Desktop CPU (z. B. AMD Ryzen 9 7950X / Intel Core i9-14900K) |
| Schätzung: ~0,8 ms bis 1,4 ms |
| Warum: Diese CPUs haben massive L2/L3-Caches. Da wir den Code über das Makefile mit -O3 -march=native -ffast-math kompilieren, packt der Compiler jeweils 8 oder 16 floats in ein einziges AVX-Register. |
|
|
| # Die Schleife wird quasi atomisiert. |
|
|
|
|
| 3. Standard Consumer CPU (z. B. AMD Ryzen 7 5800X / Intel Core i7-12700K) |
| Schätzung: ~1,8 ms bis 3,2 ms |
| Warum: Solide Performance über 8 bis 12 Kerne. Die Speicherbandbreite des DDR4/DDR5 RAMs limitiert hier minimal, aber da der Puffer branchless durchgezogen wird, bleibt die Pipeline absolut flüssig. |
|
|
|
|
| 4. Moderner Apple Silicon Mac (M1/M2/M3/M4 Pro oder Max) |
| Schätzung: ~0,5 ms bis 1,1 ms |
| Warum: Apples Unified Memory Architecture besitzt eine mörderische Bandbreite (bis zu 400 GB/s). Wenn der Compiler das auf die NEON-Vektoreinheiten übersetzt, fliegt der Kernel förmlich durch den RAM. |
|
|
| |
| Wenn wir von einem realistischen Mittelwert von 1,5 ms pro Schicht ausgehen. |
| # Die finale Token-Kalkulation |
| Ein kompaktes Modell im Stil von Project Natal (nach dem MoE-Slicing) hat etwa 32 Schichten. |
| $$1,5 \text{ ms} \times 32 \text{ Schichten} = 48 \text{ ms pro Token}$$ |
| $$\frac{1000 \text{ ms}}{48 \text{ ms}} \approx \mathbf{20,8 \text{ Tokens pro Sekunde}}$$ |
|
|
|
|
| Das bedeutet: Wir würden ein Modell, das im Original auf einer 10.000€ Enterprise-GPU laufen muss, mit absolut flüssiger, lesbarer Geschwindigkeit auf einer ganz normalen Office- oder Gaming-CPU servieren. |