Back openDesk Edu for a sovereign, open-source education — every vote counts.
Vote nowSave products you love by clicking the heart icon.
Side-by-side comparison of n8n and Dify for AI-powered automation: architecture, use cases, when to use which, and how to run both in production with Docker Compose.
Ein Modell mit 27 Milliarden Parametern und einem Kontext von 128.000 Token auf einem Laptop auszuführen, klingt so, als bräuchte man eine 48-GB-GPU. Reine Transformer-Modelle benötigen einen KV-Cache, der linear mit der Kontextlänge wächst – bei 128k Token benötigt ein 27B-Modell allein für den Key-Value-Cache etwa 33 GB. Das entspricht dem VRAM von drei RTX 4080 Laptop-GPUs.
Der Flaschenhals sind nicht die Modellgewichte. Ein 27B-Modell mit Q4_K_M-Quantisierung ist etwa 17 GB groß – massiv, aber durch partielles CPU-Offloading handhabbar. Der Flaschenhals ist der KV-Cache, und das ist der Grund, warum die meisten Leute 7B-Modelle mit 8k Kontext nutzen und es dabei belassen.
Qwen3.8-27B ändert die Spielregeln. Es verwendet eine hybride Attention/SSM-Architektur: 48 seiner 65 Layer sind State-Space-Modelle im Mamba-Stil, die überhaupt keinen KV-Cache benötigen. Nur 17 Layer (jeder 4.) nutzen Standard-Attention. Der KV-Cache ist damit 5,9-mal kleiner als bei einem reinen Attention-Modell derselben Größe.
Dieser Artikel benchmarkt diese Behauptung auf echter Hardware: einer RTX 4080 Laptop mit 12 GB VRAM, unter Verwendung von llama.cpp mit CUDA.
| Komponente | Spezifikation |
|---|---|
| CPU | Intel Core i9-14900HX (24C/32T, P-cores bis 5,8 GHz) |
| GPU | NVIDIA RTX 4080 Laptop (12 GB GDDR6X, Ada Lovelace SM 8.9) |
| RAM | 64 GB DDR5-5600 (2x32 GB Kingston) |
| Speicher | 2x Samsung 990 PRO 4TB NVMe RAID |
| OS | Windows 11, CUDA 12.4 |
| Eigenschaft | Wert |
|---|---|
| Modell | Qwen3.8-27B Abliterated Q4_K_M |
| Parameter | 27,3B (dense) |
| Dateigröße | 16,8 GB |
| Architektur | qwen35 hybrid: 17 attention + 48 SSM/Mamba layers |
| Full Attention Intervall | Jeder 4. Layer |
| Nativer Kontext | 256.000 Token |
| Tool Calling | Integriert |
| MTP | 1 speculative decoding draft layer |
| Quelle | Blackfrost-AI/Qwen3.8-27B-ABLITERATED-GGUF |
22 von 65 Layern wurden auf die GPU ausgelagert (34 %), 43 verbleiben auf der CPU (66 %). Dies lässt bei einem maximalen Kontext von 128k einen GPU-Puffer von 3,4 GB.
./build/bin/Release/llama-server.exe \
-m models/Qwen3.8-27B-ABLITERATED-Q4_K_M.gguf \
-c 131072 \
-ngl 22 \
--temp 0.6 \
--top-k 40 \
-np 1
Die hybride Architektur teilt den KV-Cache auf natürliche Weise auf. Mit den Layern 0-21 auf der GPU (die 6 der 17 Attention-Layer enthalten) und den Layern 22-64 auf der CPU (die 11 Attention-Layer enthalten), verteilt sich der KV-Cache wie folgt:
| Zuweisung | Größe | Notizen |
|---|---|---|
| GPU-Modell (22 Layer) | 5,7 GB | |
| GPU KV (6 Attn-Layer, 128k) | 3,1 GB | |
| GPU Gesamt | 8,8 GB | 3,4 GB Puffer |
| CPU-Modell (43 Layer) | 11,1 GB | |
| CPU KV (11 Attn-Layer, 128k) | 5,7 GB | |
| CPU Gesamt | 16,8 GB | von 64 GB |
| System Gesamt | 25,5 GB |
Kontrafaktisch: Ein reines Attention-27B-Modell benötigt bei 128k einen KV-Cache von 32,7 GB. Das passt überhaupt nicht in 12 GB VRAM – man bräuchte eine zweite GPU oder eine Desktop-Karte. Die SSM-Layer reduzieren den KV-Cache um den Faktor 5,9, was das gesamte Setup erst ermöglicht.
Dies ist das interessanteste Ergebnis. Prefill beschreibt, wie schnell das Modell Ihren Input-Prompt verarbeitet. Bei reinen Attention-Modellen verschlechtert sich dies signifikant mit wachsendem Kontext, da jeder Attention-Layer eine Arbeit von O(n²) über die Sequenzlänge verrichtet.
| Input-Token | tok/s | Zeit | % vom Peak |
|---|---|---|---|
| 128 | 236 | 0,5s | 99% |
| 512 | 236 | 2,2s | 99% |
| 2.048 | 238 | 8,6s | 100% |
| 4.096 | 221 | 18,5s | 93% |
| 8.192 | 210 | 39,1s | 88% |
| 16.384 | 205 | 79,8s | 86% |
| 32.768 | 191 | 171,3s | 80% |
Der Sprung von 512 Token auf 32.768 Token ist eine 64-fache Steigerung der Input-Größe. Die Prefill-Geschwindigkeit sinkt von 236 tok/s auf 191 tok/s – eine Degradation von nur 19 %. Bei einem reinen Attention-27B-Modell im gleichen Bereich würde man eine Degradation von 40-60 % erwarten.
Warum? Weil 74 % der Layer (die SSM-Layer) in Bezug auf die Kontextlänge O(1) sind. Sie verrichten die gleiche Menge an Arbeit, egal ob der Input 512 oder 32k Token umfasst. Nur die 17 Attention-Layer verursachen quadratische Kosten, und selbst diese werden über die SSM-Layer amortisiert.
Die Generierung erzeugt einen Token nach dem anderen. Hier ist die Speicherbandbreite der Flaschenhals, nicht die Rechenleistung. Jeder Layer muss seine gesamte Gewichtsmatrix für jeden einzelnen Token lesen.
| GPU-Layer | CPU-Layer | tok/s | Pro Token | vs. Baseline |
|---|---|---|---|---|
| 10 | 55 | 2,05 | 488ms | Baseline |
| 22 | 43 | 2,76 | 362ms | +35% |
| 35 | 30 | 2,92 | 342ms | +42% |
Die entscheidende Erkenntnis: Die Generierungsgeschwindigkeit ist über alle Kontextlängen hinweg konstant. Egal ob der Kontext 1k oder 128k Token umfasst, man erhält 2,76 tok/s. Die SSM-Layer tragen dazu bei – ihr Zustand ist ein Puffer fester Größe, sodass das Wachstum des KV-Caches in den Attention-Layern nicht dominiert.
Die zweite Erkenntnis: GPU-Layer haben einen abnehmenden Grenznutzen. Die Steigerung von 10 auf 22 GPU-Layer bringt +35 %. Von 22 auf 35 bringt sie nur noch +6 %. Der Flaschenhals ist die DDR5-RAM-Bandbreite für die 43 CPU-Layer. Die GPU ist schnell, bleibt aber im Leerlauf, während sie darauf wartet, dass die CPU-Layer fertig werden.
Ein typischer agentischer Coding-Durchgang: Kontext senden (Projektdateien, Gesprächshistorie, Tool-Outputs), eine Antwort erhalten (Tool-Aufruf, Code-Edit oder Analyse).
| Kontext | Prefill | Generierung (128 tok) | Gesamt | TTFT |
|---|---|---|---|---|
| 4k | 18,5s | 46,4s | 64,9s | 18,5s |
| 8k | 39,1s | 46,4s | 85,5s | 39,1s |
| 16k | 79,8s | 46,4s | 126,2s | 79,8s |
| 32k | 171,3s | 46,4s | 217,7s | 171,3s |
Die Generierungszeit ist bei jeder Kontextlänge identisch. Bei 8k Kontext macht die Generierung 54 % des Durchgangs aus. Bei 32k sind es nur noch 21 %. Der Flaschenhals verschiebt sich von einer ausgewogenen Last hin zu einer Prefill-dominanten Last, aber die Generierung wird niemals langsamer.
Bei einem reinen Attention-Modell macht jede Datei, die Sie zum Kontext hinzufügen, die Generierung langsamer, da der KV-Cache wächst. Bei hybridem SSM betrifft das Hinzufügen von Kontext nur die 26 % der Layer, die Attention nutzen. Die Kosten dafür, Ihr gesamtes Projekt in den Kontext zu packen, sind minimal im Vergleich zu den fixen Generierungskosten.
Bei 2,76 tok/s hat jeder Agenten-Durchgang eine Untergrenze von etwa 46 Sekunden für 128 Output-Token (ein typischer Tool-Aufruf oder Code-Edit). Dies ist der Preis für das Ausführen von 43 Layern auf DDR5-RAM. Keine Kontext-Optimierung der Welt kann diese Zahl ändern.
Das Modell enthält eine integrierte MTP (Multi-Token Prediction) Draft-Layer für Speculative Decoding. Sobald dies von llama.cpp ordnungsgemäß unterstützt wird, könnte dies die Generierung von 2,76 auf 5–8 tok/s steigern, indem mehrere Token pro Forward Pass vorhergesagt werden. Dies ist die Optimierung mit der größten Auswirkung für dieses Setup.
Wichtig:
Nicht wichtig:
Die Hybrid-SSM-Architektur von Qwen3.8 ist nicht nur eine inkrementelle Verbesserung. Sie verändert, was auf Consumer-Hardware möglich ist. Ein 27B-Modell mit 128k Kontext auf einer 12-GB-Laptop-GPU war vor sechs Monaten nicht machbar – nicht wegen der Modellqualität, sondern weil der KV-Cache physisch nicht passte.
Die Wahl der Architektur ist wichtiger als die Parameteranzahl. Ein 27B Hybrid-SSM-Modell passt dort hinein, wo ein 7B Pure-Attention-Modell an seine Grenzen stoßen würde. Wenn Sie ein Modell für lokale Inferenz mit langem Kontext auswählen, achten Sie zuerst auf die Architektur und erst an zweiter Stelle auf die Parameteranzahl.
Alle Benchmarks wurden mit llama.cpp Commit 76da2450a (Build 9586), CUDA-Backend, -fa auto, jeweils 3 Wiederholungen durchgeführt. Test-Hardware: i9-14900HX, RTX 4080 Laptop 12 GB, 64 GB DDR5-5600.
Reproduktion: Modell: hf download Blackfrost-AI/Qwen3.8-27B-ABLITERATED-GGUF Qwen3.8-27B-ABLITERATED-Q4_K_M.gguf -- llama.cpp: cmake -B build -DGGML_CUDA=ON && cmake --build build --config Release