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

Gemma 4 E2B · file← Gemma 4 E2B

mlx-community MLX 4-bit

A community 4-bit copy for Apple's MLX, and the base of Alan's own tagger. Used to test that tagger, then deleted. Gemma-4-e2b-it-4bit.

Size
3.6 GB
Status
Deleted 11 Oct 2026
Scored runs
2
Smallest Mac
8 GB estimate, 8K context
Results2 scored · 95% intervals
SuiteScore95% interval PassedRuntime · profileRecorded
taggergemma4-e2b-mlx-4bit85.8%80.9–89.7Passed 206/240mlx_lmextraction2026-09-07
tagger_nullablegemma4-e2b-mlx-4bit73.8%67.8–78.9Passed 177/240mlx_lmextraction2026-09-07

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.

Filegemma4-e2b-mlx-4bit/ (model.safetensors + config/tokenizer)
FormatMLX 4-bit affine, group 64; 3,550,670,554 B (HF listing)
Where fromdownloaded 2026-08-23 ~21:00Z from mlx-community/gemma-4-e2b-it-4bit
Statusdeleted 2026-10-11 (Tier A sweep)
Hugging Facehttps://huggingface.co/mlx-community/gemma-4-e2b-it-4bit

Where it came from

  • Repo: mlx-community/gemma-4-e2b-it-4bit (community conversion, not Google's). Quantisation per its config.json: {'group_size': 64, 'bits': 4, 'mode': 'affine'}, model_type gemma4, architecture Gemma4ForConditionalGeneration.
  • Commands (2026-08-23 20:59Z and 21:01Z):
cd models && mkdir -p gemma4-e2b-mlx-4bit && cd gemma4-e2b-mlx-4bit
B=https://huggingface.co/mlx-community/gemma-4-e2b-it-4bit/resolve/main
for f in config.json tokenizer.json tokenizer_config.json generation_config.json chat_template.jinja model.safetensors.index.json; do
curl -sL -o "$f" "$B/$f"
done
$PG "https://huggingface.co/mlx-community/gemma-4-e2b-it-4bit/resolve/main/model.safetensors" model.safetensors 6
  • Why: to be the exact base of Alan's LoRA tagger, so the tuned-vs-base A/B had "tuning as the only variable". A lab note records mlx-community/gemma-4-e2b-it-4bit as the student base.
  • Not a local conversion. The void note and run-log void_reason call it "a local MLX 4-bit convert"; the record shows a download of the community conversion.

How it was served

labeldates (UTC)binary and versionctx / -np / KV / -fa / --jinja / --reasoning-formatharness profilewhy this label exists
gemma4-e2b-mlx-4bit2026-09-07 21:04Z (tagger), 21:10Z (tagger_nullable)mlx_lm server from lora/.venv (mlx 0.32.0, mlx_lm 0.31.3, checked 19:33Z the same evening)n/a (mlx_lm server defaults; response_format accepted and not applied)extractionthe base arm of the same-runtime fine-tune check: "Run distill vs base through identical MLX runtime". The harness was given --model-id = the folder path; the run log label is derived from it
gemma4-e2b (one run only: toolcall/1)2026-09-09 11:04ZoMLX 0.6.4, the folder symlinked in as gemma4-e2boMLX defaults, --max-concurrent-requests 32extractionconsolidation of the MLX fleet onto oMLX that morning; the label was the GGUF's, reused. Void.

Unlabelled uses (not in the run log): in-process mlx_lm.generate on 2026-08-23 (base-e2b, 59 turns); mlx_lm.perplexity on 2026-09-08; its tokenizer was pointed at by a BFCL handler registration for both E2B and E4B on 2026-08-24 (no BFCL run is on record).

Seats held: none. On 2026-09-09 10:35Z it was put "straight into the oMLX pool for tagging"; oMLX did not discover it at first ("Model 'gemma4-e2b' not found") and it was never a fleet seat.

Decisions

  • Downloaded 2026-08-23 as the controlled base for the tuned tagger.
  • Used for the fine-tune verdict 2026-09-07: base 85.8 [81–90] vs distill 74.2 [68–79] on tagger, "Distill verdict: don't cut over" (The tagger fine-tune scored below its own base model). The assistant first read the 85.8 as the GGUF's 91.2 being "config-dependent"; the two are different files on different runtimes.
  • Voided 2026-09-09: the oMLX toolcall 0/60 "is not a finding about gemma" — oMLX plus an upstream-reported broken Gemma 4 MLX 4-bit (mlx-vlm #895, cited); voided with the other oMLX runs at 17:33Z. The responses are real direct answers (answered_directly on every case), not server errors (results file .void-omlx, read 2026-10-23).
  • Marked unusable without SwiftLM/Xcode in the 2026-09-07 disk triage ("The MLX cluster"... "that's unusable without Xcode and SwiftLM") — a claim the same evening's mlx_lm server runs contradicted.
  • Deleted 2026-10-11 in the Tier A sweep ("nuke tiers a & b", quoted in RESTORE-deleted-20261011-tiersAB.sh), as "superseded by the live QAT GGUF TAG seat" (a lab note). No E2B GGUF seat ever existed; the TAG seat is gemma4-12b.

What went wrong

  • Void oMLX run under the GGUF's label. The only toolcall/1 run for E2B served this file under gemma4-e2b, so the label mixes two weights files. The run-log row's llama_build says 0.2.0-dev (build 10618, commit eb25b7263) though oMLX served it — a stale build stamp.
  • "Local convert" in the void reason — it was a download.
  • RESTORE entry has no re-download command. RESTORE-deleted-20261011-tiersAB.sh lists it in a comment under the ternary-bonsai block, whose only re-download line is for PrismML; the source is mlx-community/gemma-4-e2b-it-4bit.

What happened to it

Downloaded 2026-08-23 21:04Z → probed 2026-08-23 (59-turn A/B), 2026-09-07 (run log), 2026-09-08 (perplexity), 2026-09-09 (oMLX, void) → deleted 2026-10-11 (the restore script lists it but has no download command) → re-downloadable with hf download mlx-community/gemma-4-e2b-it-4bit (bytes may differ if the repo has changed; revision not recorded). Retired variant (no longer held).