Ein Sprachmodell belegt auf einem Rechner zwei Posten. Der erste ist die Datei mit den Gewichten, und ihre Größe rechnet Beurteilen und Einordnen, Kapitel 01 aus der Parameterzahl vor. Der zweite entsteht erst beim Arbeiten: der KV-Cache, in dem das Modell für jedes Token des Gesprächs Zwischenergebnisse ablegt. Er wächst mit der Länge des Textes und kann größer werden als die Gewichte.
Dieses Kapitel rechnet beide Posten an einem Beispiel aus. Es zeigt außerdem, warum ein Modell einen Text in einem Zug einliest und seine Antwort deutlich langsamer schreibt. Die Ursache im Modell beschreibt Grundkurs, Kapitel 02. Hier geht es um die Folge für die Hardware.
Zwei Posten belegen den Speicher
Das Beispiel ist Qwen3-30B-A3B-Instruct-2507 von Alibaba. Laut Modellkarte (externe Seite, huggingface.co) hat es 30,5 Milliarden Parameter, von denen je Token 3,3 Milliarden rechnen. Es ist also ein Mixture-of-Experts-Modell. Von Haus aus verarbeitet es 262.144 Token.
Die Gewichte sind der feste Posten. Sie liegen im Speicher, sobald das Modell geladen ist, und ihre Größe bleibt danach gleich.
Der KV-Cache ist der bewegliche Posten. Ein Modell, das antwortet, schaut bei jedem neuen Token auf alle Token davor. Damit es deren Zwischenwerte nicht jedes Mal neu berechnet, hält es sie bereit. Je Token und Schicht sind das ein Satz Schlüssel (Keys) und ein Satz Werte (Values). Daher kommt der Name. Je länger Eingabe und Antwort zusammen sind, desto mehr Platz belegt er. Wie Schlüssel und Werte in der Aufmerksamkeit zusammenwirken, steht in Kapitel 01.
Die Gewichte richten sich nach der Genauigkeit
Wie viel Platz die Gewichte brauchen, folgt aus zwei Zahlen: der Parameterzahl und den Bit je Parameter. Vom Beispiel gibt es drei verbreitete Fassungen.
| Fassung | Genauigkeit | Größe der Gewichte | Herkunft |
|---|---|---|---|
| BF16 | 16 Bit | 61,1 GB | Hersteller |
| FP8 | 8 Bit, dazu Skalierungsfaktoren | 31,2 GB | Hersteller |
| Q4_K_M | 4 Bit, im Mittel 4,86 Bit je Gewicht | 18,6 GB | Ollama-Bibliothek |
Die Fassung in 8 Bit bietet Alibaba selbst an. Laut Modellkarte der FP8-Fassung (externe Seite, huggingface.co) werden die Gewichte dafür blockweise umgerechnet. Ein Block umfasst nach der Konfigurationsdatei derselben Ablage 128 mal 128 Werte und hat einen eigenen Skalierungsfaktor. Insgesamt wiegt die Fassung 51 Prozent derjenigen in 16 Bit. Was über die Hälfte hinausgeht, sind fast ganz die beiden Matrizen für das Vokabular am Ein- und Ausgang, die in 16 Bit bleiben. Die Skalierungsfaktoren machen wenige Megabyte aus.
Die Fassung in 4 Bit stammt aus der Ollama-Bibliothek (externe Seite, ollama.com), die sie mit 19 GB angibt. Die Datei wiegt 18.556.685.856 Byte, also 18,6 Gigabyte, und llama.cpp meldet beim Laden im Mittel 4,86 Bit je Gewicht.
Den Schritt von 16 auf 8 oder 4 Bit nennt man Quantisierung. Was er an Genauigkeit kostet und wann er geschieht, steht in Beurteilen und Einordnen, Kapitel 01.
Der KV-Cache wächst mit jedem Token
Wie viel der KV-Cache je Token belegt, lässt sich aus drei Angaben ausrechnen. Das Beispiel hat 48 Schichten und 4 Schlüssel-Wert-Köpfe, so steht es auf der Karte der ersten Fassung vom April 2025 (externe Seite, huggingface.co) und der Fassung 2507 (externe Seite, huggingface.co). Jeder Kopf rechnet laut Konfigurationsdatei (externe Seite, huggingface.co) mit 128 Zahlen. Schlüssel und Werte belegen in 16 Bit je Zahl 2 Byte. Eigene Rechnung:
2 × 48 × 4 × 128 × 2 Byte = 98.304 Byte je Token
Das ist knapp ein Zehntel Megabyte. Bei 4.096 Token belegt der KV-Cache damit 0,4 Gigabyte, bei 32.768 Token 3,2 Gigabyte. Bei der vollen Länge von 262.144 Token sind es 25,8 Gigabyte, mehr als die Gewichte in 4 Bit.
Eine eigene Messung trifft die Rechnung auf das Byte. Gemessen wurde am 19.10.2026 auf einem MacBook Pro mit M4 Max und 64 GB, mit llama.cpp Build 11669. Das Programm meldet bei 4.096 Token 384 MiB und bei 32.768 Token 3.072 MiB, also 0,4 und 3,2 Gigabyte. Die Formel dahinter erklärt die zweite Ebene.
Der Hersteller kennt den Engpass. Die Modellkarte rät bei Speichermangel, die Kontextlänge zu verkürzen, etwa auf 32.768 Token.
Drei Modelle brauchen bei voller Länge fast gleich viel
Die eigene Messung umfasst zwei weitere Modelle in 4 Bit. Das eine ist Qwen3-4B-Instruct-2507, das Beispiel aus Kapitel 01, das andere Gemma 4 31B von Google. Angelegt hat llama.cpp den Cache bei 4.096 und 32.768 Token. Für die volle Länge von 262.144 Token hat es den Bedarf beim Start vorausberechnet, um zu prüfen, ob der Speicher reicht.
eigene Messung mit llama.cpp Build 11669, 19.10.2026
| Modell | Datei | KV-Cache bei 4.096 Token | KV-Cache bei 262.144 Token | Datei plus Cache bei 262.144 Token |
|---|---|---|---|---|
| Qwen3-4B-Instruct-2507 | 2,5 GB | 0,6 GB | 38,7 GB | 41,2 GB |
| Qwen3-30B-A3B-Instruct-2507 | 18,6 GB | 0,4 GB | 25,8 GB | 44,3 GB |
| Gemma 4 31B | 18,7 GB | 1,6 GB | 22,7 GB | 41,4 GB |
Die Werte bei 262.144 Token sind die Vorausberechnung von llama.cpp. Die Summen sind aus den Byte gerechnet, deshalb weicht die letzte Stelle bei gerundeten Posten mitunter ab. Ein Gigabyte sind hier eine Milliarde Byte, die 2,5 Gigabyte von Qwen3-4B sind binär gezählt 2,3 GiB. Mit den Rechenpuffern des Programms kommen 42,6, 45,0 und 44,0 Gigabyte heraus.
Die beiden anderen Dateien sind gut siebenmal so groß wie die kleinste. Bei voller Länge brauchen alle drei für Datei und Cache zwischen 41 und 44 Gigabyte. Die Spanne beträgt gut 3 Gigabyte, rund 7 Prozent des größten Werts. Der Cache ist bei Qwen3-4B 15,5-mal so groß wie die Datei, beim Beispiel 1,4-mal und bei Gemma 4 1,2-mal.
Qwen3-4B legt je Token sogar mehr ab als das große Qwen-Modell, 147.456 Byte. Es hat 8 Schlüssel-Wert-Köpfe in 36 Schichten, das Beispiel 4 in 48. Gemma 4 sieht laut Konfigurationsdatei (externe Seite, huggingface.co) in 50 seiner 60 Schichten nur die jüngsten 1.024 Token. Die zweite Ebene erklärt dieses Gleitfenster.
Die Herstellerkarte von Qwen3-4B-Instruct-2507 enthält denselben Rat wie die des Beispiels: bei Speichermangel die Kontextlänge auf etwa 32.768 Token kürzen (Modellkarte (externe Seite, huggingface.co)).
Die Kontextlänge stellt oft das Programm ein
Ohne eigene Angabe wählt die Laufzeit, wie lang der Kontext sein darf. Ollama (externe Seite, docs.ollama.com) richtet sich dabei nach dem Grafikspeicher des Geräts:
- unter 24 GiB (25,8 GB) 4.096 Token,
- von 24 bis 48 GiB 32.768 Token,
- ab 48 GiB (51,5 GB) 262.144 Token.
llama.cpp (externe Seite, github.com) übernimmt ohne Angabe die Länge, die im Modell steht. Reicht der Speicher dafür nicht, verkürzt es sie von sich aus, bis hinunter auf 4.096 Token.
Auf einem Gerät mit viel Speicher nehmen damit beide Programme von sich aus die volle Länge, llama.cpp allerdings nur, sofern sie hineinpasst. Auf dem Messgerät stellte Ollama 0.40.6 für das Beispiel 262.144 Token ein und belegte beim Laden 32 Gigabyte. Dort ist eine Einstellung gesetzt, die den Cache etwa halbiert. Ohne sie wären es nach eigener Rechnung 44,3 Gigabyte für Gewichte und Cache, dazu die Rechenpuffer. Die dritte Ebene zeigt die Einstellung und die Messung.
Für Entscheider folgt daraus eine Lesart. Die 19 GB auf der Bibliotheksseite sind die Größe der Gewichte. Was das Modell beim Arbeiten zusätzlich braucht, hängt an der Kontextlänge, und dazu macht die Seite keine Angabe.
Einlesen rechnet, Antworten liest
Eine Antwort entsteht in zwei Phasen. Im Prefill liest das Modell die ganze Eingabe in einem Durchgang ein. Im Decode entsteht die Antwort Token für Token, und jedes Token braucht einen eigenen Durchgang durch das Modell.
Die beiden Phasen stoßen an verschiedene Grenzen. Beim Einlesen rechnen viele Token zugleich mit denselben Gewichten, die Rechenwerke sind ausgelastet. Beim Antworten muss für jedes einzelne Token alles Nötige aus dem Speicher geholt werden, und die Rechenwerke warten. Apple (externe Seite, machinelearning.apple.com) fasst es so: Die Rechenleistung begrenzt die Zeit bis zum ersten Token, die Speicherbandbreite die Erzeugung danach.
Apple hat das an einem Chipwechsel gemessen, mit je einem MacBook Pro mit M4 und M5 und einer Eingabe von 4.096 Token. Vom M4 zum M5 bekam die Grafikeinheit eigene Beschleuniger für Matrizen, die Neural Accelerators. Die Bandbreite stieg um rund 28 Prozent. Die Zeit bis zum ersten Token sank auf ein Drittel bis ein Viertel, das Tempo der Antwort stieg um 19 bis 27 Prozent. Die Antwort folgte also der Bandbreite.
Die eigene Messung zeigt den Abstand der Phasen an einem Gerät. Das Beispiel las auf dem MacBook Pro rund 1.600 Token je Sekunde ein. Seine Antwort schrieb es mit 127 Token je Sekunde. Das Einlesen war damit knapp dreizehnmal so schnell. Wie sich Bandbreite und Rechenleistung über die Jahre entwickeln, steht in Beurteilen und Einordnen, Kapitel 05.
Das große Modell antwortet fast so schnell wie das kleine
Bei einem Mixture-of-Experts-Modell rechnet je Token nur ein Teil der Gewichte, beim Beispiel 3,3 von 30,5 Milliarden. In 4 Bit sind das rund 2,0 Gigabyte, die je Token gelesen werden. Qwen3-4B ist dicht gebaut und liest bei jedem Token seine ganze Datei, 2,5 Gigabyte.
In der eigenen Messung schrieben beide Modelle fast gleich schnell, Qwen3-4B 133 und das Beispiel 127 Token je Sekunde. Dabei ist die Datei des Beispiels gut siebenmal so groß. Den Speicherbedarf bestimmt die Gesamtzahl der Parameter, das Tempo die aktive Zahl. Nach der gelesenen Datenmenge allein wäre das Beispiel sogar ein Viertel schneller. Es nutzt die Bandbreite aber zu einem kleineren Teil, das rechnet die zweite Ebene nach. Wie ein solches Modell je Token rechnet, erklärt der Beitrag Wie ein Mixture-of-Experts-Modell rechnet. Was die Bauform für kleine Modelle heißt, steht in KI jenseits der Sprachmodelle, Kapitel 10.
Diese Regel gilt bei kurzem Kontext. Beim Antworten liest das Modell neben den Gewichten auch die Schlüssel und Werte aller vorigen Token, so beschreibt es die Arbeit zur Grouped-Query Attention (externe Seite, arxiv.org). Bei 32.768 Token liest das Beispiel so für jedes neue Token 3,2 Gigabyte aus dem Cache, mehr als seine aktiven Gewichte. Was das für das Tempo heißt, misst die dritte Ebene.
Drei Zahlen prüfen ein Gerät
Ob ein Modell auf ein Gerät passt und wie schnell es dort antwortet, lässt sich an drei Zahlen prüfen.
- Speicher. Er muss Gewichte und KV-Cache fassen, dazu die Rechenpuffer und alles, was daneben läuft. Auf einem Mac teilen sich Prozessor und Grafik einen Speicher. Wie viel davon die Grafik nutzen kann, zeigt die zweite Ebene.
- Speicherbandbreite. Sie begrenzt, wie schnell die Antwort kommt. Apple nennt sie in den technischen Daten, beim Messgerät 546 GB/s (Datenblatt (externe Seite, support.apple.com)). Geteilt durch die Byte, die je Token gelesen werden, ergibt sie eine Obergrenze für die Token je Sekunde.
- Die Kontextlänge der Aufgabe. Ein kurzer Wortwechsel braucht wenig davon, ein langes Dokument viel. Sie entscheidet, ob der KV-Cache ein Randposten bleibt oder den größten Teil des Speichers belegt. Dazu gehört die Frage, welche Länge die Laufzeit von sich aus einstellt.
Der Überblick hat die beiden Posten an einem Beispiel gezeigt. Diese Ebene leitet die Formel für den KV-Cache her und zeigt, wie zwei Bauformen ihn verkleinern. Danach folgen die beiden Phasen einer Antwort an einem Chipwechsel, der Unterschied zwischen Unified Memory und eigener Grafikkarte und eine Obergrenze für das Tempo. Das Beispiel bleibt Qwen3-30B-A3B-Instruct-2507.
Die Formel für den KV-Cache
Jede Schicht legt für jedes Token einen Schlüssel und einen Wert ab. Beide bestehen je Schlüssel-Wert-Kopf aus so vielen Zahlen, wie die Kopfdimension angibt. Daraus folgt:
KV-Cache je Token = 2 × Schichten × Schlüssel-Wert-Köpfe × Kopfdimension × Byte je Zahl
Die 2 steht für Schlüssel und Wert. Byte je Zahl sind 2 bei 16 Bit, und 16 Bit sind bei llama.cpp voreingestellt (Doku des Servers (externe Seite, github.com)).
Die Arbeit zu vLLM (externe Seite, arxiv.org) rechnet 2023 genauso, am Modell OPT-13B. Sie multipliziert Schlüssel und Wert mit 5.120 Zahlen Breite, 40 Schichten und 2 Byte. Ein einzelnes Token belegt dort 800 Kilobyte, gezählt zu je 1.024 Byte. Bei OPT hat jeder Abfragekopf seinen eigenen Schlüssel-Wert-Kopf. Deshalb steht in der Rechnung die volle Breite des Modells.
Im Quelltext von llama.cpp steht dieselbe Formel (Quelltext, Build 11669 (externe Seite, github.com)). Je Schicht legt das Programm einen Tensor für die Schlüssel und einen für die Werte an. Seine Breite ist die Kopfdimension mal die Zahl der Schlüssel-Wert-Köpfe, seine Länge die Kontextlänge.
Die eigene Messung vom 19.10.2026 hält die Rechnung gegen das Programm. Gemessen wurde auf einem MacBook Pro mit M4 Max und 64 GB, mit llama.cpp Build 11669 und dem Cache in 16 Bit. Die Werte für Qwen3-4B-Instruct-2507 stammen aus dessen Konfigurationsdatei (externe Seite, huggingface.co), die für das Beispiel aus Modellkarte (externe Seite, huggingface.co) und Konfigurationsdatei (externe Seite, huggingface.co).
| Modell | Schichten | Schlüssel-Wert-Köpfe | Kopfdimension | Byte je Token | gerechnet bei 32.768 Token | gemessen bei 32.768 Token |
|---|---|---|---|---|---|---|
| Qwen3-4B-Instruct-2507 | 36 | 8 | 128 | 147.456 | 4.608 MiB | 4.608 MiB |
| Qwen3-30B-A3B-Instruct-2507 | 48 | 4 | 128 | 98.304 | 3.072 MiB | 3.072 MiB |
llama.cpp meldet den Cache in MiB, zu je 1.048.576 Byte. Die 4.608 MiB sind 4,8 Gigabyte, die 3.072 MiB 3,2 Gigabyte. Auch bei 4.096 Token trifft die Rechnung genau, mit 576 und 384 MiB.
Der Rechner zeigt für drei Modelle Gewichte und KV-Cache bei drei Kontextlängen. Die Werte des Cache sind aus den Konfigurationsdateien gerechnet und gegen die eigene Messung gehalten. Die Konfiguration von Gemma 4 31B (externe Seite, huggingface.co) sieht in den vollen Schichten gleiche Schlüssel und Werte vor. llama.cpp Build 11669 legt beide trotzdem getrennt an, und die Rechnung folgt dem Programm.
Gewichte und KV-Cache von drei Modellen bei drei Kontextlängen
Qwen3-4B-Instruct-2507
- Schichten
- 36, alle über den ganzen Kontext
- KV-Cache je Token
- 147,5 kB
4.096 Tokenzusammen 3,1 GB
32.768 Tokenzusammen 7,3 GB
262.144 Tokenzusammen 41,2 GB
| Teil | Gigabyte | MiB |
|---|---|---|
| Datei, Q4_K_M | 2,5 | |
| KV-Cache, 36 Schichten mit vollem Kontext | 0,6 | 576 |
| Zusammen | 3,1 | |
| Zum Vergleich: BF16 laut Hersteller | 8,0 |
| Teil | Gigabyte | MiB |
|---|---|---|
| Datei, Q4_K_M | 2,5 | |
| KV-Cache, 36 Schichten mit vollem Kontext | 4,8 | 4.608 |
| Zusammen | 7,3 | |
| Zum Vergleich: BF16 laut Hersteller | 8,0 |
| Teil | Gigabyte | MiB |
|---|---|---|
| Datei, Q4_K_M | 2,5 | |
| KV-Cache, 36 Schichten mit vollem Kontext | 38,7 | 36.864 |
| Zusammen | 41,2 | |
| Zum Vergleich: BF16 laut Hersteller | 8,0 |
Qwen3-30B-A3B-Instruct-2507
- Schichten
- 48, alle über den ganzen Kontext
- KV-Cache je Token
- 98,3 kB
4.096 Tokenzusammen 19,0 GB
32.768 Tokenzusammen 21,8 GB
262.144 Tokenzusammen 44,3 GB
| Teil | Gigabyte | MiB |
|---|---|---|
| Datei, Q4_K_M | 18,6 | |
| KV-Cache, 48 Schichten mit vollem Kontext | 0,4 | 384 |
| Zusammen | 19,0 | |
| Zum Vergleich: BF16 laut Hersteller | 61,1 |
| Teil | Gigabyte | MiB |
|---|---|---|
| Datei, Q4_K_M | 18,6 | |
| KV-Cache, 48 Schichten mit vollem Kontext | 3,2 | 3.072 |
| Zusammen | 21,8 | |
| Zum Vergleich: BF16 laut Hersteller | 61,1 |
| Teil | Gigabyte | MiB |
|---|---|---|
| Datei, Q4_K_M | 18,6 | |
| KV-Cache, 48 Schichten mit vollem Kontext | 25,8 | 24.576 |
| Zusammen | 44,3 | |
| Zum Vergleich: BF16 laut Hersteller | 61,1 |
Einzeln gerundet ergeben die Teile 44,4 GB. Die Summe ist aus den Byte gerechnet.
Gemma 4 31B
- Schichten
- 60, davon 10 über den ganzen Kontext und 50 mit Gleitfenster über 1.024 Token
- KV-Cache je Token
- 81,9 kB in den vollen Schichten, das Gleitfenster bleibt fest
4.096 Tokenzusammen 20,3 GB
32.768 Tokenzusammen 22,6 GB
262.144 Tokenzusammen 41,4 GB
| Teil | Gigabyte | MiB |
|---|---|---|
| Datei, Q4_K_M | 18,7 | |
| KV-Cache, 50 Schichten mit Gleitfenster | 1,3 | 1.200 |
| KV-Cache, 10 Schichten mit vollem Kontext | 0,3 | 320 |
| Zusammen | 20,3 | |
| Zum Vergleich: BF16 laut Hersteller, samt Bildverarbeitung | 62,5 |
| Teil | Gigabyte | MiB |
|---|---|---|
| Datei, Q4_K_M | 18,7 | |
| KV-Cache, 50 Schichten mit Gleitfenster | 1,3 | 1.200 |
| KV-Cache, 10 Schichten mit vollem Kontext | 2,7 | 2.560 |
| Zusammen | 22,6 | |
| Zum Vergleich: BF16 laut Hersteller, samt Bildverarbeitung | 62,5 |
Einzeln gerundet ergeben die Teile 22,7 GB. Die Summe ist aus den Byte gerechnet.
| Teil | Gigabyte | MiB |
|---|---|---|
| Datei, Q4_K_M | 18,7 | |
| KV-Cache, 50 Schichten mit Gleitfenster | 1,3 | 1.200 |
| KV-Cache, 10 Schichten mit vollem Kontext | 21,5 | 20.480 |
| Zusammen | 41,4 | |
| Zum Vergleich: BF16 laut Hersteller, samt Bildverarbeitung | 62,5 |
Einzeln gerundet ergeben die Teile 41,5 GB. Die Summe ist aus den Byte gerechnet.
Bei 262.144 Token käme der Cache von Qwen3-4B-Instruct-2507 auf 38,7 Gigabyte. Das ist fast das Fünffache seiner Gewichte in 16 Bit, die 8,0 Gigabyte wiegen. Diesen Wert hat llama.cpp nur vorausberechnet, zugeteilt wurde der Cache in der Messung bei 4.096 und 32.768 Token.
Geteilte Köpfe sparen ein Vielfaches
Das Beispiel rechnet die Aufmerksamkeit mit 32 Abfrageköpfen und hält dafür 4 Schlüssel-Wert-Köpfe vor. Je acht Abfrageköpfe teilen sich also einen. Das Verfahren heißt Grouped-Query Attention. Die Arbeit dazu (externe Seite, arxiv.org) beschreibt es 2023 als Mitte zwischen zwei Extremen: einem Schlüssel-Wert-Kopf je Abfragekopf und einem einzigen für alle.
Nach Abschnitt 2.2 der Arbeit sinken mit der Zahl der Schlüssel-Wert-Köpfe der Cache und die Datenmenge, die je Token geladen werden muss, im selben Verhältnis. Die Qualität blieb in ihren Versuchen nahe am Aufbau mit einem Kopf je Abfragekopf. Gemessen haben die Autoren an T5-Modellen, die sie nachträglich auf geteilte Köpfe umgestellt und mit 5 Prozent des ursprünglichen Rechenaufwands nachtrainiert haben.
Eigene Rechnung: Hätte das Beispiel für jeden der 32 Abfrageköpfe einen eigenen Schlüssel-Wert-Kopf, wäre sein Cache achtmal so groß. Das wären 786.432 Byte je Token und bei voller Länge 206,2 Gigabyte. Qwen3-4B-Instruct-2507 spart mit 8 statt 32 Köpfen das Vierfache. Wie die Köpfe im Block angeordnet sind, zeigt Kapitel 01.
Kleine Modelle sprengen die Faustregel zuerst
Beurteilen und Einordnen, Kapitel 01 gibt für den Speicher eine Näherung an: Dateigröße plus ein Viertel. Das Viertel deckt den KV-Cache bis zu einer bestimmten Länge. Die Grenze ergibt sich, wenn man das Viertel der Datei durch den Cache je Token teilt. Eigene Rechnung, Cache in 16 Bit, eine Anfrage, Rechenpuffer außen vor:
| Modell, Datei in 4 Bit | KV-Cache je Token | ein Viertel der Datei | die Näherung reicht bis |
|---|---|---|---|
| Qwen3-4B-Instruct-2507, 2,5 GB | 147.456 Byte | 0,6 GB | rund 4.200 Token |
| Qwen3-30B-A3B-Instruct-2507, 18,6 GB | 98.304 Byte | 4,6 GB | rund 47.000 Token |
| Gemma 4 31B, 18,7 GB | 81.920 Byte, dazu 1,3 GB fest | 4,7 GB | rund 41.700 Token |
Die Näherung reicht also bei kurzen Texten. Wie lang der Kontext ist, stellt oft die Laufzeit ein, bei Ollama (externe Seite, docs.ollama.com) nach dem Grafikspeicher:
- Unter 24 GiB stellt Ollama 4.096 Token ein. Die Näherung reicht für alle drei Modelle, bei Qwen3-4B knapp. Mit den gemessenen 0,36 Gigabyte Rechenpuffer reicht sie bei Qwen3-4B nicht mehr.
- Von 24 bis 48 GiB sind es 32.768 Token. Für die beiden großen Modelle reicht sie, für Qwen3-4B fehlt Platz: 4,8 Gigabyte Cache bei 2,5 Gigabyte Datei.
- Ab 48 GiB sind es 262.144 Token. Dort reicht sie bei keinem der drei.
Die GQA-Arbeit (externe Seite, arxiv.org) nennt einen allgemeinen Grund: Der Cache wächst mit der Breite eines Modells, Parameterzahl und Rechenaufwand wachsen mit dem Quadrat der Breite.
Bei den drei Modellen hier wirken zwei Bauentscheidungen stärker. Qwen3-30B-A3B ist laut Konfigurationsdatei (externe Seite, huggingface.co) mit 2.048 Zahlen sogar schmaler als Qwen3-4B mit 2.560 (externe Seite, huggingface.co) und hält 4 statt 8 Schlüssel-Wert-Köpfe vor. Seine übrigen Parameter stecken in 128 Experten (externe Seite, huggingface.co). Sie vergrößern die Datei, und der Cache bleibt dabei gleich. Gemma 4 31B spart mit einem Gleitfenster, das der nächste Abschnitt beschreibt.
Ein Gleitfenster deckelt den Speicher
Manche Modelle sehen in einem Teil ihrer Schichten nur die jüngsten Token. Google begründet das im Bericht zu Gemma 3 (externe Seite, arxiv.org) mit dem Speicher: Bei langem Kontext schwelle der KV-Cache beim Betrieb stark an. Gemma 3 wechselt deshalb lokale und globale Schichten ab. Die lokalen sehen nur die letzten 1.024 Token, und allein die globalen sehen den ganzen Text.
Abschnitt 5.2 des Berichts beziffert die Wirkung an einem Versuchsmodell mit 2 Milliarden Parametern. Mit lauter globalen Schichten kostet der Cache bei 32.000 Token 60 Prozent zusätzlich zum Modell. In der Fassung mit dem Verhältnis 1:3 und einem Fenster von 1.024 Token sind es weniger als 15 Prozent. Für die Aufteilung von Gemma 3, fünf lokale je globaler Schicht, zeigt der Bericht den Verlauf in Abbildung 6.
Gemma 4 31B zeigt die Wirkung in der eigenen Messung. Laut Konfigurationsdatei (externe Seite, huggingface.co) sehen 50 seiner 60 Schichten nur die letzten 1.024 Token. Für sie legt llama.cpp einen festen Block von 1.200 MiB an, das sind 1,3 Gigabyte: Platz für das Fenster und 512 weitere Token für einen Stapel neuer Eingaben. Diese Größe bleibt ab 1.536 Token Kontext gleich. Mit der Länge wachsen allein die 10 Schichten, die den ganzen Text sehen.
Ein zweites Beispiel ist gpt-oss-20b von OpenAI. Laut Konfigurationsdatei (externe Seite, huggingface.co) wechseln seine 24 Schichten zwischen einem Fenster von 128 Token und dem vollen Kontext. Es hat 8 Schlüssel-Wert-Köpfe mit je 64 Zahlen. Eigene Rechnung für die 12 Schichten mit vollem Kontext: 24.576 Byte je Token, bei der vollen Länge von 131.072 Token 3,2 Gigabyte. OpenAI gibt das Modell für Systeme ab 16 Gigabyte Speicher an (Bericht (externe Seite, arxiv.org)). Gemessen ist gpt-oss-20b hier nicht.
Ein Chipwechsel trennt die beiden Phasen
Im November 2025 hat Apple (externe Seite, machinelearning.apple.com) sechs Modelle auf zwei
Rechnern gemessen. Der eine war ein MacBook Pro mit M5 und 24 GB, der andere ein
ähnlich ausgestattetes MacBook Pro mit M4. Gemessen wurde mit
mlx_lm.generate bei einer Eingabe von 4.096 Token. Das Tempo der Antwort gilt
für 128 weitere Token. Die Grafikeinheit des M5 hat eigene Beschleuniger für
Matrizen, die Neural Accelerators, und MLX nutzt sie ab macOS 26.2.
Nach Apple begrenzt die Rechenleistung die Zeit bis zum ersten Token, und dort greifen die neuen Beschleuniger. Die Speicherbandbreite begrenzt die Erzeugung jedes weiteren Tokens. Sie stieg vom M4 zum M5 von 120 auf 153 GB/s, um den Faktor 1,275, und Apple rundet auf 28 Prozent. Für die Rechenleistung nennt Apple keinen Faktor.
Apple, Tabelle 1, 19.11.2025 (apple-mlx-m5-2025)
Tabelle 1 des Beitrags nennt je Modell zwei Beschleunigungen und den Speicher im Betrieb.
| Modell | Zeit bis zum ersten Token, Faktor | Tempo der Antwort, Faktor | Speicher in GB |
|---|---|---|---|
| Qwen3-1.7B-MLX-bf16 | 3,57 | 1,27 | 4,40 |
| Qwen3-8B-MLX-bf16 | 3,62 | 1,24 | 17,46 |
| Qwen3-8B-MLX-4bit | 3,97 | 1,24 | 5,61 |
| Qwen3-14B-MLX-4bit | 4,06 | 1,19 | 9,16 |
| gpt-oss-20b-MXFP4-Q4 | 3,33 | 1,24 | 12,08 |
| Qwen3-30B-A3B-MLX-4bit | 3,52 | 1,25 | 17,31 |
Die Antwort wurde also um 19 bis 27 Prozent schneller, etwas weniger als die Bandbreite gewachsen ist. Das erste Token kam bis zu viermal so schnell. Die letzte Zeile ist die erste Fassung des Beispiels vom April 2025 in 4 Bit, mit denselben Schichten, Köpfen und Experten. Sie blieb mit 17,31 Gigabyte unter 18 Gigabyte, gemessen mit 4.096 Token Eingabe.
Ein zweites Chippaar zeigt dieselbe Einteilung. Im Beitrag zur verteilten Ausführung (externe Seite, machinelearning.apple.com) vom Oktober 2026 nennt Apple die Zeit bis zum ersten Token im Kern rechengebunden und das Antworttempo bandbreitengebunden. Vom M3 Ultra zum M5 Ultra stieg die Bandbreite von 819 GB/s auf 1,2 TB/s, also um den Faktor 1,47. Das Antworttempo stieg nach dem Beitrag um das 1,6-Fache, in seiner Tabelle 3 um das 1,55- bis 1,59-Fache. Es wuchs also etwas stärker als die Bandbreite. Einen Grund dafür nennt der Beitrag nicht.
Unified Memory und eigene Grafikkarte
Auf einem Mac mit Apple-Chip teilen sich Prozessor und Grafik einen Arbeitsspeicher. Apple nennt das Unified Memory. Das Framework MLX (externe Seite, github.com) baut darauf: Seine Arrays liegen im gemeinsamen Speicher, und eine Operation kann auf Prozessor oder Grafik laufen, ohne dass Daten kopiert werden.
Die Grafik nutzt davon einen Teil. Apples Schnittstelle Metal nennt eine Größe, die die Grafik belegen kann, ohne langsamer zu werden (Entwicklerdoku (externe Seite, developer.apple.com)). Auf dem Messgerät mit 64 GB (Datenblatt (externe Seite, support.apple.com)) meldet Metal 55.662,79 MB, also 55,7 Gigabyte.
Das Gerät selbst meldet 68.719.476.736 Byte Arbeitsspeicher, denn Apple zählt die 64 GB binär. Der Grafik stehen damit 81 Prozent zu. Dieser Anteil gilt für dieses Gerät. Für andere Speichergrößen nennt Apple keinen.
Denselben Wert liest Ollama als Grafikspeicher, auf dem Messgerät 51,8 GiB. Daraus folgt die Kontextlänge von 262.144 Token, denn die Staffel der Doku (externe Seite, docs.ollama.com) setzt sie ab 48 GiB.
Eine Grafikkarte im PC hat ihren eigenen Speicher. Die GeForce RTX 5090 bringt 32 GB (externe Seite, nvidia.com) mit. Das Beispiel in 4 Bit braucht bei 32.768 Token 21,8 Gigabyte für Gewichte und Cache und passt hinein. Bei 262.144 Token braucht es 44,3 Gigabyte, mehr als die Karte hat. Beides ist eigene Rechnung, ohne Rechenpuffer.
Die Rechenzentrumskarte H100 hat in der Fassung SXM laut Datenblatt (externe Seite, nvidia.com) 80 GB bei 3,35 TB/s. In 16 Bit braucht das Beispiel bei voller Länge 86,8 Gigabyte. Damit reicht eine Karte nicht. Wie sich ein Modell auf mehrere Karten verteilt, zeigt die dritte Ebene.
Passt ein Modell nicht ganz in den Grafikspeicher, lassen sich Schichten auslagern. llama.cpp hat dafür einen Schalter mit der Höchstzahl der Schichten im Grafikspeicher (Doku (externe Seite, github.com)). Die übrigen Schichten rechnet der Prozessor aus dem Hauptspeicher.
Ollama lädt ein Modell auf eine einzige Grafikkarte, wenn es dort hineinpasst. Das spart nach der FAQ (externe Seite, docs.ollama.com) Datenverkehr über den PCI-Bus.
In llama.cpp gibt es für MoE-Modelle eigene Schalter, die die Experten auf den Prozessor legen. Sie beschreibt der Beitrag Wie ein Mixture-of-Experts-Modell rechnet.
Die Obergrenze für das Tempo ist eine Division
Beim Antworten liest das Modell je Token seine aktiven Gewichte und den KV-Cache. Teilt man die Speicherbandbreite durch diese Byte, ergibt sich eine Obergrenze für die Token je Sekunde. Annahme: Die ganze aktive Menge wird je Token einmal gelesen. Zwischenspeicher im Chip und die Auswahl der Experten bleiben außen vor.
Beim Beispiel in 4 Bit sind das je Token rund 2,0 Gigabyte aktive Gewichte, 3,3 Milliarden Parameter mal 4,86 Bit. Bei fast leerem Kontext fällt der Cache kaum ins Gewicht. Eigene Rechnung:
| Gerät | Speicher | Bandbreite | Obergrenze für das Beispiel | Beispiel in 4 Bit mit 262.144 Token (44,3 GB) |
|---|---|---|---|---|
| MacBook Pro mit M5 | 24 GB | 153 GB/s | rund 75 Token/s | passt nicht |
| MacBook Pro mit M4 Max | 64 GB | 546 GB/s | rund 270 Token/s | passt, unter der Grenze von Metal |
| H100 SXM | 80 GB | 3,35 TB/s | rund 1.700 Token/s | passt |
Gemessen ist nur die mittlere Zeile, am 20.10.2026 mit llama.cpp Build 11669.
Auf dem M4 Max schrieb das Beispiel 127 Token je Sekunde. Das sind 46 Prozent der Obergrenze. Qwen3-4B kam auf 133 von rund 220 Token je Sekunde, also 61 Prozent. Die Obergrenze sagt, was die Bandbreite höchstens zulässt. Erreicht wurden 46 bis 61 Prozent davon.
Mit langem Kontext wächst der Nenner. Bei 32.768 Token liest das Beispiel je Token 2,0 Gigabyte Gewichte und 3,2 Gigabyte Cache. Die Obergrenze sinkt damit auf rund 105 Token je Sekunde. Wie weit die Messung dem folgt, zeigt die dritte Ebene.
Die zweite Ebene hat die Formel für den KV-Cache hergeleitet und eine Obergrenze für das Tempo ausgerechnet. Diese Ebene misst, wie weit das Tempo bei langem Kontext der Rechnung folgt. Danach geht es um drei Stellschrauben der Laufzeit: die Genauigkeit des Cache, die Reservierung beim Laden und die Verteilung auf mehrere Grafikkarten. Am Ende steht die Nachrechnung einer Herstellerangabe.
Langer Kontext bremst auch das Antworten
Beim Antworten liest das Modell je Token die Gewichte und dazu die Schlüssel und Werte aller vorigen Token. Die Arbeit zur Grouped-Query Attention (externe Seite, arxiv.org) nennt genau das als Engpass bei jedem Schritt der Ausgabe. Mit wachsendem Kontext wächst also die Datenmenge je Token.
Gemessen wurde das mit llama-bench: 512 Token Eingabe und 128 Token Antwort,
hinter einem schon gefüllten Kontext von 0, 8.192 und 32.768 Token. Jede Stufe
lief fünfmal, in drei Durchgängen, der Cache in 16 Bit, Flash Attention an.
Gerät war ein MacBook Pro mit M4 Max und 64 GB, Programm llama.cpp Build 11669,
Datum der 20.10.2026. Es ist eine Messreihe an einem Vormittag.
Auf dem Gerät liefen dabei andere Programme. Die Systemlast lag zwischen rund 2 und 12. Ein Durchgang von Qwen3-4B war gestört, seine leere Stufe lag rund 30 Prozent unter den beiden anderen. Er ist deshalb nicht gewertet. Die Tabelle nennt die Spanne der übrigen Durchgänge.
Die Vorhersage ist eine eigene Rechnung. Sie geht von der Obergrenze aus der Bandbreite bei diesem Kontext aus. Davon nimmt sie den Anteil, den das Modell bei leerem Kontext erreicht hat: 61 Prozent bei Qwen3-4B, 46 beim Beispiel. Gerechnet wird mit den je Token gelesenen Gewichten, 2,5 und 2,0 Gigabyte, und mit dem Cache nach der Formel der zweiten Ebene.
eigene Messung mit llama.cpp Build 11669, 20.10.2026
| Modell | Kontext | Vorhersage aus der Bandbreite | gemessen, Token je Sekunde |
|---|---|---|---|
| Qwen3-4B-Instruct-2507 | 0 | Bezugspunkt | 132 bis 135 |
| Qwen3-4B-Instruct-2507 | 8.192 | 90 | 96 |
| Qwen3-4B-Instruct-2507 | 32.768 | 45 | 41 bis 54 |
| Qwen3-30B-A3B-Instruct-2507 | 0 | Bezugspunkt | 127 |
| Qwen3-30B-A3B-Instruct-2507 | 8.192 | 90 | 68 bis 88 |
| Qwen3-30B-A3B-Instruct-2507 | 32.768 | 48 | 38 bis 39 |
Qwen3-4B lag bei 8.192 Token etwas über der Vorhersage. Das Beispiel streute dort zwischen den Durchgängen von 68 bis 88 Token je Sekunde und blieb in allen unter der Vorhersage. Stabil ist der Wert des Beispiels bei 32.768 Token: In allen drei Durchgängen lag er bei 38 bis 39 Token je Sekunde. Das ist rund ein Fünftel unter der Vorhersage. Qwen3-4B lag bei dieser Länge einmal darunter und einmal darüber.
Woher die Abweichung beim Beispiel kommt, ist offen. In Frage kommen der Rechenaufwand der Aufmerksamkeit, der mit der Länge wächst, und die Umsetzung im Programm. Wer die Streuung kleiner haben will, misst auf einem Gerät, auf dem sonst nichts läuft.
Auch das Einlesen wird langsamer. Qwen3-4B las 512 neue Token bei leerem Kontext mit rund 1.650 Token je Sekunde ein, hinter 32.768 vorhandenen Token mit 272 bis 307. Beim Beispiel fiel das Einlesen von rund 1.600 auf 199 bis 221 Token je Sekunde. Wer lange Texte verarbeitet, sollte das Tempo deshalb bei seiner eigenen Länge messen. Die Werte bei leerem Kontext sagen dafür wenig.
Der Cache lässt sich gröber speichern
Wie die Gewichte lässt sich auch der Cache mit weniger Bit speichern. llama.cpp
hält ihn voreingestellt in 16 Bit (Doku des Servers (externe Seite, github.com)).
Es bietet gröbere Typen an, darunter 8 Bit mit dem Namen q8_0. Bei
Ollama heißt die Einstellung OLLAMA_KV_CACHE_TYPE, voreingestellt sind dort
ebenfalls 16 Bit. Laut FAQ (externe Seite, docs.ollama.com) braucht der Cache in 8 Bit etwa
die Hälfte. Die gröberen Typen wirken dort nur bei eingeschalteter Flash
Attention. Ollama schaltet Flash Attention selbst ein, wo Laufzeit und Gerät
sie unterstützen.
Auf dem Messgerät steht die Einstellung auf q8_0, Flash Attention ist
eingeschaltet. Das Beispiel lud Ollama 0.40.6 dort mit 262.144 Token Kontext,
und der Cache belegte 13.056 MiB, also 13,7 Gigabyte. In 16 Bit wären es 24.576
MiB oder 25,8 Gigabyte. Das Verhältnis ist 0,53, nach eigener Rechnung also 8,5
von 16 Bit je Wert. Nach dem Quelltext von ggml speichert q8_0 zu je 32 Werten
einen Skalierungsfaktor in 16 Bit, und daraus ergeben sich genau diese 8,5 Bit.
Die FAQ nennt auch eine Grenze. Modelle mit vielen Abfrageköpfen je Schlüssel-Wert-Kopf können durch die Quantisierung des Cache stärker an Genauigkeit verlieren. Beim Beispiel teilen sich acht Abfrageköpfe einen Schlüssel-Wert-Kopf. Wie viel es dabei verliert, ist hier nicht gemessen.
Die Quantisierung der Gewichte verkleinert den festen Posten, die des Cache den beweglichen. Beide lassen sich getrennt einstellen. Was die Quantisierung der Gewichte kostet, steht in Beurteilen und Einordnen, Kapitel 01.
Reserviert ist mehr als belegt
Ollama 0.40.6 legt den Cache beim Laden für die volle Länge an. Nach dem ersten
Aufruf des Beispiels zeigte ollama ps auf dem Messgerät 32 GB, einen Kontext
von 262.144 Token und als Laufzeit llama.cpp. Das Programm meldete den Cache
dabei in voller Größe, 13.056 MiB. Der Platz ist damit ab dem Laden reserviert,
gleich wie lang das Gespräch tatsächlich wird.
Seit Version 0.40.0 nimmt Ollama auf Apple Silicon die Laufzeit MLX, für alle Bauformen, die sie unterstützt (Release Notes (externe Seite, github.com)). Das Beispiel lief über llama.cpp. Ob Ollama mit MLX ebenso vorab reserviert, ist hier nicht gemessen.
Wie lang der Kontext ist, wählt Ollama ohne eigene Angabe nach dem Grafikspeicher (Doku (externe Seite, docs.ollama.com)). Die Doku sagt dazu, dass eine größere Länge mehr Speicher braucht. Wer den Speicher für anderes braucht, setzt die Länge deshalb selbst.
Mehrere gleichzeitige Anfragen vervielfachen den Posten. Jede braucht ihren
eigenen Cache. Laut FAQ (externe Seite, docs.ollama.com) wächst der Speicher mit der Zahl
paralleler Anfragen mal der Kontextlänge, eingestellt über
OLLAMA_NUM_PARALLEL und OLLAMA_CONTEXT_LENGTH. Das ist die Kehrseite des
Vorteils, den Beurteilen und Einordnen, Kapitel 01 für den eigenen Server beschreibt: Er rechnet
sich, wenn viele Anfragen im selben Durchlauf laufen.
Ein Server wie vLLM ist um diesen Posten gebaut. Die Arbeit dazu (externe Seite, arxiv.org) beschreibt den Cache je Anfrage als groß. Er wächst und schrumpft mit der Anfrage. vLLM meldet beim Start, wie viele Token in den Speicher passen, der nach den Gewichten für den KV-Cache bleibt. Reicht das für die gewünschte Last nicht, rät die Doku (externe Seite, docs.vllm.ai) zu weiteren Karten oder Rechnern.
Was ein Betriebssystem als Speicher eines Modells anzeigt, ist eine dritte Größe. Der Bericht über eine eigene Diktier-App nennt für ein Modell drei Werte an drei Stellen des Systems, von etwa 1 bis etwa 13 Gigabyte. Alle drei stimmen und meinen Verschiedenes.
Mehrere Karten teilen ein Modell nach Schichten oder je Schicht
Passt ein Modell auf eine Karte, braucht es keine Verteilung. Passt es auf einen Rechner mit mehreren Karten, empfiehlt die Doku von vLLM (externe Seite, docs.vllm.ai) Tensor Parallelism.
Es gibt zwei Arten, ein Modell zu teilen. llama.cpp bietet beide an (Doku des Servers (externe Seite, github.com)):
- Nach Schichten (Pipeline). Jede Karte hält einen Block von Schichten samt deren Cache. Ein Token läuft nacheinander durch alle Karten.
- Innerhalb jeder Schicht (Tensor Parallelism). Jede Karte hält einen Teil jeder Schicht, und alle rechnen am selben Token zugleich. llama.cpp kennt dafür zwei Stellungen. Die eine teilt nur die Gewichte, Cache und Zwischenergebnisse liegen auf einer Hauptkarte. Die andere teilt auch den Cache und ist als experimentell gekennzeichnet.
Die Teilung nach Schichten verteilt den Speicher. Das Tempo der Antwort bleibt nach Apples Messung dabei im Wesentlichen gleich, denn jedes Token durchläuft die Schichten weiter nacheinander (Beitrag zur verteilten Ausführung (externe Seite, machinelearning.apple.com)).
Für das Beispiel heißt das: In 16 Bit braucht es bei voller Länge 86,8 Gigabyte, mehr als eine H100 mit 80 GB fasst. Für den Betrieb mit einer Million Token verteilt die Modellkarte das Modell auf vier Karten. Reicht dort der Platz für den Cache nicht, rät sie, die Länge zu kürzen oder auf mehr Karten zu verteilen.
Am oberen Ende passt ein Modell auf keinen einzelnen Rechner. Für Muse Spark Open nennt Apple (externe Seite, machinelearning.apple.com) in 16 Bit mehr als 1,6 Terabyte allein für die Parameter. In 4 Bit, im Format NVFP4, sind es rund 493 Gigabyte, knapp unter den bis zu 512 Gigabyte eines Mac Studio. Mit dem Speicher für die Zwischenergebnisse reicht ein Rechner trotzdem nicht. Apple verteilt das Modell deshalb auf zwei oder vier Mac Studio mit M5 Ultra.
Qwens 240 Gigabyte für eine Million Token, nachgerechnet
Die Modellkarte (externe Seite, huggingface.co) des Beispiels beschreibt auch einen Betrieb mit einer Million Token. Dafür nennt sie rund 240 Gigabyte Grafikspeicher insgesamt. Darin stecken nach ihrer Angabe die Gewichte, der KV-Cache und die Spitzen der Aktivierungen.
Eigene Rechnung mit der Formel aus der zweiten Ebene, alles in 16 Bit:
- Gewichte: 61,1 Gigabyte laut Indexdatei der Gewichte in der Ablage des Herstellers (externe Seite, huggingface.co).
- KV-Cache: 98.304 Byte je Token mal eine Million Token, also 98,3 Gigabyte.
- Zusammen: rund 160 Gigabyte.
Wie sich die 240 Gigabyte auf diese drei Posten verteilen, sagt die Karte nicht. Rechnerisch bleiben rund 80 Gigabyte für Aktivierungen und Reserve. Der Startbefehl der Karte für vLLM gibt dem Server 85 Prozent des Grafikspeichers frei, auf 240 Gigabyte gerechnet rund 204. Sicher zeigt die eigene Rechnung eines: Bei einer Million Token ist der Cache größer als die Gewichte, 98 zu 61 Gigabyte.
Dieselbe Rechnung geht mit jeder Modellkarte und Konfigurationsdatei:
- Schichten, Schlüssel-Wert-Köpfe und Kopfdimension ablesen.
- Miteinander und mit 4 malnehmen, für Schlüssel und Wert zu je 2 Byte.
- Mit der Kontextlänge malnehmen, die die Aufgabe braucht.
- Die Gewichte dazuzählen und Platz für die Rechenpuffer lassen.
Qualität, Flash-Speicher und Messbedingungen stehen außerhalb der Rechnung
- Die Rechnung beantwortet zwei Fragen: ob ein Modell auf ein Gerät passt und wie schnell es dort höchstens antwortet. Wie weit kleine Modelle bei einer Aufgabe reichen, misst KI jenseits der Sprachmodelle, Kapitel 10.
- Apples Gerätemodell lädt seine Gewichte aus dem Flash-Speicher nach. Für diese Bauform gilt die Annahme dieses Kapitels nur eingeschränkt, alle Gewichte lägen im Arbeitsspeicher. Die zweite Ebene von KI jenseits der Sprachmodelle, Kapitel 10 beschreibt sie.
- Die Messwerte gelten für ein Gerät, einen Tag und eine Programmfassung. Wie stark solche Werte streuen und was sonst am Tempo dreht, zeigt der Bericht Elf Wege, ein lokales Modell schneller zu machen.
Quellen
26 Einträgealle erreichbar
Erreichbarkeit automatisch geprüft
Originalarbeiterreichbar
Qwen, Modellkarte Qwen3-30B-A3B-Instruct-2507 (externe Seite, huggingface.co)
huggingface.cogeprüft 25.10.2026
Die Modellkarte der Fassung 2507 ohne Denkmodus, angelegt am 28.07.2025, zuletzt geändert am 17.09.2025 (Commit 0d7cf23), Lizenz Apache 2.0. Sie nennt 30,5 Milliarden Parameter gesamt und 3,3 Milliarden aktive, 32 Abfrage- und 4 Schlüssel-Wert-Köpfe und 262.144 Token Kontext. Für eine Million Token gibt sie rund 240 GB Grafikspeicher an, für Gewichte, Schlüssel-Wert-Speicher und Aktivierungen zusammen. Alle Angaben sind Selbstauskunft des Herstellers.
Dokumentationerreichbar
Qwen3-30B-A3B, Modellkarte (externe Seite, huggingface.co)
huggingface.cogeprüft 25.10.2026
Die Modellkarte von Alibaba zu Qwen3-30B-A3B, angelegt am 27.04.2025. Sie nennt 30,5 Milliarden Parameter gesamt und 3,3 Milliarden aktive, 48 Schichten und 128 Experten, von denen 8 je Token rechnen.
Originalarbeiterreichbar
Qwen, Modellkarte Qwen3-30B-A3B-Instruct-2507-FP8 (externe Seite, huggingface.co)
huggingface.cogeprüft 25.10.2026
Die Fassung desselben Modells mit Gewichten in 8 Bit Gleitkomma, vom Hersteller selbst. Die Gewichte wiegen laut Indexdatei 31,17 GB, die Fassung in BF16 61,06 GB. Was über die Hälfte hinausgeht, sind fast ganz die Matrizen für das Vokabular am Ein- und Ausgang, die in 16 Bit bleiben; die Skalierungsfaktoren machen wenige Megabyte aus.
Dokumentationerreichbar
Ollama, qwen3:30b-a3b-instruct-2507-q4_K_M (externe Seite, ollama.com)
ollama.comgeprüft 25.10.2026
Der Eintrag der Ollama-Bibliothek für Qwen3-30B-A3B-Instruct-2507 in 4 Bit (Q4_K_M). Er nennt die Bauform qwen3moe, 30,5 Milliarden Parameter und eine Downloadgröße von 19 GB. Den Speicher für den Kontext nennt die Seite nicht.
Originalarbeiterreichbar
Qwen, Modellkarte Qwen3-4B-Instruct-2507 (externe Seite, huggingface.co)
huggingface.cogeprüft 25.10.2026
Die Modellkarte des Sprachmodells mit 4,0 Milliarden Parametern, das im Diktier-Bericht als lokale Glättung läuft. Nach eigener Angabe die nachgezogene Fassung von Qwen3-4B ohne Denkmodus: 36 Schichten, 262.144 Token Kontext, Lizenz Apache 2.0, und die Karte sagt ausdrücklich, dass das Modell keine Denkblöcke erzeugt. Die Benchmark-Tabelle stellt es neben GPT-4.1 nano und die eigene Fassung mit 30 Milliarden Parametern; alle Zahlen sind Selbstauskunft des Anbieters.
Dokumentationerreichbar
Ollama, Context length (externe Seite, docs.ollama.com)
docs.ollama.comgeprüft 25.10.2026
Ollamas Dokumentation zur Kontextlänge, Quelle im Repo docs/context-length.mdx (Stand Commit 8583859, 12.10.2026). Ohne eigene Angabe wählt Ollama die Länge nach dem Grafikspeicher: unter 24 GiB 4.096 Token, von 24 bis 48 GiB 32.768, ab 48 GiB 262.144. Die Seite sagt dazu, dass eine größere Länge mehr Speicher braucht. Die Staffel steht dort seit dem 11.02.2026.
Dokumentationerreichbar
llama.cpp, README des Servers beim Commit 620d222 (externe Seite, github.com)
github.comgeprüft 25.10.2026
Die Beschreibung der Schalter des Servers von llama.cpp im Stand von Build 11669. Ohne Angabe übernimmt er die Kontextlänge aus dem Modell. Der Speicher für Schlüssel und Werte liegt voreingestellt in 16 Bit und lässt sich gröber wählen. Ein Schalter legt fest, wie viele Schichten im Grafikspeicher liegen, ein weiterer, wie sich das Modell auf mehrere Grafikkarten verteilt. Der Permalink zeigt auf einen festen Stand.
Artikelerreichbar
machinelearning.apple.comgeprüft 25.10.2026
Ein Beitrag von Apples Forschungsabteilung vom 19.11.2025 über Sprachmodelle auf Apple-Rechnern mit MLX. Er hält fest, dass die Erzeugung jedes weiteren Tokens durch die Speicherbandbreite begrenzt ist, und misst unter anderem ein MoE-Modell mit 30 Milliarden Parametern und 3 Milliarden aktiven.
Originalarbeiterreichbar
arxiv.orggeprüft 25.10.2026
Ainslie und Mitautoren führen 2023 die Grouped-Query Attention ein, eine Mitte zwischen einem eigenen Schlüssel-Wert-Kopf je Abfragekopf und einem einzigen für alle. Mehrere Abfrageköpfe teilen sich dabei eine Gruppe. Die Arbeit misst Qualität nahe am Vollmodell bei einer Geschwindigkeit nahe am geteilten Fall.
Dokumentationerreichbar
Apple, MacBook Pro (16-inch, 2024) - Tech Specs (externe Seite, support.apple.com)
support.apple.comgeprüft 25.10.2026
Apples technische Daten des MacBook Pro mit 16 Zoll von 2024. Für den M4 Max mit 16 Prozessor- und 40 Grafikkernen nennt die Seite eine Speicherbandbreite von 546 GB/s und 36, 48, 64 oder 128 GB gemeinsamen Arbeitsspeicher für Prozessor und Grafik. Das Messgerät des Kapitels hat 64 GB. Auf diesem Gerät liefen die eigenen Messungen des Kapitels.
Datenerreichbar
Qwen3-30B-A3B-Instruct-2507, config.json beim Commit 0d7cf23 (externe Seite, huggingface.co)
huggingface.cogeprüft 25.10.2026
Die Konfiguration des Modells Qwen3-30B-A3B-Instruct-2507 von Alibaba, Lizenz Apache 2.0. Sie nennt 48 Schichten, 32 Abfrage- und 4 Schlüssel-Wert-Köpfe mit je 128 Werten und 262.144 Token Kontext. Aus ihr rechnet der KV-Rechner den Speicher für Schlüssel und Werte. Der Permalink zeigt auf einen festen Stand.
Datenerreichbar
Gemma 4 31B, config.json beim Commit 842da37 (externe Seite, huggingface.co)
huggingface.cogeprüft 25.10.2026
Die Konfiguration des Modells Gemma 4 31B von Google, Lizenz Apache 2.0. Von 60 Schichten rechnen 10 über den ganzen Kontext, mit 4 Schlüssel-Wert-Köpfen zu 512 Werten. Die übrigen 50 sehen nur ein Gleitfenster von 1.024 Token, mit 16 Köpfen zu 256 Werten. Aus ihr rechnet der KV-Rechner den Speicher für Schlüssel und Werte. Der Permalink zeigt auf einen festen Stand.
Originalarbeiterreichbar
arxiv.orggeprüft 25.10.2026
Die Arbeit vom 12.09.2023, aus der der Inferenz-Server vLLM hervorging. Sie benennt den KV-Cache als den knappen Speicher beim Betrieb eines Sprachmodells mit vielen gleichzeitigen Anfragen und verwaltet ihn in Blöcken nach dem Vorbild der Speicherverwaltung eines Betriebssystems, sodass Anfragen mit gleichem Anfang sich die Einträge teilen.
Dokumentationerreichbar
llama.cpp, Quelltext des KV-Cache beim Commit 620d222 (externe Seite, github.com)
github.comgeprüft 25.10.2026
Der Quelltext, mit dem llama.cpp den Speicher für Schlüssel und Werte anlegt, im Stand von Build 11669 (15.10.2026). Je Schicht entsteht ein Tensor für die Schlüssel und einer für die Werte. Seine Breite ist die Kopfdimension mal die Zahl der Schlüssel-Wert-Köpfe, seine Länge die Kontextlänge. Daraus folgt die Formel des Kapitels zum Arbeitsspeicher. Der Permalink zeigt auf einen festen Stand.
Datenerreichbar
Qwen3-4B-Instruct-2507, config.json beim Commit cdbee75 (externe Seite, huggingface.co)
huggingface.cogeprüft 25.10.2026
Die Konfiguration des Modells Qwen3-4B-Instruct-2507 von Alibaba, Lizenz Apache 2.0. Sie nennt Schichten, Breite, Köpfe, Schlüssel-Wert-Köpfe, Vokabular und ob Ein- und Ausgang sich eine Matrix teilen. Aus ihr rechnet der Parameterrechner die Anteile der Bauteile. Der Permalink zeigt auf einen festen Stand.
Originalarbeiterreichbar
Gemma 3 Technical Report (externe Seite, arxiv.org)
arxiv.orggeprüft 25.10.2026
Googles technischer Bericht zu Gemma 3 vom 25.03.2025. Alle Modelle der Familie, von 1 bis 27 Milliarden Parametern, sind mit Destillation trainiert. Abschnitt 2.2 beschreibt das Verfahren: je Token 256 Logits, ausgewählt nach den Wahrscheinlichkeiten des Lehrers. Abschnitt 5.4 prüft die verbreitete Annahme, ein kleinerer Lehrer sei für kleine Schüler besser. Sie gilt dort für kurze Trainingsläufe und kehrt sich bei langen um (Figur 8). Alle Angaben stammen vom Hersteller selbst.
Datenerreichbar
gpt-oss-20b, config.json beim Commit 6cee5e8 (externe Seite, huggingface.co)
huggingface.cogeprüft 25.10.2026
Die Konfiguration des Modells gpt-oss-20b von OpenAI, Lizenz Apache 2.0. Das Modell ist eine Mixture of Experts, die Gewichte der Experten liegen im Format MXFP4 mit vier Bit je Wert. Aus ihr rechnet der Parameterrechner die Anteile der Bauteile. Der Permalink zeigt auf einen festen Stand.
Originalarbeiterreichbar
OpenAI: gpt-oss-120b & gpt-oss-20b Model Card (externe Seite, arxiv.org)
arxiv.orggeprüft 25.10.2026
Die Modellkarte zu gpt-oss in der Fassung auf arXiv vom 08.08.2025, datiert auf den 05.08.2025. Sie beschreibt den Aufbau: 128 beziehungsweise 32 Experten je Schicht, vier davon je Token, und die Speicherung der Expertengewichte mit 4,25 Bit. Tabelle 1 zerlegt die Parameter nach Bauteilen.
Originalarbeiterreichbar
machinelearning.apple.comgeprüft 25.10.2026
Forschungsbeitrag von Apple vom 15. Oktober 2026: beschreibt die verteilte Ausführung von Muse Spark Open auf zwei Mac Studios mit M5 Ultra und den Speicherbedarf in NVFP4.
Dokumentationerreichbar
MLX (externe Seite, github.com)
github.comgeprüft 25.10.2026
Das offizielle Repository von Apples Rechenframework für maschinelles Lernen auf eigener Hardware, mit Schnittstellen für Python, C++, C und Swift und einem gemeinsamen Speicher zwischen CPU und GPU.
Dokumentationerreichbar
Apple Developer, recommendedMaxWorkingSetSize (externe Seite, developer.apple.com)
developer.apple.comgeprüft 25.10.2026
Apples Entwicklerdokumentation zu der Größe, die eine Grafikeinheit belegen kann, ohne langsamer zu werden. Auf einem Mac teilt sich die Grafik den Arbeitsspeicher mit dem Prozessor; diese Zahl sagt, wie viel davon ihr zur Verfügung steht. Auf dem Messgerät mit 64 GB meldet Metal 55.662,79 MB. Ollama liest denselben Wert als Grafikspeicher.
Dokumentationerreichbar
NVIDIA GeForce RTX 5090 (externe Seite, nvidia.com)
nvidia.comgeprüft 25.10.2026
NVIDIAs Produktseite zur Spielegrafikkarte GeForce RTX 5090 mit 32 GB eigenem Grafikspeicher. Die Speicherbandbreite steht nicht im lesbaren Text der Seite.
Dokumentationerreichbar
NVIDIA H100 Tensor Core GPU (externe Seite, nvidia.com)
nvidia.comgeprüft 25.10.2026
NVIDIAs Produktseite zur Rechenzentrumskarte H100. Die Tabelle der technischen Daten nennt 80 GB Speicher und 3,35 TB/s Bandbreite für die SXM-Fassung und 94 GB mit 3,9 TB/s für die NVL-Fassung. Es sind Herstellerangaben.
Dokumentationerreichbar
Ollama, FAQ (externe Seite, docs.ollama.com)
docs.ollama.comgeprüft 25.10.2026
Ollamas Antworten auf häufige Fragen, Quelle im Repo docs/faq.mdx (Stand Commit 33a3afa, 13.10.2026). Sie beschreibt, wie sich der Cache für Schlüssel und Werte in 8 Bit speichern lässt, dass mehrere gleichzeitige Anfragen den Speicherbedarf vervielfachen und dass Ollama ein Modell auf eine einzige Grafikkarte lädt, wenn es dort hineinpasst.
Dokumentationerreichbar
v0.40.0 (externe Seite, github.com)
github.comgeprüft 25.10.2026
Die Release Notes nennen den Wechsel auf MLX als Standardlaufzeit für unterstützte Modelle auf Apple Silicon.
Dokumentationerreichbar
vLLM, Parallelism and Scaling (externe Seite, docs.vllm.ai)
docs.vllm.aigeprüft 25.10.2026
Die vLLM-Dokumentation zur Verteilung eines Modells auf mehrere Grafikkarten und Rechner, Quelle im Repo docs/serving/parallelism_scaling.md (Stand Commit e57bb4a, 15.10.2026). Passt ein Modell auf eine Karte, braucht es keine Verteilung. Passt es auf einen Rechner mit mehreren Karten, empfiehlt sie Tensor Parallelism. Reicht der Platz für den KV-Cache nicht für die gewünschte Last, helfen weitere Karten.