FreshContextA context lab · Fife
Drawing
02 · Benchmarks
Sheet
2 of 3
Rev
A · 2026-10-01

Gemma 4 12B · file← Gemma 4 12B

QAT Q4_0

The one we kept. Google's 4-bit build, and our tagging model since September. Google GGUF, downloaded.

Size
7.0 GB
Status
On disk
Scored runs
31
Smallest Mac
16 GB measured, 8K context
Results31 scored · 95% intervals
SuiteScore95% interval PassedRuntime · profileRecorded
chainwalkgemma4-12b50.0%9.5–90.5Passed 1/2llama.cppagentic-fast2026-08-24
chainwalkgemma4-12b-r150.0%9.5–90.5Passed 1/2llama.cppagentic-fast2026-08-24
chainwalkgemma4-12b-r250.0%9.5–90.5Passed 1/2llama.cppagentic-fast2026-08-24
chainwalkgemma4-12b-r350.0%9.5–90.5Passed 1/2llama.cppagentic-fast2026-08-24
contractgemma4-12b66.7%50.3–79.8Passed 24/36llama.cppextraction2026-09-08
enrichmentgemma4-12b77.8%65.1–86.8Passed 42/54llama.cppstudy-nothink2026-08-24
epistemicsgemma4-12b100.0%92.6–100.0Passed 48/48llama.cppstudy-nothink2026-08-24
groundinggemma4-12b84.0%76.6–89.4Passed 105/125llama.cppextraction2026-08-24
groundinggemma4-12b-b1061884.0%76.6–89.4Passed 105/125llama.cppextraction2026-08-25
nullschemagemma4-12b88.9%79.6–94.3Passed 64/72llama.cppextraction2026-08-24
nullschemagemma4-12b-b1061888.9%79.6–94.3Passed 64/72llama.cppextraction2026-08-25
nullschemagemma4-12b-midrange87.5%77.9–93.3Passed 63/72llama.cppextraction2026-09-10
screeninggemma4-12b93.3%84.1–97.4Passed 56/60llama.cppextraction2026-08-24
screeninggemma4-12b-b1061893.3%84.1–97.4Passed 56/60llama.cppextraction2026-08-25
screeninggemma4-12b-recheck93.3%84.1–97.4Passed 56/60llama.cppextraction2026-09-17
synthesisgemma4-12b83.3%72.0–90.7Passed 50/60llama.cppextraction2026-09-09
synthesisgemma4-12b-b1089383.3%72.0–90.7Passed 50/60llama.cppextraction2026-09-12
synthesisgemma4-12b-midrange83.3%72.0–90.7Passed 50/60llama.cppextraction2026-09-10
taggergemma4-12b80.3% coverage93.2%88.7–96.0Passed 178/191llama.cppstudy-nothink2026-08-24
taggergemma4-12b-ab93.8%89.9–96.2Passed 225/240llama.cppextraction2026-08-24
taggergemma4-12b-b1061893.8%89.9–96.2Passed 225/240llama.cppextraction2026-08-31
taggergemma4-12b-b1155292.5%88.5–95.2Passed 222/240llama.cppextraction2026-10-11
tagger_nullablegemma4-12b-ab97.9%95.2–99.1Passed 235/240llama.cppextraction2026-08-24
tagger_nullablegemma4-12b-b1061897.9%95.2–99.1Passed 235/240llama.cppextraction2026-08-31
tagger_nullablegemma4-12b-b1155295.8%92.5–97.7Passed 230/240llama.cppextraction2026-10-11
toolcallgemma4-12b-midrange55.0%42.5–66.9Passed 33/60llama.cppextraction2026-09-10
toolsgemma4-12b86.7%62.1–96.3Passed 13/15llama.cppagentic-fast2026-08-24
toolscalegemma4-12b90.0%76.9–96.0Passed 36/40llama.cppagentic-fast2026-08-24
toolscalegemma4-12b-midrange95.0%83.5–98.6Passed 38/40llama.cppextraction2026-09-10
worldviewgemma4-12b97.5%87.1–99.6Passed 39/40llama.cppextraction2026-09-09
worldviewgemma4-12b-midrange97.5%87.1–99.6Passed 39/40llama.cppextraction2026-09-10

Runs marked unenforced were measured on a suite that requires constrained decoding, on a server shown not to apply the schema: mlx_lm accepts it and ignores it, and a few other servers and models break it. Those numbers do not measure what the suite is designed to measure. They are kept and labelled rather than deleted.

The recordHow it was made · how it was served · what went wrong · what happened to it

Rebuilt from the lab's records by Claude, an AI model. The results above come straight from the automated runs. How these pages are made.

Filegemma-4-12b-it-qat-q4_0.gguf
FormatQ4_0 (Google QAT), 6,975,879,296 B
Where fromdownloaded 2026-08-23 10:19–10:37Z from google/gemma-4-12B-it-qat-q4_0-gguf
Statuson disk; live tagging seat (launchd since 2026-09-29)
Hugging Facehttps://huggingface.co/google/gemma-4-12B-it-qat-q4_0-gguf

Where it came from

  • Repo / file: google/gemma-4-12B-it-qat-q4_0-gguf / gemma-4-12b-it-qat-q4_0.gguf. The HF listing on 2026-08-23 gave 6.98 GB.
  • Command:
B=https://huggingface.co/google/gemma-4-12B-it-qat-q4_0-gguf/resolve/main
for f in gemma-4-12b-it-qat-q4_0.gguf mmproj-gemma-4-12b-it-qat-q4_0.gguf; do
pget.sh "$B/$f" "$f" 6
done

It ran in the background with the Qwen3.5-9B and Gemma E4B/E2B pulls. Finished: file mtime 23 Aug 11:37:39 BST (10:37Z), with .dl_complete written 11:37 BST.

  • Revision: not on record (resolve/main, unpinned). sha256: not on record.
  • Size: 6,975,879,296 B (stat, 2026-10-23). Older docs' "6.5 GB" is GiB.
  • Quant: Q4_0 with Google's quantisation-aware training. /props reports model_ftype: Q4_0 for this path (manifests of gemma4-12b-recheck and -b11552). The local GGUF header was not read.
  • Who asked / why: Alan, 2026-08-23 10:16Z: "also want to try gemma4 smaller models at full context".

How it was served

labeldates (UTC)binary and versionctx / -np / KV / -fa / --jinja / --reasoning-formatprofilewhy this label exists
gemma4-12b — tagger/22026-08-23 ~22:36–23:19Zllama.cpp b10369 (6e62ba538)-c 16384 -np 4 -cb, KV f16 (default), -fa default, --jinja, nonestudy-nothinkfirst Gemma grid (relaunched after the readiness fix); lost its server at case 193 (Incidents)
gemma4-12b — tools/12026-08-23 23:26Zb10369-c 16384 -np 2 -cb --jinjaagentic-fast (thinking on)new tool/chain suite
gemma4-12b — chainwalk/22026-08-24 00:00Zb10369-c 65536 -np 1 -cb --jinjaagentic-fast200-step walk
gemma4-12b — epistemics/42026-08-24 00:03Zb10369-c 32768 -np 2 -cb --jinjastudy-nothinkre-run under the unambiguous /4 template, beside the agents-a1-35b control
gemma4-12b — enrichment/32026-08-24 00:19Zb10369-c 32768 -np 3 -cb --jinjastudy-nothinkqueued overnight item 1
gemma4-12b — toolscale/12026-08-24 01:13Zb10369-c 16384 -np 2 -cb --jinjaagentic-fast64-tool scale suite, own port
gemma4-12b-r1 / -r2 / -r32026-08-24 01:14Z / 01:38Z / 02:00Zb10369replicate script; server defaults -c 32768 -np 4 -cb --jinja (the call's own arguments were not traced)agentic-fastthree chainwalk repeats "turns 200/200 into a number with a spread" (a lab note §7)
gemma4-12b — grounding/12026-08-24 13:02Zb10369-c 32768 -np 4 -cb --jinjaextractionsix-model grounding run
gemma4-12b-ab2026-08-24 17:43Z, 18:04Zb10369-c 32768 -np 4 -cb --jinjaextractiontagger vs tagger-nullable prompt A/B on one server process
gemma4-12b — nullschema/1, screening/12026-08-24 22:14Z, 22:16Zb10369-c 32768 -np 4 -cb --jinjaextractionafter "can we implement screening for 12b"
gemma4-12b-b10618 — grounding/screening/nullschema2026-08-25 10:12–10:15Zllama.cpp b10618 (eb25b7263)-c 32768 -np 4 -cb --jinjaextractionfleet re-run after the rebuild; build suffix "so they can never be silently mixed"
gemma4-12b-b10618 — tagger, tagger_nullable2026-08-31 16:39Z, 17:00Zb10618--ctx-size 16384 --n-gpu-layers 99 --jinja (-np, KV, -fa default)extractioncross-build control after "Yeah but Gemma had issues"
gemma4-12b — contract/12026-09-08 19:29Zb10618--jinja -c 8192 -ngl 999 (-np default)extractioncontract suite, smoke-tested on gemma first
gemma4-12b — synthesis/1, synthesis/2, worldview/22026-09-09 16:54Z, 17:45Z, 18:41Zb10618 (run-log llama_build on worldview says b10893: stale, see Incidents)--mmproj … --jinja -c 8192 -np 2 -ngl 999extractionresident-fleet runs of the two suites built that day
gemma4-12b-midrange2026-09-10 10:54–11:04Zb10618 (eb25b7263); the b10893 pull was 12:17Z--jinja --reasoning-format deepseek -c 32768 -np 1 -fa on -ctk q8_0 -ctv q8_0 -ngl 999extractionthe 9–14B cohort's first agent-board run, with "Same binary, flags, profile, slot count and datasets" as every other model in the 2026-09-10 table
gemma4-12b-b108932026-09-12 16:39Zb10893 (c32d1dabe) per /props/props n_ctx 65536, 1 slot; launch line reasoning-seat-gemma12b.sh: --mmproj --jinja -c 65536 -np 1 -fa on -ngl 999extractiongemma's synthesis "for the pairing" with Ornith 9B
gemma4-12b-recheck2026-09-17 17:38Zllama.cpp b10893 (c32d1dabe) per /props-c 8192 -np 1 -ngl 99 --jinja --no-warmupextractionprovenance-stamp spot-check: 93.3 → 93.3 (One baseline was 25 points off and nothing in the stamp could explain it; the other six reproduced exactly)
gemma4-12b-b115522026-10-11 11:32Z, 11:56Zllama.cpp-b11552 b11552 (23b0202a1)seat-identical -c 8192 -np 1 -ctk q4_0 -ctv q4_0 -fa on -ngl 999 --jinjaextractionquality gate before switching production builds; "labels carry the build (rule 6)"
gemma4-12b-connector-trial (not in the run log)2026-10-21b10893 per /propslive seat flags (n_ctx 8192, 1 slot)extraction1–2-case --limit trials beside the Ollama-cloud connector work, deliberately labelled apart from real results; files hold 2 and 4 rows

Seats held (none came from fleet-models.ini: the 12B was never a router preset, and git log -p on the ini has no gemma4-12b line):

  • 2026-09-09 16:45Z → 2026-09-12: the seat --mmproj -c 8192 -np 2 (tagger, then Hermes compression/approval/vision aux roles, 2026-09-10).
  • 2026-09-12 09:55Z: the seat vision-only (vision-seat-gemma.sh, -c 16384), killed 09:57Z.
  • 2026-09-12 10:10Z: the seat reasoning + tagger (reasoning-seat-gemma12b.sh, -c 65536 -np 1), served zero requests, down by 09-13 19:16Z.
  • 2026-09-13 20:44Z: the seat -c 131072 -np 2 --cache-ram 4096 -ctk q4_0 -ctv q4_0 -fa on --mmproj.
  • 2026-09-20 17:50Z → present: the seat TAG worker (fleetview ROSTER, thinking pinned off). -c 8192 -np 1 -ctk q4_0 -ctv q4_0 -fa on -ngl 999 --jinja, no mmproj. 2026-09-20 22:04Z → 09-29 19:54Z: -c 32768 -np 4. After the segfault: hand relaunch at 1×8K, then a launchd job with the same 1×8K args. Binary: .local/bin/llama-server → llama.cpp (reports b10893 c32d1dabe; HEAD is 63cbb9227 on fc/diffusion-confidence).

Decisions

  • Downloaded as one of the "gemma4 smaller models".
  • Kept at QAT Q4_0 when higher quants were offered. Alan: "nah qat stays"; "it's what makes gemma as good as it is now, it's been retuned".
  • Kept in the 2026-09-08 sweep, where Alan's "Gemma dense" was read as the 31B.
  • Seated as the TAG worker 2026-09-20, and supervised by launchd from 2026-09-29.
  • Not published to HF: it is Google's file, unmodified.

What went wrong

  • Partial tagger run with a wrong published count (gemma4-12b tagger/2, study-nothink). At 23:19Z on 2026-08-23 the assistant launched the tool grid on the same port. Its first model (gemma4-e2b, logged "00:19:34" BST) replaced the 12B's server mid-run. The tagger file's final write is exactly 00:19:34 BST. Rows 193–240 are URLError: Connection refused (45), plus one RemoteDisconnected and one ConnectionResetError. The file was then rewritten by hand to drop 503 rows and dedupe by case id. It now has 240 rows on 239 physical lines: line 127 holds both tag/tp034 and tag/tp035. The run log reads 238 attempted / 191 measured / 178 passed (93.2%, coverage 80.3%). The file holds 240 / 193 / 180 (93.3%, coverage 80.4%). Cost: a 47-case hole in the first tagger number. It was superseded in practice by the full 240/240 -ab run the next day.
  • Blended files from harness bugs on 2026-08-23, all found the same night (a lab note §5):
  • the /health readiness bug left 48 HTTP-503 rows in the epistemics file;
  • --no-resume appended instead of truncating, leaving 339 tagger rows for a 240-case suite;
  • the | template penalised the 12B for following format literally (epistemics/3 answerable 9/12, fixed in /4).
  • Empty smoke-test replies, twice. On 2026-08-31 the gate's max_tokens=16 probe returned '' for gemma, a false alarm. On 2026-09-20 an 8-token seating probe returned '' because thinking consumed the budget, so thinking is pinned off in fleetview.
  • Metal segfault, 2026-09-29 19:54Z (20:54:44 BST): null pipeline in ggml_metal_op_flash_attn_ext after 9 days and 2.74M tasks. Down until a hand relaunch at 20:31Z; the root cause is not established. It led to launchd supervision.
  • Borrowed evidence in the roster note. fleetview's note "np-insensitive: 76.7 vs 76.9 measured" is MiniCPM5-2B's figure (One baseline was 25 points off and nothing in the stamp could explain it; the other six reproduced exactly). It was cited for gemma when the seat went to 4 slots. No gemma -np A/B on tagger is on record.
  • Missing flags check: every server line above has --jinja. The -midrange server added --reasoning-format deepseek. The others leave reasoning parsing at the binary's default; the effect on thinking-off profiles is not on record.

What happened to it

Downloaded 2026-08-23 → benched 2026-08-23 → 2026-10-11 (32 run-log entries, 10 labels) → seated on and off 2026-09-09 → 09-13 → permanent TAG seat from 2026-09-20, launchd from 2026-09-29 → on disk at models/gemma4-12b-dense/gemma-4-12b-it-qat-q4_0.gguf (6,975,879,296 B, checked 2026-10-23). Never deleted, so no RESTORE entry. Re-downloadable from google/gemma-4-12B-it-qat-q4_0-gguf (revision unpinned).