Zuletzt aktualisiert:

Benchmark: gemini-3.7-flash + 3.6-flash gegen die Produktionsmodelle (16.08.2026)

Auftrag

Dennis: „New round of Gemini Models, new round of benchmarks. 3.6 flash, 3.7 flash, test all szenarios against current models. Verify prompting guidelines as published by Google for the models you test including the old ones. Create a grounded comparison report. Most important AI actions: estimate free text input, estimate portion size, estimate foto."

Dazu zwei Präzisierungen während des Laufs:

⚠️ Diese Kurzfassung ist überholt — siehe Abschnitt 11

Dennis hat nach der ersten Fassung drei weitere Fotos echter Teller mit HelloFresh-Wahrheit geliefert. Auf diesen vier echten Tellern kippt das Urteil: gemini-3.7-flash belegt die Plätze 1–3, der unten gekürte Sieger 3.6-flash [minimal] fällt auf Platz 8. Die 12 HF-Studiofotos, auf denen die erste Foto-Empfehlung beruhte, haben aktiv in die falsche Richtung gezeigt. Die Punkte 2, 4 und 5 unten gelten weiter; Punkt 1 und 3 sind widerrufen.

Kurzfassung (erste Fassung — Punkte 1 und 3 durch Abschnitt 11 widerrufen)

  1. ~~gemini-3.7-flash ist für unsere drei Aktionen kein Fortschritt — es landet in der Rangfolge auf den Plätzen 6–8 von 9, hinter dem heutigen Produktionsmodell.~~ Widerrufen: galt nur für Freitext + Studiofotos.
  2. Der Grund ist strukturell und nicht Pech: auf diesen Aufgaben schadet Denken. Innerhalb jeder Modellfamilie gilt „weniger Thinking = genauer" — und 3.7 hat als einziges Modell die unterste Stufe (minimal) verloren.
  3. ~~Gewinner ist gemini-3.6-flash mit thinking_level=minimal (9,4 % mittlerer Fehler gegen 13,4 % heute), bei 1,5 s Antwortzeit.~~ Widerrufen — auf echten Tellern ist genau diese Konfiguration die zweitschlechteste (Abschnitt 11).
  4. Der größte Fehlerhebel ist gar nicht das Modell: dasselbe Gericht als echter Teller vs. als Studiofoto verschiebt die Schätzung um 18 Prozentpunkte — dreimal so viel wie der Abstand zwischen bestem und schlechtestem Modell.
  5. Googles Guidelines sind verifiziert; unser Code verletzt zwei davon. Beide nachgemessen: eine bringt etwas, eine nicht (Abschnitt „Runde B").

Status: Empfehlung, kein Deploy. Umstellung erst auf Dennis' Go (Memory prompt-aenderung-benchmarken).

Nachtrag vom selben Tag (Abschnitt 10): Dennis' Rückfragen zu einem Korrekturfaktor, zur Sicherheitsanzeige und zu Nicht-Google-Modellen sind nachgemessen — inklusive einer Auswertung seiner eigenen 73 Foto-Korrekturen aus dem Tagebuch. Das Ergebnis widerlegt die naheliegende Lösung (pauschaler Faktor) und findet stattdessen einen UI-Befund. Wer nur das Fazit braucht: direkt zu Abschnitt 10.


1. Was neu ist

google/gemini-3.7-flash ist seit 13.08.2026 auf OpenRouter, Kontextfenster 1 048 576 Token, max_completion_tokens 65 536. Preis dort 0,375 $ / 1 M Input — exakt die Hälfte von gemini-3.6-flash (0,75 $). Ein 3.7-flash-lite gibt es (noch) nicht; die lite-Linie endet aktuell bei 3.5.

2. Prompting-Guidelines — verifiziert, je Modell

Aus Googles eigener Dokumentation, nicht aus Sekundärquellen:

Modell thinking_level Default unterstützte Stufen
gemini-3.7-flash medium low, medium, high — kein minimal
gemini-3.6-flash medium minimal, low, medium, high
gemini-3.5-flash medium minimal, low, medium, high
gemini-3.5-flash-lite minimal minimal, low, medium, high
gemini-3.1-flash-lite minimal (GA-Modell, Vorgänger-Linie) –

Die inhaltlichen Regeln, die für alle getesteten Modelle gelten:

Was unser ai_jobs.py davon einhält: Sampling-Parameter setzen wir nirgends (gut). Die Denkstufe koppeln wir nicht an die Aufgabe — der Standardpfad lässt das reasoning-Feld weg und erbt damit den Modell-Default. Für das heutige gemini-3.5-flash-lite ist dieser Default zufällig minimal und damit richtig; bei einem Wechsel auf ein flash-Modell wäre er medium und damit falsch. Genau diese Falle hat 3.7 im Test gerissen.

Was wir verletzen: knappe Prompts (unsere drei Prompts sind lange Schema-Textblöcke) und response_schema. Beides in Runde B gemessen.

Zur Frage „Schema geht bei Gemini nicht — war das nicht eine bewusste Entscheidung?"

Geprüft in Code, Git-History, ADRs, Doku-Archiv und Lexis Wiki. Ergebnis:


3. Aufbau

Harness: app/data/ai-bench/bench37.py (+ bench37_suppl.py, bench37_photo2.py, bench37_guidelines.py, Auswertung analyze37.py). Prompts verbatim aus ai_jobs.py, max_tokens=3000 exakt wie in Produktion. Offline — kein Finish-/APNs-Pfad, keine Live-Pushes an die Familie.

1 046 Messungen, 0 Fehler, 0 Parse-Fehler, 0 Trunkierungen, 2,43 $ Gesamtkosten.

Konfigurationen (9):

Label Modell reasoning
3.1-flash-lite [alt-default] gemini-3.1-flash-lite Feld weggelassen
3.5-flash-lite [PROD] gemini-3.5-flash-lite Feld weggelassen
3.5-flash gemini-3.5-flash Feld weggelassen
3.6-flash [minimal / low / default] gemini-3.6-flash effort = minimal / low / –
3.7-flash [minimal / low / default] gemini-3.7-flash effort = minimal / low / –

Das reasoning-Feld wegzulassen ist Absicht: genau das tut or_chat() heute, und der Vorgänger-Benchmark (03.08.) hatte gezeigt, dass ein explizit gesetztes Feld die lite-Modelle massiv ausbremst.

Ground Truth:

Szenario Fälle Wahrheit
Freitext (estimate) 9 gewertet HelloFresh-Herstellerangabe pro Portion (dishes.nutrition/servings) + Etikettwerte aus foods
Portion (portion) 8 Referenzband je Fall (Packungsdaten + Herstellerangaben)
Foto — echter Teller 1 Dennis' Foto vom 16.08. = HF-Gericht 69c2590b…, 596 kcal / P 40,8 / C 51,9 / F 27,4
Foto — HF-Studiofotos 12 HF-Herstellerangabe pro Portion, Bilder aus dishes.image

Das Teller-Foto ist doppelt belegt: Dennis' Rezept-JSON und zwei DB-Zeilen (W27 + W34) sagen übereinstimmend 1192 kcal / 2 Portionen. (Eine ältere W20-Zeile gleichen Namens hat 677 kcal — andere Variante, nicht diese.)

Ehrlichkeit über die Schwächen dieser Studie


4. Ergebnisse

Gesamtrangfolge — mittlere Treffgenauigkeit (Ø absoluter kcal-Fehler)

Konfiguration Freitext (9) Foto-HF (12) Gesamt Teller (1) Latenz
3.6-flash [minimal] 5,0 % 13,7 % 9,4 % 17,4 % 1,53 s
3.1-flash-lite [alt] 6,1 % 17,1 % 11,6 % 14,1 % 1,41 s
3.6-flash [default=med] 5,8 % 17,6 % 11,7 % 9,1 % 5,42 s
3.6-flash [low] 5,3 % 19,6 % 12,4 % 14,9 % 3,58 s
3.5-flash-lite [PROD] 8,3 % 18,5 % 13,4 % 9,1 % 0,80 s
3.7-flash [minimal→low] 5,5 % 21,6 % 13,5 % 13,3 % 4,23 s
3.7-flash [default=med] 8,5 % 18,5 % 13,5 % 12,8 % 5,51 s
3.7-flash [low] 7,4 % 19,8 % 13,6 % 6,1 % 2,88 s
3.5-flash 8,1 % 22,2 % 15,1 % 4,4 % 7,75 s

Der Vorsprung von 3.6-flash [minimal] ist paarweise stärker als der Mittelwert vermuten lässt: Es schlägt das Produktionsmodell in 7 von 9 Freitext-Fällen und in 10 von 12 Fotofällen.

Portion — kein Unterschied

Alle neun Konfigurationen treffen 21–24 von 24 Referenzbändern. Das ist ein Gleichstand; die Aufgabe ist für jedes dieser Modelle zu einfach, um zu differenzieren. Zwei qualitative Beobachtungen:

Warum 3.7 verliert: Denken schadet auf diesen Aufgaben

Innerhalb jeder Familie sinkt der Fehler mit der Denkstufe:

Familie minimal low medium (Default)
3.6-flash — Freitext 5,0 % 5,3 % 5,8 %
3.6-flash — Foto 13,7 % 19,6 % 17,6 %
3.7-flash — Freitext (nicht verfügbar) 5,5–7,4 % 8,5 %
3.7-flash — Foto (nicht verfügbar) 19,8–21,6 % 18,5 %

Das deckt sich exakt mit Googles eigener Ansage („minimal or low for fact retrieval or classification"). 3.7-flash hat minimal nicht mehr — es kann die Stufe, die auf unseren Aufgaben gewinnt, gar nicht mehr einnehmen. Der Preisvorteil ist damit für uns bedeutungslos.

Nachgemessen: effort=minimal gegen gemini-3.7-flash wirft keinen Fehler, OpenRouter mappt still auf low (dokumentiertes Verhalten — identisches Denk-Token-Profil, Median 0 bei Freitext, ~250 bei Foto). Wer glaubt, minimal gesetzt zu haben, bekommt low.


5. Der größte Hebel ist nicht das Modell

Dasselbe Gericht, dieselbe Wahrheit (596 kcal), zwei Bilder:

Konfiguration Dennis' echter Teller HF-Studiofoto Verschiebung
3.1-flash-lite 680 (+14 %) 580 (−3 %) −17 pp
3.5-flash-lite [PROD] 650 (+9 %) 535 (−10 %) −19 pp
3.5-flash 622 (+4 %) 555 (−7 %) −11 pp
3.6-flash [low] 685 (+15 %) 532 (−11 %) −26 pp
3.6-flash [medium] 650 (+9 %) 565 (−5 %) −14 pp
3.7-flash [low] 632 (+6 %) 550 (−8 %) −14 pp
3.7-flash [medium] 672 (+13 %) 525 (−12 %) −25 pp

Ausnahmslos jedes Modell schätzt am echten Teller höher und am Studiofoto niedriger. Die Ursache ist sichtbar in den Rohdaten: die geschätzte Tellermasse fällt von 450–550 g auf 420–520 g. Ein gestyltes, aufgeräumtes Studiofoto sieht nach weniger Essen aus.

Größenordnung: Der Bildtyp verschiebt das Ergebnis um ~18 pp. Der Abstand zwischen bestem und schlechtestem Modell beträgt ~6 pp. Wie das Foto entsteht, zählt dreimal so viel wie die Modellwahl.

Zwei Folgerungen: Der Negativ-Bias von −6…−16 % auf dem Studioset ist überwiegend ein Studio-Artefakt, kein Beweis, dass Modelle HF-Essen unterschätzen. Und die realistische Erwartung für den Alltag ist die Teller-Zahl: ~+10 % Überschätzung bei HF-Gerichten.


6. Runde B — Googles Guidelines angewandt statt nur zitiert

Getestet auf dem Produktionsmodell und dem 3.7-Kandidaten, gleiche Fälle: +schema = Produktions-Prompt plus response_format/json_schema; +konzis = Aufgabe in einem Satz, alle Feldregeln in den Schema-descriptions.

Variante Freitext Foto (Teller) Portion
3.5-flash-lite, heutiger Prompt 7,2 % 9,1 % 24/24
3.5-flash-lite +schema 8,1 % 11,6 % 14/16
3.5-flash-lite +konzis 3,8 % 9,1 % 14/16
3.7-flash [low], heutiger Prompt 6,1 % 6,1 % 24/24
3.7-flash +schema 5,1 % 6,5 % 14/16
3.7-flash +konzis 6,6 % 14,1 % 14/16

7. Rausch-Grenze

Weil minimal auf 3.7 still auf low gemappt wird, liefen dort zwei identische Konfigurationen — ein geschenktes Maß für das Grundrauschen: Median 0 %, Ø 2,0 %, im Extremfall 15,6 % (Fall „HF-Wrap"). Unterschiede unterhalb von ~2 Prozentpunkten im Mittel sind daher keine Modellunterschiede. Der Vorsprung von 3.6-flash [minimal] (9,4 % gegen 11,6 % für den Zweiten) liegt knapp darüber und wird durch die paarweisen Siege (7/9 bzw. 10/12) gestützt.

Reproduzierbarkeit (nachrichtlich, laut Dennis kein Wertungskriterium): die lite-Modelle antworten fast identisch (Median 0,4–0,5 % Spanne), die Denk-Modelle schwanken stärker (3.5-flash 8,3 %, 3.6-flash [medium] 7,3 %).


8. Urteil und Empfehlung

Nicht umstellen auf gemini-3.7-flash. Es gewinnt in keinem der drei Szenarien, und der Grund ist strukturell: Auf Abruf- und Schätzaufgaben ist weniger Denken besser, und 3.7 kann die dafür nötige Stufe nicht mehr einnehmen.

Empfehlung, in dieser Reihenfolge:

  1. estimate und photo auf gemini-3.6-flash mit reasoning={"effort": "minimal"} umstellen. Bester Wert in beiden belastbaren Sets, paarweise 7/9 bzw. 10/12 gegen heute, 1,5 s Antwortzeit. Wichtig: effort muss explizit gesetzt werden — ohne das Feld erbt 3.6 den Default medium und wird schlechter und dreimal langsamer.
  2. portion unverändert lassen. Gleichstand über alle Modelle; ein Wechsel wäre Bewegung ohne Gewinn.
  3. response_schema nicht jetzt. Kein Genauigkeitsgewinn, kein aktueller Robustheitsschmerz, und es verlangt, den Schema-Text im Prompt trotzdem zu behalten (claude-CLI-Fallback). Als eigenes Ticket parken.
  4. Der eigentliche Qualitätshebel liegt beim Foto-Input, nicht beim Modell. 18 pp gegen 6 pp. Lohnende nächste Untersuchung.

Kosten (nachrangig, hier nur der Vollständigkeit halber): 3.6-flash [minimal] kostet ~0,0007 $ pro Aufruf gegen ~0,0004 $ heute. Bei unserem Volumen bewegt sich das im Bereich weniger Cent pro Monat.

9. Was diese Studie nicht gemessen hat


10. Nachtrag: Korrekturfaktor, Sicherheitsanzeige, Fremdmodelle

Drei Rückfragen von Dennis nach der ersten Fassung:

„Ich habe mittlerweile sehr viele Teller-Fotos schätzen lassen und habe diesen systematischen Faktor von 10 % ebenfalls wahrgenommen. Es gibt viele Fälle, in denen ich die Portion im Dialog um 1/8 reduziere (kleinster Step der möglich ist). […] Meiner Meinung nach sollten wir uns anschauen, welches Modell am besten abschneidet, und uns dann überlegen, einen Faktor nachträglich auf die Berechnung anzuwenden (nur für Fotos). Alternativ könnte man auch einfach die ‚Sicherheit' der Schätzung mit anzeigen […] Auch zusätzlich noch weitere aktuelle Modelle heraus, die schnell antworten […] Grok, Kimi k3, GLM 5.3, Qwen 3.8, DeepSeek V4 Flash?"

10.1 Dennis' eigene 73 Korrekturen — die belastbarste Datenquelle im Haus

ai_jobs.note speichert die KI-Rohschätzung jedes Foto-Jobs, das Tagebuch den gebuchten Wert. Über Namensgleichheit und Zeitnähe ließen sich 73 von 77 Foto-Buchungen paaren. Damit ist Dennis' eigenes Urteil messbar.

Ergebnis Anzahl
unverändert übernommen (Verhältnis exakt 1,00) 41
reduziert 25
erhöht 7
Buchungen mit Verhältnis zwischen 0,80 und 0,99 0

Diese Null ist der entscheidende Befund. Sie hat eine technische Ursache: Der Portions-Stepper der nativen App kennt die Brüche [0, ¼, ⅓, ½, ⅔, ¾] (app/ios-native/Silverscale/Support/PortionFormat.swift:7). Ein Achtel gibt es nicht — die feinste Reduktion ab einer ganzen Portion ist ¾, also −25 %.

Schärfer noch: Vergleicht man das Verhältnis mit dem gebuchten portion_count, sind 64 der 73 Fälle exakt Mengenentscheidungen („ich habe die Mahlzeit tatsächlich auf zwei Portionen geteilt" — Dennis) und 9 weitere reine Einheiten-Umschreibungen (Pizza als 8 Stücke, Gesamt-kcal unverändert). In keinem einzigen Fall korrigiert Dennis den Kalorienwert selbst.

Daraus folgt ein stimmiges Gesamtbild:

  1. Das Modell überschätzt am echten Teller um ~10 % (gemessen, Abschnitt 5).
  2. Dennis nimmt das wahr.
  3. Die UI kann −10 % nicht ausdrücken; der feinste Griff ist −25 %.
  4. Also übernimmt er den Wert lieber unverändert — in 56 % der Fälle.
  5. Ergebnis: die Foto-Einträge im Tagebuch sind vermutlich systematisch ~10 % zu hoch, und die Korrekturdaten können das nicht zeigen.

10.2 Wo der Fehler sitzt: Menge oder Kaloriendichte?

kcal = Menge × Dichte. Aus den HF-Zutatenmengen (dish_ingredients.grams) ist das echte Portionsgewicht bekannt, damit lässt sich der Fehler zerlegen:

Konfiguration kcal-Bias Mengen-Bias Dichte-Bias
3.5-flash-lite [PROD] −13,0 % +6,8 % −23,8 %
3.6-flash [minimal] −9,3 % +7,4 % −18,1 %
3.6-flash [medium] −13,7 % +5,6 % −17,4 %
3.7-flash [low] −15,9 % −0,0 % −16,1 %

Auf Studiofotos schätzen alle Modelle die Menge im Wesentlichen richtig; die gesamte Abweichung steckt in der Kaloriendichte. Auf Dennis' echtem Teller ist es umgekehrt: dort schätzen sie 450–550 g (echt: ~447 g Rohgewicht) und liegen bei der Dichte richtig (120–151 gegen 133 kcal/100 g).

Vorbehalt: Das Rohgewicht untererfasst — mit 0 g geführte Zutaten (Öl, Zwiebel, Gurke) und Wasserzugabe bei Reis/Suppe fehlen. Der Mengen-Bias ist dadurch nach oben, der Dichte-Bias nach unten verzerrt. Die Richtung ist belastbar, die absolute Höhe nicht.

Folgerung zum Korrekturfaktor: Ein pauschaler kcal-Faktor verschiebt beide Teile gleichzeitig. Er wäre nur richtig, wenn der Fehler wirklich multiplikativ und über Bildtypen stabil wäre — und genau das ist er nicht (Abschnitt 5: derselbe Faktor kippt zwischen Teller und Studiofoto um 18 pp das Vorzeichen). Ein Blindfaktor auf Basis von einem echten Teller ist nicht verantwortbar.

Die saubere Reihenfolge stattdessen:

  1. Feinerer Portionsschritt (z. B. ein 0,9-Schritt) — macht genau das ausdrückbar, was Dennis heute nicht ausdrücken kann, ohne irgendetwas still zu verbiegen. (app/ios-native/ = MacClaudes Revier, per Bestellung.)
  2. Danach kalibriert sich der Faktor von selbst: sobald die feine Stufe existiert, zeigen die Korrekturdaten, wie groß der Trimm wirklich ist. Der Faktor wird gemessen statt geraten.
  3. Parallel ~10–15 echte Teller mit bekannter Wahrheit sammeln (gekochtes HF-Gericht fotografieren oder abwiegen) — das schließt die größte Lücke dieser Studie.

10.3 Sicherheit anzeigen — geht, trägt aber nichts

Das Label, das wir heute schon abfragen, ist wertlos. Über alle Foto-Messungen mit Ground Truth:

confidence Anzahl Ø tatsächlicher Fehler
hoch 221 18,2 %
mittel 9 21,0 %
niedrig 0 –

Die Modelle sagen in 96 % der Fälle „hoch" und liegen dabei im Schnitt 18 % daneben. Ein Wert ohne Streuung kann nichts anzeigen.

Die bessere Variante — ein Intervall statt eines Labels — ist ebenfalls überkonfident. Auftrag an das Modell war eine Spanne, die die Wahrheit zu ~80 % enthält:

Konfiguration Abdeckung roh bias-bereinigt Breite Trennschärfe
3.6-flash [minimal] 50 % 65 % ±34 % r = −0,23
3.5-flash-lite [PROD] 35 % 50 % ±29 % r = −0,17
3.6-flash [medium] 65 % 69 % ±38 % r = −0,11

Selbst nachdem der systematische Bias herausgerechnet ist, bleibt die Abdeckung bei 50–69 % statt 80 % — die Spannen sind zu schmal. Und die Trennschärfe ist negativ: ein breiteres Intervall markiert nicht den größeren Fehler.

Fazit: Es gibt derzeit kein brauchbares Signal pro Einzelfall. Wer Ehrlichkeit anzeigen will, kann nur die gemessene Bandbreite nennen („Schätzung, typisch ±15 %") — eine Eigenschaft des Verfahrens, nicht des Einzelbildes. Eine fallbezogene Sicherheitsanzeige wäre Schein-Ehrlichkeit.

10.4 Nicht-Google-Modelle: an der Antwortzeit gescheitert

Zwei der genannten existieren nicht: GLM 5.3 gibt es nicht (neuestes bildfähiges Z-AI-Modell ist glm-5v-turbo), und DeepSeek V4 Flash ebenfalls nicht — DeepSeek hat aktuell überhaupt kein bildfähiges Modell auf OpenRouter.

Vorauswahl auf demselben Foto (1 Aufruf je Modell):

Modell Antwortzeit Kosten/Foto Urteil
gemini-3.6-flash [minimal] (Referenz) 1,5 s $0,0015 –
minimax/minimax-m3 6,4 s $0,0007 grenzwertig
qwen/qwen3.7-flash 13,1 s $0,0002 zu langsam
qwen/qwen3.8-27b 16,2 s $0,0026 zu langsam
z-ai/glm-5v-turbo 21,8 s $0,0112 zu langsam
qwen/qwen3.8-max 44,9 s $0,0160 zu langsam
moonshotai/kimi-k3 55,7 s $0,0180 zu langsam
x-ai/grok-4.6 65,5 s $0,0193 zu langsam
stepfun/step-3.7-flash – – liefert leere Antwort

Der Hauptlauf wurde auf Dennis' Ansage abgebrochen („bei den Zeiten brauchst du gar nicht weitermachen"). Das ist die richtige Entscheidung: Die Foto-Schätzung ist eine Aktion, bei der jemand mit dem Handy in der Hand wartet. 13 bis 65 Sekunden sind kein langsameres Feature, sondern ein anderes. Qualität sticht Preis — aber Wartezeit sticht beides. Google bleibt gesetzt.


11. Die Entscheidung: vier echte Teller — und die Kehrtwende

Die als größte Lücke benannte Schwäche („echte Teller mit belastbarer Wahrheit — genau ein Fall") hat Dennis noch am selben Tag geschlossen: drei weitere Fotos gekochter HelloFresh-Gerichte, jeweils mit dem zugehörigen Rezept-JSON.

Maßstab (Dennis, ausdrücklich): Jeder fotografierte Teller ist exakt eine HF-Portion. Verglichen wird ausschließlich Foto-Schätzung gegen Herstellerangabe; was ins Tagebuch gebucht wurde, ist irrelevant. (Eine 0,5-Buchung bei Jaqueline hieß nur, dass sie den Rest nicht geschafft hat und Dennis ihn später gegessen hat — der Teller auf dem Foto war eine ganze Portion. Der Döner-Teller stammt aus der Zeit vor der App, deshalb fehlt dort jede Buchung.)

108 Messungen: 4 Teller × 9 Konfigurationen × 3 Wiederholungen, 0 Fehler.

Konfiguration Souflaki 596 Frikassee 587 Gnocchi 628 Döner 854 Ø|Δ| Bias
3.7-flash [low] 660 (+11 %) 580 (−1 %) 680 (+8 %) 780 (−9 %) 7,2 % +2,3 %
3.7-flash [medium] 615 (+3 %) 580 (−1 %) 740 (+18 %) 790 (−7 %) 7,4 % +3,1 %
3.7-flash [minimal→low] 640 (+7 %) 560 (−5 %) 695 (+11 %) 780 (−9 %) 7,8 % +1,2 %
3.5-flash-lite [PROD] 680 (+14 %) 620 (+6 %) 680 (+8 %) 820 (−4 %) 8,0 % +6,0 %
3.5-flash 610 (+2 %) 510 (−13 %) 740 (+18 %) 860 (+1 %) 8,5 % +1,9 %
3.6-flash [medium] 660 (+11 %) 570 (−3 %) 780 (+24 %) 960 (+12 %) 12,6 % +11,1 %
3.6-flash [low] 740 (+24 %) 540 (−8 %) 760 (+21 %) 915 (+7 %) 15,1 % +11,1 %
3.6-flash [minimal] 720 (+21 %) 680 (+16 %) 780 (+24 %) 880 (+3 %) 16,0 % +16,0 %
3.1-flash-lite 780 (+31 %) 680 (+16 %) 780 (+24 %) 780 (−9 %) 19,9 % +15,6 %

Die drei 3.7-Konfigurationen belegen geschlossen die Plätze 1–3. Das ist keine Zufallsschwankung: Die Trennung verläuft entlang der Modellfamilie, nicht zwischen Konfigurationen. Die 3.7-Gruppe liegt eng beieinander (7,2–7,8 %), die 3.6-Gruppe ebenso (12,6–16,0 %) — dazwischen klafft mehr als das Doppelte der in Abschnitt 7 gemessenen Rauschgrenze.

Gesamtbild über alle Ground-Truth-Sets

Konfiguration Freitext (9) echte Teller (4) Studiofotos (12) Gesamt
3.7-flash [low/minimal] 5,5–7,4 % 7,2–7,8 % 19,8 % 6,6–7,3 %
3.7-flash [medium] 8,5 % 7,4 % 18,5 % 7,9 %
3.5-flash-lite [PROD] 8,3 % 8,0 % 18,5 % 8,2 %
3.6-flash [minimal] 5,0 % 16,0 % 13,7 % 10,5 %
3.1-flash-lite 6,1 % 19,9 % 17,1 % 13,0 %

(Studiofotos nicht in die Gesamtwertung eingerechnet — siehe unten.)

Was ich falsch gemacht habe

Die Studiofoto-Spalte ist antikorreliert mit der Realität: Sie kürte 3.6-flash [minimal] (13,7 %, bester Wert) — auf echten Tellern ist genau diese Konfiguration die zweitschlechteste (16,0 %). Umgekehrt sah 3.7-flash [minimal] auf Studiofotos am schlechtesten aus (21,6 %) und gewinnt auf echten Tellern.

Ich hatte den Vorbehalt in Abschnitt 3 notiert („Studiofotos sind kein Ersatz für echte Teller") und in Abschnitt 5 sogar gemessen, dass der Bildtyp 18 pp verschiebt — und trotzdem eine Empfehlung darauf gestützt, weil 12 Fälle belastbarer aussahen als einer. Die Fallzahl war nicht das Problem, die Gültigkeit des Ersatzmaßes war es. Zwölf Messungen am falschen Gegenstand schlagen nicht eine am richtigen.

Der Korrekturfaktor erledigt sich damit

Der Bias von 3.7-flash auf echten Tellern beträgt +1 bis +3 % — es gibt praktisch nichts mehr systematisch herauszurechnen. Ein im Nachhinein auf genau diesen vier Tellern optimierter Faktor (also die freundlichstmögliche Rechnung) verbessert 3.7-flash [low] von 7,2 % auf 7,0 % — nichts. Zum Vergleich: beim heutigen Produktionsmodell brächte er 8,0 % → 4,8 %, bei einer Rest-Streuung von 18 pp, die auch der perfekte Faktor nicht wegnimmt.

Also: Modell wechseln statt nachträglich multiplizieren. Das ist auch die ehrlichere Lösung — ein stiller Faktor verbiegt eine Modellausgabe, ein besseres Modell braucht das nicht.

Dennis' wahrgenommene ~10 % Überschätzung deckt sich übrigens gut mit dem gemessenen Bias des heutigen Modells (+6,0 %) plus dem Umstand, dass der feinste UI-Trimm bei −25 % liegt (Abschnitt 10.1).

Revidierte Empfehlung

  1. estimate und photo auf gemini-3.7-flash mit reasoning={"effort": "low"}. Beste mittlere Treffgenauigkeit über beide belastbaren Sets (6,6–7,3 %), nahezu bias-frei auf echten Tellern, 4,3–4,8 s. (minimal wird von OpenRouter auf low gemappt — identisches Verhalten, Abschnitt 4. Wer low schreibt, weiß, was er bekommt.)
  2. gemini-3.6-flash in keiner Variante — auf echten Tellern durchgehend +11 bis +16 % daneben. Auch die cook_suggest-Nutzung (heute 3.6-flash, effort=high) ist damit einen eigenen Blick wert, wurde hier aber nicht gemessen.
  3. Kein Korrekturfaktor. Siehe oben.
  4. Kein Sicherheits-Label und kein Intervall — Abschnitt 10.3, unverändert.
  5. portion unverändert — Gleichstand über alle Modelle, Abschnitt 4.

Was weiterhin offen bleibt

Vier echte Teller sind besser als einer, aber es sind vier. Der Abstand von 3.7-flash (7,2 %) zum heutigen Modell (8,0 %) liegt innerhalb der Rauschgrenze — belastbar ist nur, dass beide deutlich besser sind als die 3.6-Familie und dass 3.7 den kleineren systematischen Bias hat. Für eine echte Trennung zwischen 3.7 und dem Status quo bräuchte es ~10–15 Teller. Alle vier Gerichte sind außerdem HelloFresh — Restaurantessen, Selbstgekochtes ohne Rezept und Verpacktes sind nicht abgedeckt.


Rohdaten: app/data/ai-bench/results37-*.json, Läufe run37-*.log. Judge: StratoClaude (Memory ich-bin-der-judge) — kein bezahltes Fremdmodell.