Granite 4.2 30B · file← Granite 4.2 30B
MLX 4-bit
IBM's MLX copy, the other half of a runtime comparison. Deleted with the GGUF. IBM, downloaded.
- Size
- 16.5 GB
- Status
- Deleted 12 Sep 2026
- Scored runs
- 3
- Smallest Mac
- 32 GB estimate, 8K context
| Suite | Score | 95% interval | Passed | Runtime · profile | Recorded |
|---|---|---|---|---|---|
| groundinggranite-4.2-30b-mlx-q4unenforced | 86.4% | 79.3–91.3 | Passed 108/125 | mlx_lmextraction | 2026-09-08 |
| screeninggranite-4.2-30b-mlx-q4 | 91.7% | 81.9–96.4 | Passed 55/60 | mlx_lmextraction | 2026-09-08 |
| VOID-degenerate-nullschemagranite-4.2-30b-mlx-q4flagged | 100.0% | 94.9–100.0 | Passed 72/72 | mlx_lmextraction | 2026-09-08 |
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 | granite-4.2-30b-mlx-q4/ (4 shards) |
| Format | MLX 4-bit, 16,469,111,945 B (sum of HF shards) |
| Where from | downloaded 2026-09-07 from IBM's MLX repo |
| Status | deleted 2026-09-12 07:45Z (same command) |
| Hugging Face | https://huggingface.co/ibm-granite/granite-4.2-30b-q4-mlx |
Where it came from
- Source:
ibm-granite/granite-4.2-30b-q4-mlx, IBM's own MLX 4-bit upload (four safetensors shards). The assistant read IBM publishing it as "a good sign for correctness". - Size: 16,469,111,945 bytes = sum of the HF shards. Download completion was not byte-verified;
duread 15G and 16.48 GB when it was deleted. So local size agrees with HF only to within the config and tokenizer files. Revision and sha256: not on record. - Command (second line of a one-off script), from
models:
hf download ibm-granite/granite-4.2-30b-q4-mlx --local-dir granite-4.2-30b-mlx-q4
It followed the GGUF in the same chain. The chain log shows the folder complete before the GLM download began at about 22:18Z.
- Quantisation:
model_type granite, 4 bit. Group size and quant predicate: not on record (config.jsonwent with the folder). - Who asked: Alan, 2026-09-07 21:01Z: "check mlx support too", after "that's a shame, what levers does mlx have that llama doesn't have". The assistant found IBM's build.
How it was served
| label | dates (UTC) | binary and version | ctx / -np / KV / -fa / --jinja / --reasoning-format | harness profile | why this label exists |
|---|---|---|---|---|---|
granite-4.2-30b-mlx-q4 | 2026-09-07 22:55Z start; run-log finish times 23:01:22 (screening), 23:06:51 (grounding), 23:09:30 (nullschema) | mlx_lm server 0.31.3 from mlx-venv ("pinned 0.31.3 for comparability"); --model <folder path>, no other flags | not applicable: no ctx, -np, KV, -fa, --jinja or --reasoning-format options were passed to mlx_lm | extraction; --model-id was the folder path | the MLX half of the controlled runtime pair |
granite-4.2-30b (toolcall row only; the contract row is in Granite 4.2 30B Q4_K_M (IBM GGUF, downloaded)) | 2026-09-09 about 10:58Z to 11:03:35Z (run-log finish 12:03:35 BST) | oMLX 0.6.4: omlx serve --model-dir $HOME/.omlx/models --max-concurrent-requests 32 --paged-ssd-cache-dir $HOME/.omlx/cache --hot-cache-max-size 8GB --memory-guard balanced; pool entry .omlx/models/granite-4.2-30b is a symlink to this folder | not set by the caller | extraction, toolcall/1 | the new tool-invocation suite "extends to granite-4.2-30b and gemma4-e2b" for the first time on the deployed stack |
Seats held: none. oMLX pool membership from 2026-09-09 10:49Z (symlink created) to the deletion (the dangling symlink is not on record).
Other servings that are not run-log labels:
| purpose | when (UTC) | server |
|---|---|---|
| throughput probe, 300 tokens | 2026-09-07 22:57Z | the same mlx_lm server |
| runtime matrix, mlx_lm leg | 2026-09-08 about 13:45-14:39Z | mlx_lm 0.31.3 |
| runtime matrix, rapid-mlx leg | same | rapid-mlx serve <folder> --no-spec-decode, rapid-mlx 0.13.4 |
Decisions
- Why downloaded: Alan's "check mlx support too" and the MLX-lever question before it.
- Why benched: "running the mlx versions of models to test speed & accuracy"; granite was "the best target" because both formats of the same weights were held.
- Pre-registered expectation: the pair would be "the first genuinely controlled one". The result looked like an MLX win on nullschema (100.0 vs 90.3) and the assistant called the perfect score suspicious.
- Why kept after that: it stayed on disk as "MEASURED, NO SEAT" while the comparison guide cited it.
- Why deleted: the same instruction as the GGUF, 2026-09-12 07:45Z.
What went wrong
- mlx_lm ignores
response_format. Found 2026-09-08 05:58-06:02Z; invalidated 15 result files across 8 MLX runs, including this model's grounding and nullschema. A guard inharness/runner.pynow refuses schema suites on mlx_lm. - Degenerate nullschema 100%. The check was added 2026-09-10 and fired retroactively on this run and on REAP-60B.
- oMLX contamination. Granite's toolcall/1 run (12/60) came from a server with no granite kernel and is void. A lab note proves the collapse for Guardian and REAP, not for this model, so granite's true toolcall/1 score is unknown, not low.
- Stale build stamp. The toolcall row's
llama_buildfield names llama.cppeb25b7263, but oMLX 0.6.4 served it;runtime/runtime_versionare correct. - Mixed label
granite-4.2-30b(see Granite 4.2 30B Q4_K_M (IBM GGUF, downloaded)). - Not like for like. The run-log/guide pairing with the Q4_K_M GGUF was called "bit-matched". On 2026-10-21 the assistant established that the two were different 4-bit formats (Q4_K_M against MLX affine) and added that to the guide.
- Missing flags / partial runs: no
--jinja-style flags exist for mlx_lm; no partial runs.
What happened to it
Downloaded 2026-09-07 about 21:48-22:18Z → benched 22:55Z-23:09Z → runtime matrix 2026-09-08 → oMLX pool and toolcall 2026-09-09 → nullschema voided 2026-09-10 → deleted 2026-09-12 07:45Z together with the 4 KB .cache/huggingface/hub/models--ibm-granite--granite-4.2-30b-q4-mlx stub. No RESTORE-deleted-*.sh entry. Re-downloadable from ibm-granite/granite-4.2-30b-q4-mlx. IBM also lists q8 and community 3-to-8-bit MLX builds. Status: retired.