File size: 7,104 Bytes
52467f4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# Wo genau hat sich das Modell verrechnet?

Diese Seite legt die Fehlschläge der MATH-500-Messung einzeln offen — Aufgabe,
Musterlösung, gelieferte Antwort. Wer die Quote von 92 Prozent anzweifelt, kann
hier nachsehen, woraus die fehlenden acht Prozent bestehen.

Die kurze Fassung vorweg: **wir haben keine einzige Aufgabe gefunden, die das
Modell wirklich nicht kann.**

## Die Ausgangslage

150 Aufgaben, Qwen3.8-27B Q8_0, volles Reasoning, 8.000 Token Budget.
138 richtig, 13 Fehlschläge. Die 13 zerfallen so:

| Art | Anzahl |
|---|---|
| keine Antwort geliefert | 10 |
| Fehler im Antwortvergleich, nicht im Modell | 2 |
| falsches Ergebnis geliefert | 1 |

## Der einzige Fall mit falschem Ergebnis

**Aufgabe** (`test/intermediate_algebra/102.json`, Stufe 4, Intermediate Algebra):

> Compute
> $$\sum_{n=1}^{\infty} \frac{F_{n+1}}{F_n F_{n+2}}$$
> where $F_n$ denotes the $n$th Fibonacci number, so $F_0 = 0$ and $F_1 = 1$.

**Musterlösung.** Weil $F_{n+1} = F_{n+2} - F_n$ ist, lässt sich jeder Summand
aufspalten:

$$\frac{F_{n+1}}{F_n F_{n+2}} = \frac{F_{n+2}-F_n}{F_n F_{n+2}} = \frac{1}{F_n} - \frac{1}{F_{n+2}}$$

Das ist eine Teleskopsumme: fast alles hebt sich weg, übrig bleiben die beiden
ersten Terme.

$$\left(\frac{1}{F_1}-\frac{1}{F_3}\right) + \left(\frac{1}{F_2}-\frac{1}{F_4}\right) + \left(\frac{1}{F_3}-\frac{1}{F_5}\right) + \dots = \frac{1}{F_1} + \frac{1}{F_2} = 1 + 1 = \boxed{2}$$

**Gelieferte Antwort im Messlauf: 1.**

Der Fehler liegt genau an der Stelle, an der Teleskopsummen üblicherweise
schiefgehen: Es bleiben **zwei** Terme stehen, nicht einer. Wer nur
$\frac{1}{F_1}$ behält und $\frac{1}{F_2}$ übersieht, landet bei 1. Da
$F_1 = F_2 = 1$ ist, sieht das Zwischenergebnis dabei völlig unauffällig aus —
es fehlt kein Bruch, es fehlt eine Eins.

### Der Fehler ist nicht reproduzierbar

Dieselbe Aufgabe, dieselben Einstellungen, mehrfach wiederholt:

| Versuche | richtig |
|---|---|
| ursprünglicher Messlauf | 0 von 1 |
| Wiederholungen danach | **21 von 21** |
| **gesamt** | **21 von 22** |

Ein Fehlschlag auf 22 Versuche — Punktschätzer 4,5 Prozent, 95-Prozent-Intervall
0,1 bis 22,8 Prozent. Das Modell **kann** diese Aufgabe; es ist ihm einmal
danebengegangen.

Das ist der eigentliche Befund dieser Seite: Was in einer Einzelmessung wie ein
Wissenslücke aussieht, ist eine Streuung. Wer denselben Benchmark zweimal fährt,
bekommt zwei verschiedene Zahlen — und bei 150 Aufgaben mit je ein paar Prozent
Ausrutscherrisiko sind ein paar Ausrutscher der Normalfall, nicht die Ausnahme.

## Die zehn Aufgaben ohne Antwort

Hier wurde nichts falsch gerechnet — es kam gar kein Ergebnis, weil das
abschließende `\boxed{}` nie geschrieben wurde. Alle zehn wurden mit 32.000
Token statt 8.000 nachgemessen. **Neun davon lösen sich, keine einzige lief
erneut ins Limit.**

| Aufgabe | Token in der Nachmessung | Ergebnis |
|---|---|---|
| L5 | 1.527 | richtig |
| L3 | 1.830 | richtig |
| L5 | 7.515 | richtig |
| L5 | 7.698 | richtig |
| L4 | 7.976 | richtig |
| L5 | 10.658 | richtig |
| L3 | 12.907 | richtig |
| L5 | 14.709 | richtig |
| L5 | 14.816 | richtig |
| L5 | 16.044 | **Wiederholungsschleife, leere Antwort** |

Daraus lassen sich drei verschiedene Ursachen ablesen:

**Erstens: echter Mehrbedarf.** Fünf Aufgaben brauchten mehr als 8.000 Token,
die aufwendigste 14.816. Diese Fälle lösen sich schlicht mit größerem Budget.

**Zweitens: Streuung.** Zwei Aufgaben, die im Hauptlauf 8.000 Token rissen,
waren in der Nachmessung mit **1.527** beziehungsweise **1.830** Token
erledigt — ein Fünftel des vorherigen Verbrauchs. Gleiche Aufgabe, gleiches
Modell, gleiche Temperatur, nur ein anderer Durchlauf. Zwei weitere lagen mit
7.515 und 7.976 knapp **unter** der alten Grenze, waren also Grenzfälle.

**Drittens: Wiederholungskollaps.** Genau ein Fall. Der Denktext endete so:

```
 ? x= ? x= ? x= ? x= ? x= ? x= ? x= ? x= ? x= ? x= ? x= ? x= …
```

Hunderte Male hintereinander. Danach setzte das Modell das Ende-Zeichen und
lieferte einen **leeren** Antworttext. Verbraucht waren dabei 16.044 von 32.000
Token — das Budget war **halb leer**, der Abbruchgrund lautete `stop`, nicht
`length`.

Gegen diesen dritten Fall hilft kein größeres Budget. Er ist der einzige echte
Ausfall im ganzen Feld, und dagegen hilft nur ein zweiter Versuch.

## Die zwei Fälle, die unser Messgerüst falsch bewertet hat

Beide sind inzwischen repariert und stehen als Prüffälle im Selbsttest.

| gelieferte Antwort | Musterlösung | warum es dasselbe ist |
|---|---|---|
| `1-\sqrt{19}, 1+\sqrt{19}` | `1 \pm \sqrt{19}` | dieselbe Lösungsmenge, einmal ausgeschrieben, einmal mit ± |
| `\begin{pmatrix}\frac{16}{49}\\[2mm]\frac{48}{49}\\[2mm]\frac{24}{49}\end{pmatrix}` | `\begin{pmatrix}16/49\\48/49\\24/49\end{pmatrix}` | derselbe Vektor, Bruchstrich statt Schrägstrich |

Solche Fälle sind bei Mathematik-Benchmarks der Regelfall, nicht die Ausnahme.
Allein die Reparatur des Antwortvergleichs hat über alle Läufe hinweg vier bis
sechs Prozentpunkte gebracht, ohne dass ein einziges Modell etwas anders
gerechnet hätte. Wer eine Mathe-Quote veröffentlicht, ohne seinen Vergleicher
gegen bekannte Schreibvarianten geprüft zu haben, veröffentlicht zu einem
guten Teil die Schwächen seines Parsers.

## Die Bilanz

| Auswertung | richtig |
|---|---|
| ein Versuch, 8.000 Token | 138 / 150 = **92,0 %** |
| dazu die Abgeschnittenen mit 32.000 Token | 147 / 150 = **98,0 %** |
| dazu der von Hand geprüfte Vektor-Fall | 148 / 150 = **98,7 %** |

> Die zweite Zeile mischt zwei Budgets und ist deshalb **keine** Quote im Sinne
> eines Leaderboards — sie beantwortet die Frage „was schafft das Modell, wenn
> man ihm genug Platz gibt", nicht „was schafft es in einem Durchlauf". Die
> dritte Zeile stützt sich zusätzlich auf eine Prüfung von Hand, weil die
> gespeicherte Antwort für die automatische Neubewertung zu kurz abgeschnitten
> war. Wer eine einzelne vergleichbare Zahl will, nimmt die **92,0 %**.

Übrig bleiben damit zwei Fälle: ein Wiederholungskollaps und ein Ausrutscher,
der sich in 21 Wiederholungen nicht mehr einstellte.

## Was man daraus mitnehmen sollte

Von 150 Aufgaben blieb nach dieser Analyse **keine** übrig, bei der das Modell
den Rechenweg nicht beherrscht. Übrig bleiben drei ganz andere Schwächen:

1. **Es verläuft sich manchmal** — selten, aber messbar, und unabhängig von der
   Schwierigkeit.
2. **Es kann in eine Wiederholungsschleife fallen** und dann gar nichts mehr
   liefern.
3. **Es braucht bei schweren Aufgaben viel Platz** — bis über 14.000 Token.

Alle drei sind im Betrieb beherrschbar: großzügiges Token-Budget, und im Client
einen zweiten Versuch vorsehen, wenn die Antwort leer bleibt oder kein
`\boxed{}` enthält. Keine davon ist ein Grund, dem Modell das Rechnen
abzusprechen.

## Rohdaten

Alles unter `bench/math500/` — je Aufgabe die gelieferte Antwort, die erwartete,
Token-Verbrauch und Abbruchgrund. `neubewerten.py` rechnet jede gespeicherte
Messung mit dem aktuellen Vergleicher neu durch, ohne das Modell erneut zu
befragen.