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
| Suite | Score | 95% interval | Passed | Runtime · profile | Recorded |
|---|---|---|---|---|---|
| chainwalkgemma4-12b | 50.0% | 9.5–90.5 | Passed 1/2 | llama.cppagentic-fast | 2026-08-24 |
| chainwalkgemma4-12b-r1 | 50.0% | 9.5–90.5 | Passed 1/2 | llama.cppagentic-fast | 2026-08-24 |
| chainwalkgemma4-12b-r2 | 50.0% | 9.5–90.5 | Passed 1/2 | llama.cppagentic-fast | 2026-08-24 |
| chainwalkgemma4-12b-r3 | 50.0% | 9.5–90.5 | Passed 1/2 | llama.cppagentic-fast | 2026-08-24 |
| contractgemma4-12b | 66.7% | 50.3–79.8 | Passed 24/36 | llama.cppextraction | 2026-09-08 |
| enrichmentgemma4-12b | 77.8% | 65.1–86.8 | Passed 42/54 | llama.cppstudy-nothink | 2026-08-24 |
| epistemicsgemma4-12b | 100.0% | 92.6–100.0 | Passed 48/48 | llama.cppstudy-nothink | 2026-08-24 |
| groundinggemma4-12b | 84.0% | 76.6–89.4 | Passed 105/125 | llama.cppextraction | 2026-08-24 |
| groundinggemma4-12b-b10618 | 84.0% | 76.6–89.4 | Passed 105/125 | llama.cppextraction | 2026-08-25 |
| nullschemagemma4-12b | 88.9% | 79.6–94.3 | Passed 64/72 | llama.cppextraction | 2026-08-24 |
| nullschemagemma4-12b-b10618 | 88.9% | 79.6–94.3 | Passed 64/72 | llama.cppextraction | 2026-08-25 |
| nullschemagemma4-12b-midrange | 87.5% | 77.9–93.3 | Passed 63/72 | llama.cppextraction | 2026-09-10 |
| screeninggemma4-12b | 93.3% | 84.1–97.4 | Passed 56/60 | llama.cppextraction | 2026-08-24 |
| screeninggemma4-12b-b10618 | 93.3% | 84.1–97.4 | Passed 56/60 | llama.cppextraction | 2026-08-25 |
| screeninggemma4-12b-recheck | 93.3% | 84.1–97.4 | Passed 56/60 | llama.cppextraction | 2026-09-17 |
| synthesisgemma4-12b | 83.3% | 72.0–90.7 | Passed 50/60 | llama.cppextraction | 2026-09-09 |
| synthesisgemma4-12b-b10893 | 83.3% | 72.0–90.7 | Passed 50/60 | llama.cppextraction | 2026-09-12 |
| synthesisgemma4-12b-midrange | 83.3% | 72.0–90.7 | Passed 50/60 | llama.cppextraction | 2026-09-10 |
| taggergemma4-12b80.3% coverage | 93.2% | 88.7–96.0 | Passed 178/191 | llama.cppstudy-nothink | 2026-08-24 |
| taggergemma4-12b-ab | 93.8% | 89.9–96.2 | Passed 225/240 | llama.cppextraction | 2026-08-24 |
| taggergemma4-12b-b10618 | 93.8% | 89.9–96.2 | Passed 225/240 | llama.cppextraction | 2026-08-31 |
| taggergemma4-12b-b11552 | 92.5% | 88.5–95.2 | Passed 222/240 | llama.cppextraction | 2026-10-11 |
| tagger_nullablegemma4-12b-ab | 97.9% | 95.2–99.1 | Passed 235/240 | llama.cppextraction | 2026-08-24 |
| tagger_nullablegemma4-12b-b10618 | 97.9% | 95.2–99.1 | Passed 235/240 | llama.cppextraction | 2026-08-31 |
| tagger_nullablegemma4-12b-b11552 | 95.8% | 92.5–97.7 | Passed 230/240 | llama.cppextraction | 2026-10-11 |
| toolcallgemma4-12b-midrange | 55.0% | 42.5–66.9 | Passed 33/60 | llama.cppextraction | 2026-09-10 |
| toolsgemma4-12b | 86.7% | 62.1–96.3 | Passed 13/15 | llama.cppagentic-fast | 2026-08-24 |
| toolscalegemma4-12b | 90.0% | 76.9–96.0 | Passed 36/40 | llama.cppagentic-fast | 2026-08-24 |
| toolscalegemma4-12b-midrange | 95.0% | 83.5–98.6 | Passed 38/40 | llama.cppextraction | 2026-09-10 |
| worldviewgemma4-12b | 97.5% | 87.1–99.6 | Passed 39/40 | llama.cppextraction | 2026-09-09 |
| worldviewgemma4-12b-midrange | 97.5% | 87.1–99.6 | Passed 39/40 | llama.cppextraction | 2026-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.
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.
| File | gemma-4-12b-it-qat-q4_0.gguf |
| Format | Q4_0 (Google QAT), 6,975,879,296 B |
| Where from | downloaded 2026-08-23 10:19–10:37Z from google/gemma-4-12B-it-qat-q4_0-gguf |
| Status | on disk; live tagging seat (launchd since 2026-09-29) |
| Hugging Face | https://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.
/propsreportsmodel_ftype: Q4_0for this path (manifests ofgemma4-12b-recheckand-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
| label | dates (UTC) | binary and version | ctx / -np / KV / -fa / --jinja / --reasoning-format | profile | why this label exists |
|---|---|---|---|---|---|
gemma4-12b — tagger/2 | 2026-08-23 ~22:36–23:19Z | llama.cpp b10369 (6e62ba538) | -c 16384 -np 4 -cb, KV f16 (default), -fa default, --jinja, none | study-nothink | first Gemma grid (relaunched after the readiness fix); lost its server at case 193 (Incidents) |
gemma4-12b — tools/1 | 2026-08-23 23:26Z | b10369 | -c 16384 -np 2 -cb --jinja | agentic-fast (thinking on) | new tool/chain suite |
gemma4-12b — chainwalk/2 | 2026-08-24 00:00Z | b10369 | -c 65536 -np 1 -cb --jinja | agentic-fast | 200-step walk |
gemma4-12b — epistemics/4 | 2026-08-24 00:03Z | b10369 | -c 32768 -np 2 -cb --jinja | study-nothink | re-run under the unambiguous /4 template, beside the agents-a1-35b control |
gemma4-12b — enrichment/3 | 2026-08-24 00:19Z | b10369 | -c 32768 -np 3 -cb --jinja | study-nothink | queued overnight item 1 |
gemma4-12b — toolscale/1 | 2026-08-24 01:13Z | b10369 | -c 16384 -np 2 -cb --jinja | agentic-fast | 64-tool scale suite, own port |
gemma4-12b-r1 / -r2 / -r3 | 2026-08-24 01:14Z / 01:38Z / 02:00Z | b10369 | replicate script; server defaults -c 32768 -np 4 -cb --jinja (the call's own arguments were not traced) | agentic-fast | three chainwalk repeats "turns 200/200 into a number with a spread" (a lab note §7) |
gemma4-12b — grounding/1 | 2026-08-24 13:02Z | b10369 | -c 32768 -np 4 -cb --jinja | extraction | six-model grounding run |
gemma4-12b-ab | 2026-08-24 17:43Z, 18:04Z | b10369 | -c 32768 -np 4 -cb --jinja | extraction | tagger vs tagger-nullable prompt A/B on one server process |
gemma4-12b — nullschema/1, screening/1 | 2026-08-24 22:14Z, 22:16Z | b10369 | -c 32768 -np 4 -cb --jinja | extraction | after "can we implement screening for 12b" |
gemma4-12b-b10618 — grounding/screening/nullschema | 2026-08-25 10:12–10:15Z | llama.cpp b10618 (eb25b7263) | -c 32768 -np 4 -cb --jinja | extraction | fleet re-run after the rebuild; build suffix "so they can never be silently mixed" |
gemma4-12b-b10618 — tagger, tagger_nullable | 2026-08-31 16:39Z, 17:00Z | b10618 | --ctx-size 16384 --n-gpu-layers 99 --jinja (-np, KV, -fa default) | extraction | cross-build control after "Yeah but Gemma had issues" |
gemma4-12b — contract/1 | 2026-09-08 19:29Z | b10618 | --jinja -c 8192 -ngl 999 (-np default) | extraction | contract suite, smoke-tested on gemma first |
gemma4-12b — synthesis/1, synthesis/2, worldview/2 | 2026-09-09 16:54Z, 17:45Z, 18:41Z | b10618 (run-log llama_build on worldview says b10893: stale, see Incidents) | --mmproj … --jinja -c 8192 -np 2 -ngl 999 | extraction | resident-fleet runs of the two suites built that day |
gemma4-12b-midrange | 2026-09-10 10:54–11:04Z | b10618 (eb25b7263); the b10893 pull was 12:17Z | --jinja --reasoning-format deepseek -c 32768 -np 1 -fa on -ctk q8_0 -ctv q8_0 -ngl 999 | extraction | the 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-b10893 | 2026-09-12 16:39Z | b10893 (c32d1dabe) per /props | /props n_ctx 65536, 1 slot; launch line reasoning-seat-gemma12b.sh: --mmproj --jinja -c 65536 -np 1 -fa on -ngl 999 | extraction | gemma's synthesis "for the pairing" with Ornith 9B |
gemma4-12b-recheck | 2026-09-17 17:38Z | llama.cpp b10893 (c32d1dabe) per /props | -c 8192 -np 1 -ngl 99 --jinja --no-warmup | extraction | provenance-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-b11552 | 2026-10-11 11:32Z, 11:56Z | llama.cpp-b11552 b11552 (23b0202a1) | seat-identical -c 8192 -np 1 -ctk q4_0 -ctv q4_0 -fa on -ngl 999 --jinja | extraction | quality gate before switching production builds; "labels carry the build (rule 6)" |
| gemma4-12b-connector-trial (not in the run log) | 2026-10-21 | b10893 per /props | live seat flags (n_ctx 8192, 1 slot) | extraction | 1–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 onfc/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-12btagger/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 areURLError: Connection refused(45), plus oneRemoteDisconnectedand oneConnectionResetError. 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 bothtag/tp034andtag/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-abrun the next day. - Blended files from harness bugs on 2026-08-23, all found the same night (a lab note §5):
- the
/healthreadiness bug left 48 HTTP-503 rows in the epistemics file; --no-resumeappended 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=16probe 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_extafter 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
-npA/B on tagger is on record. - Missing flags check: every server line above has
--jinja. The-midrangeserver 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).