Downloads · 30 days
348
24% of all-time downloads
peculiar-ragdoll/Tiel-Coder-35B-A3B-MLX-oQ6e
Tiel-Coder-35B-A3B-MLX-oQ6e is a image-text-to-text model from peculiar-ragdoll. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. It is set up for mlx. The card lists the license as mit.
<div align="center" <img src="assets/tielbannereyebrow.png" alt="TielCoder — Ornith-1.5 35B-A3B, sharpened, dynamically quantized" width="100%" </div
Downloads · 30 days
348
24% of all-time downloads
All-time downloads
1.4K
Public
Parameters
35.1B
88.7 GB on disk
Likes
4
Public
Click a slice to open those files.
.safetensors29.7 GB · 100%
How the weights are stored.
U3234.6B · 99%
From the Hugging Face model README
These numbers were measured on the GGUF build, not this one. The plates on this page are the best evidence we have about TielCoder, and we would rather show them than show nothing — but this file uses a different quantizer (oMLX's oQ against llama.cpp's k-quants), and changing quantizer moves results. On the same Nail weights we measured a 0.7-point MMLU-Pro gap and a 24% difference in token counts between MLX and GGUF. Read them as evidence about the model, not as measurements of this file. If you need numbers you can hold us to, use the GGUF build.
Tiel is the fast coder of the arsenal. At 6-bit quantization and 29.7 GB it fixes real codebase issues at the rate (and speed, with the right GPU) of Opus 4.6 medium, while holding the best multi-turn conversation of any local model we have measured. It is also cheerfully bad at trivia.
Pick it for work. Pick something else for exams.
This is Ornith-1.5-35B-A3B re-quantized with oMLX's oQ6e quantizer and carrying the Sharp chat template inside the checkpoint. For speculative decoding, the identical build with Ornith's trained MTP head is a separate repo. The uncensored and improved CyberTiel is out now! Get it here.
Where it stands. On 25 SWE-bench-Live problems Tiel fixes 12 — the same as Opus 4.6 (medium), four more than Ornith-1.5 itself, three more than Nail, and four more than Sonnet 5 (medium). Among models of its own class it is first; the ones ahead are dense 27Bs and Opus 5. Its time per attempt is also steadier than Nail's: an 8.6 minute median against 7.2, but a 12.3 minute mean against 15.7, because it lacks Nail's tail of expensive attempts.
How it talks. On Claw-Eval's multi-turn tasks Tiel scores 67.2 against Nail's 60.5 and its own base's 65.3, over 114 scored conversations each. It earns that by answering better rather than by asking more: against the base it is 3.8 points up on answer quality and 5.1 down on clarifying questions. The score weights answers four to one, so the trade pays — but if you want a model that interrogates a vague request before acting, the base does that better.
What it costs. 73.7 on MMLU-Pro against Nail's 84.0, both at 4-bit. Most of that is inherited rather than built: Ornith-1.5 scores 78.0 where stock Qwen3.6-35B-A3B scores 85.3. Our quantization is not the cause — the same quant carrying Ornith's own template scores exactly what Ornith scores. The remaining 4.3 points are the Sharp template buying shorter answers, which is the trade this build exists to make.
Which one. Agentic coding, or long conversations that have to stay useful → Tiel. Exam-style knowledge and hard reasoning → Nail, which is 10.3 points better on MMLU-Pro and 6.7 worse in conversation. The most fixes per problem regardless of weight → Dirk, the dense 27B that solves 15 of the same 25 — one behind stock Qwen3.8-27B, at 2.5x its speed.
One tier: oQ6e, 6-bit dynamic mixed precision with an imatrix pass. Vision is included in the same folder — no separate projector file.
oMLX — put the folder under ~/.omlx/models/peculiar-ragdoll/Tiel-Coder-35B-A3B-MLX-oQ6e, or pull it from the oMLX
admin dashboard.
Sampling: temperature 1.0, top_p 0.95, top_k 20. For agentic coding we ran temperature 0.6.
Prefer to keep the files yourself?
hf download peculiar-ragdoll/Tiel-Coder-35B-A3B-MLX-oQ6e --local-dir TielCoder-MLX
python -m mlx_vlm.generate --model TielCoder-MLX --max-tokens 512 \
--prompt "Explain what this function does." # text
python -m mlx_vlm.generate --model TielCoder-MLX --max-tokens 512 \
--prompt "What is in this screenshot?" --image photo.jpg # vision
Load it with mlx-vlm, not mlx-lm. This is a vision-language checkpoint. mlx_lm.load()
accepts it and then emits garbage tokens — a loader mismatch, not a bad quant, but it fails quietly.
Both runtimes apply the embedded template automatically — nothing to pass.
This build has no MTP head. The safetensors it quantizes from carry Ornith-1.5's trained nextn
head, but this plain build leaves it out; the sibling
oQ6e-MTP build keeps it, for
runtimes that can draft with it. (Ornith's original GGUF conversion once shipped an untrained,
randomly-initialized nextn block, which we measured and removed from the earlier GGUF ladder; Ornith
later published the trained head.)
oQ6e is oMLX's dynamic quantizer: 6-bit base with mixed precision by layer position and selective non-quantization, plus an imatrix pass — the "e" — that measures which weights carry the most signal before deciding what to keep at higher precision. It is the same idea as the GGUF ladder's Unsloth-Dynamic-plus-imatrix recipe, implemented for MLX, but it is not the same computation: oQ derives its own importance data rather than consuming the GGUF imatrix we baked. It derives it from the same data, though: the imatrix pass reads exactly the 3,000 chunks of 512 tokens the GGUF imatrix was computed on — the start of the TielCoder calibration corpus, in the same order, checked token for token against llama.cpp's tokenizer — rather than oMLX's built-in calibration set.
That is the reason for the caveat at the top. Two quantizers pursuing the same goal by different routes do not land in the same place, and only the GGUF route has been benchmarked.
MIT, inheriting Ornith-1.5's license.