Messung · 7. und 8. Oktober 2026 · 54 Messläufe
Langer Kontext auf dem HP ZBook Ultra G1a
halogen-flash-server 0.17.0 von 32.000 bis 990.000 Token
Autoren
Maschine
HP ZBook Ultra G1a
- SoC
- Ryzen AI Max+ PRO 395
- GPU
- Radeon 8060S, gfx1151
- Speicher
- 128 GiB LPDDR5X-8000, verlötet – als Unified Memory von CPU und GPU geteilt
- SSD
- Samsung 990 PRO, 4 TB, NVMe über PCIe 4.0 x4
- System
- Ubuntu 24.04,
140-W-Netzteil,
platform_profile=performance
Modell
Qwen3.8-Flash-Next
- Größe
- rund 180B – gemessen 176,9 Mrd. Parameter
- Bauart
- „512×56B“, 48 Blöcke, 512 Experten, davon 10 je Token aktiv
- Kontext
- nativ bis 262.144 Token, darüber YaRN mit Faktor 4
Engine
halogen-flash-server
- Stand
- Image
0.17.0, Podman - Gewichte
v2.hgnohne Beilage, 3,0 bpw; die Nachschlagetabelle des Entwurfskopfs liegt daneben und wird nicht im Speicher gehalten- Aufruf
HALOGEN_CTXje Länge bis 1.048.576,HALOGEN_ROPE_YARN=4über 262k- Budget
- 3.072 Token Ausgabe je Aufgabe, Temperatur 0, je Messlauf ein frischer Container
Aufgaben
Acht Fragen an ein Wetterprotokoll
- Text
- 651 Zeilen Messwerte von Wetterstationen, in jeder Länge dieselben
- Länge
- aufgefüllt mit einem fachfremden Wartungsjournal
- Art
- nachschlagen, vergleichen, zählen, summieren
- Gewertet
- sechs; die zwei Rechenaufgaben prüfen Arithmetik, nicht Kontext
1.398Token/s
Prompt-Verarbeitung bei der ersten Frage zu einem Text
23Sekunden
Ganzen Text einlesen einmal, bei der ersten Frage
0,5Sekunden
Folgefrage einlesen der Text selbst ist schon verarbeitet
55,3Token/s
Ausgabe beim Antworten auf Folgefragen
86,3GiB
Speicher belegt von 125,1 GiB; danach frei: 31,3 GiB
947Token/s
Prompt-Verarbeitung bei der ersten Frage zu einem Text
17,4Minuten
Ganzen Text einlesen einmal, bei der ersten Frage
0,9Sekunden
Folgefrage einlesen der Text selbst ist schon verarbeitet
50,8Token/s
Ausgabe beim Antworten auf Folgefragen
99,9GiB
Speicher belegt von 125,1 GiB; danach frei: 18,3 GiB
Mediane über alle Messläufe der jeweiligen Länge. Bei der ersten Frage zu einem Text liest die Maschine ihn vollständig ein. Bei jeder Folgefrage ist er schon verarbeitet, und nur die neue Frage kommt hinzu. Die Längen dazwischen zeigt Kapitel 02.
01 · Aufbau
Dieselbe Aufgabe in jeder Länge
Wer wissen will, ob ein Modell langen Kontext versteht, muss die Länge ändern und die Aufgabe festhalten. Gefragt wird deshalb immer nach demselben Wetterprotokoll: 651 Zeilen Messwerte von Wetterstationen, rund 32.000 Token, dazu acht Fragen mit eindeutiger Antwort. Auf die jeweilige Länge kommt der Text durch ein fachfremdes Wartungsjournal davor und dahinter, bei 990k mit 957.999 Token. Ändert sich das Ergebnis, kann es nur an der Länge liegen.
Bis 245k liefen je Stufe drei Fassungen des Wetterprotokolls mit anderen Zufallswerten, darüber eine: 21 Messläufe für das Verstehen. Für das Tempo zählen alle 54 gewerteten Messläufe dieser Tage, auch die mit anderen Dokumenten derselben Länge; wie schnell die Maschine einliest und antwortet, hängt an der Zahl der Token, nicht an ihrem Inhalt. Verworfen sind der Aufwärmlauf, die Wiederholung desselben Dokuments und die Vergleichsläufe mit YaRN unterhalb von 262k, die Kapitel 06 zeigt. Welcher Messlauf warum fehlt, steht in der Auswertung im Repository.
02 · Tempo
Einmal einlesen, dann antwortet es in Sekunden
Bei der ersten Frage zu einem Text liest die Maschine 1.398 Token je Sekunde bei 32k und 947 bei 990k. Jede Folgefrage zum selben Text braucht danach höchstens 0,9 Sekunden, in jeder Länge.
Für die Arbeit mit einem langen Dokument heißt das: Man wartet einmal, bei 245k 3,4 Minuten, und fragt danach im Gespräch weiter. Ein Agent, der seinen Verlauf fortschreibt, zahlt das Einlesen nur für das, was neu hinzukommt.
03 · Speicher
Den Speicher bestimmt der Pool, nicht der Prompt
halogen reserviert beim Start einen Pool für eine feste Zahl von Positionen und belegt ihn ganz, gleich wie lang der Text später ist. Bis 262k lief jeder Messlauf mit demselben Pool: 86,3 GiB, ob der Prompt 32.000 oder 245.000 Token lang war. Für 990k sind es 99,9 GiB von 125,1 GiB.
Oberhalb 262k lief halogen mit einem Generierungsbudget von 16.384 statt 32.768 Token. Das senkt den Arbeitsspeicher von 12,6 auf 8,1 GiB, und deshalb belegt der Pool für 396k weniger als der native.
Bei 990k wird es eng. Nach dem Start blieben dem Rechner 18,3 bis 18,6 GiB für alles andere, und schon beim Reservieren des Pools musste der Kernel den Speicher je nach Start 342- bis 3.499-mal verdichten; bei den kleineren Pools kein einziges Mal. Neben einem Pool dieser Größe sollte auf dem Notebook nichts Großes mehr laufen.
04 · Verstehen
Bis 192k fehlerfrei, darüber lässt es langsam nach
Bis 245k löst das Modell 105 von 108 wertbaren Aufgaben.
Bis 192k ist Länge für dieses Modell kein Hindernis: über alle Messläufe bis dahin keine einzige falsche wertbare Antwort. Die 3 fehlenden Antworten liegen alle bei 245k, an der Spitze der nativen Reihe, verteilt auf 2 der 3 Fassungen des Wetterprotokolls.
05 · Über 262k
Was zuerst ausfällt, ist das Nachschlagen
Auch oberhalb der nativen Grenze bleibt das Ergebnis hoch. Dasselbe Wetterprotokoll löst bei 396k 6 von 6, bei 594k 5 von 6 und bei 990k 4 von 6 wertbaren Aufgaben.
Das Muster ist kein gleichmäßiger Verfall. Das Modell nennt einen echten Wert aus demselben Protokoll, nur aus der falschen Zeile: bei 245k und bei 990k eine Windspitze von 23 km/h statt 81, bei 594k die Sensorkennung der Nachbarzeile. Bei 396k liest es beide Werte richtig ab. Es verliert also nicht den Text, sondern die genaue Stelle darin.
Auch das Einlesen wird jenseits der Grenze teurer: bei 990k kostet jedes Token 28 Prozent mehr Zeit als bei 245k. Die Ausgabe bleibt davon fast unberührt.
06 · YaRN
Bei gleicher Länge ändert YaRN einzelne Antworten
Über 262.144 Token kommt das Modell nur mit YaRN, einer Streckung der Positionskodierung. Ob sie selbst Antworten kostet, zeigt ein Vergleich bei 245k, wo beides geht: dasselbe Dokument einmal nativ und einmal mit YaRN.
Dahinter stehen ein Block von vier Messläufen in wechselnder Reihenfolge auf einem langen Wetterprotokoll von 4.993 Zeilen, dessen Wiederholungen dieselben Antworten geben, und ein Messlauf mit dem kurzen Wetterprotokoll im Wartungsjournal. Im langen Protokoll findet YaRN die eindeutige Kombination, die das Modell nativ als nicht vorhanden meldet. Im kurzen liest YaRN die Windspitze richtig ab, die nativ aus der falschen Zeile kommt, und zählt dafür eine Teilmenge falsch, die nativ stimmt.
Zwei Dokumente reichen nicht, um YaRN einen Vorteil zuzuschreiben. Sie reichen für den Schluss, dass YaRN nicht verursacht, dass das Modell über 262k schlechter nachschlägt: Bei gleicher Länge schlägt es mit YaRN mindestens so gut nach wie ohne.
07 · Alle Zahlen
Die Ergebnisse je Längenstufe
Verstehen: das Wetterprotokoll im Wartungsjournal, die sechs wertbaren Aufgaben über alle Messläufe der Stufe. Tempo: Mediane über alle gewerteten Messläufe der Stufe. Aus diesen Werten sind alle Grafiken dieses Berichts gerechnet; die Werte je Messlauf stehen in docs/kontext-werte-2026-10.json.
| Länge | Skalierung | Läufe | richtig |
|---|---|---|---|
| 32k | nativ | 3 | 18 / 18 |
| 64k | nativ | 3 | 18 / 18 |
| 96k | nativ | 3 | 18 / 18 |
| 128k | nativ | 3 | 18 / 18 |
| 192k | nativ | 3 | 18 / 18 |
| 245k | nativ | 3 | 15 / 18 |
| 396k | YaRN 4 | 1 | 6 / 6 |
| 594k | YaRN 4 | 1 | 5 / 6 |
| 990k | YaRN 4 | 1 | 4 / 6 |
| Länge | Läufe | Einlesen (s) | Einlesen (t/s) | Ausgabe (t/s) | Folgefrage (s) |
|---|---|---|---|---|---|
| 32k | 4 | 23,0 | 1.398 | 55,3 | 0,5 |
| 64k | 6 | 48,5 | 1.323 | 55,8 | 0,4 |
| 80k | 3 | 61,1 | 1.312 | 54,1 | 0,4 |
| 96k | 6 | 73,5 | 1.308 | 54,7 | 0,5 |
| 112k | 3 | 87,0 | 1.289 | 54,2 | 0,4 |
| 128k | 6 | 99,7 | 1.286 | 54,5 | 0,5 |
| 144k | 3 | 114,2 | 1.262 | 53,2 | 0,5 |
| 160k | 3 | 129,4 | 1.238 | 53,6 | 0,5 |
| 176k | 3 | 142,7 | 1.235 | 53,2 | 0,5 |
| 192k | 6 | 156,1 | 1.231 | 53,4 | 0,6 |
| 229k | 1 | 191,2 | 1.198 | 53,0 | 0,5 |
| 245k | 4 | 202,4 | 1.212 | 53,6 | 0,5 |
| 396k | 2 | 351,7 | 1.126 | 52,5 | 0,6 |
| 594k | 2 | 573,3 | 1.036 | 51,3 | 0,8 |
| 990k | 2 | 1.046,2 | 947 | 50,8 | 0,9 |
| Pool | Budget | Starts | Gewichte | KV-Pool | Arbeit | zusammen | danach frei |
|---|---|---|---|---|---|---|---|
| 393.216 | 32.768 | 53 | 62,9 | 10,8 | 12,6 | 86,3 | 31,3–32,0 |
| 425.984 | 16.384 | 2 | 62,9 | 11,7 | 8,1 | 82,8 | 34,9–35,0 |
| 622.592 | 16.384 | 2 | 62,9 | 17,1 | 8,1 | 88,2 | 29,6–29,6 |
| 1.048.576 | 16.384 | 2 | 62,9 | 28,8 | 8,1 | 99,9 | 18,3–18,6 |
08 · Grenzen
Was diese Arbeit nicht zeigt
Eine Fassung über 262k. Oberhalb der nativen Grenze lief je Länge eine Fassung des Wetterprotokolls. Bei Temperatur 0 wiederholt dasselbe Dokument dieselbe Antwort; die Streuung liegt zwischen Dokumenten und ist dort nicht gemessen. Dass 396k alle wertbaren Aufgaben löst und 245k nicht, gehört dazu. Belastbar ist der Verlauf über alle Stufen, nicht der einzelne Punkt.
Ein Pool für alle Längen bis 262k. Bis 262k lief jeder Messlauf mit dem Alltagspool von 393.216 Positionen. Wie viel Speicher ein kleinerer Pool für kurze Texte spart, ist nicht gemessen.
Die kleinere Arena. Ab 396k arbeitet halogen mit einem Generierungsbudget von 16.384 statt 32.768 Token. Das ändert sich zugleich mit der Länge und ist nicht getrennt gemessen.
Eine Art Dokument. Die Aufgaben stellen Fragen an ein tabellarisches Messprotokoll. Für Quelltext, Fließtext oder Gespräche kann die Grenze anders liegen.
Eine Engine, eine Maschine. Gemessen ist halogen 0.17.0 mit dem Checkpoint v2 auf dem HP ZBook Ultra G1a. Das Tempo gilt für diesen Stapel; ob llama.cpp bei denselben Längen dasselbe versteht, ist hier nicht gemessen.