Ornith-1.5-35B-A3B Abliterated — CyberTiel-Calibrated MTPv2 ICE
Four ICE tiers of huihui-ai/Huihui-Ornith-1.5-35B-A3B-abliterated, quantized against a trunk-matched importance matrix, with the model's own trained MTPv2 head and the Qwen-Sharp v22.4.1 chat template embedded. The BF16 master they were all built from is published here too.
⚠️ Uncensored model. This is an abliterated checkpoint: refusal behaviour has been suppressed in the weights. It will comply with requests a stock model declines. You are responsible for how you use it. Sandbox it at the OS level and control its network and code-execution access — with no refusal backstop, a prompt injection from a hostile page or third-party code has nothing to stop it. If you want the guardrailed equivalent, use the non-abliterated TIEL-Calibrated ICE tiers.
Which one?
Sizes are picked to land between the familiar UD rungs, so use those as your anchor:
| file | size | fits (RAM+VRAM) | where it sits |
|---|---|---|---|
…-19G-ICE.gguf |
18.82 GB | 24 GB | between UD-IQ4_XS and UD-Q4_K_S — most context headroom here |
…-21G-ICE.gguf |
20.85 GB | 24 GB | UD-Q4_K_S class; the rung below Q4_K_M |
…-23G-ICE.gguf |
22.84 GB | 24–32 GB | start here — UD-Q4_K_XL class, snug on 24 GB |
…-25G-ICE.gguf |
24.85 GB | 32 GB | between UD-Q4_K_XL and UD-Q5_K_XL; closest to BF16 here |
…-BF16.gguf |
71.07 GB | — | the master — bake your own tiers from it |
Rule of thumb: take the largest tier that leaves you the context you actually need at
q8_0 KV. If you already run a UD build of this model, pick the ICE tier at the same
size and keep everything else the same.
Measurements
KL divergence against the BF16 master published in this repo — one binary, one
reference, one session per table, 64 chunks at n_ctx 2048. UD-* rows are from
peculiar-ragdoll/Cyber-Tiel-Coder-35B-A3B-GGUF-MTP,
whose chat template this build also uses. Both ladders quantize the same
huihui-abliterated weights. The importance matrices differ: those tiers use his 800-chunk
matrix, these use his 27,513-chunk full-corpus one. Compared directly from the two files
they allocate bits almost identically (expert-tensor in_sum2 cosine 0.99569, top-1 %
channel overlap 0.948), so what the tables show is a recipe difference, not a calibration
one. Grouped by size band, largest file first, so the two tables line up row for row.
Bold marks the best file in each band.
English text — WikiText-2 · PPL(base) 7.577170
| file | size | mean KLD | 99% KLD | 99.9% KLD | PPL ratio | same top-1 | active bpw | file bpw | overall |
|---|---|---|---|---|---|---|---|---|---|
| ≈ 25–27 GB | |||||||||
UD-Q5_K_XL |
26.98 GB | 0.024029 | 0.2520 | 0.9873 | 0.9927 | 94.00 % | 7.833 | 6.077 | 96.6 |
25G-ICE |
24.85 GB | 0.027866 | 0.2793 | 1.0757 | 0.9867 | 93.36 % | 7.686 | 5.599 | 96.1 |
| ≈ 22.5–23 GB | |||||||||
23G-ICE |
22.84 GB | 0.033146 | 0.3304 | 1.1405 | 0.9864 | 92.68 % | 7.523 | 5.146 | 95.6 |
UD-Q4_K_XL |
22.75 GB | 0.035699 | 0.3651 | 1.3015 | 0.9770 | 92.63 % | 7.474 | 5.123 | 95.4 |
UD-Q4_K_M |
22.52 GB | 0.036217 | 0.3761 | 1.2884 | 0.9753 | 92.40 % | 7.130 | 5.073 | 95.3 |
| ≈ 21 GB | |||||||||
UD-Q4_K_S |
21.28 GB | 0.040310 | 0.4156 | 1.5351 | 0.9795 | 91.98 % | 7.025 | 4.793 | 94.9 |
21G-ICE |
20.85 GB | 0.039589 | 0.4162 | 1.5265 | 0.9840 | 92.22 % | 7.357 | 4.698 | 95.0 |
| ≈ 18 GB | |||||||||
19G-ICE |
18.82 GB | 0.059336 | 0.6120 | 1.9325 | 0.9987 | 90.09 % | 7.192 | 4.241 | 93.1 |
UD-IQ4_XS |
18.12 GB | 0.068901 | 0.7185 | 2.3927 | 1.0435 | 89.59 % | 6.757 | 4.082 | 92.4 |
Code — code.test.raw · PPL(base) 2.194208
| file | size | mean KLD | 99% KLD | 99.9% KLD | PPL ratio | same top-1 | active bpw | file bpw | overall |
|---|---|---|---|---|---|---|---|---|---|
| ≈ 25–27 GB | |||||||||
UD-Q5_K_XL |
26.98 GB | 0.011993 | 0.1702 | 0.8170 | 1.0009 | 97.25 % | 7.833 | 6.077 | 98.3 |
25G-ICE |
24.85 GB | 0.015497 | 0.2207 | 1.0820 | 1.0007 | 97.06 % | 7.686 | 5.599 | 98.0 |
| ≈ 22.5–23 GB | |||||||||
23G-ICE |
22.84 GB | 0.019269 | 0.2822 | 1.3248 | 1.0018 | 96.66 % | 7.523 | 5.146 | 97.7 |
UD-Q4_K_XL |
22.75 GB | 0.019742 | 0.2909 | 1.3855 | 1.0041 | 96.61 % | 7.474 | 5.123 | 97.6 |
UD-Q4_K_M |
22.52 GB | 0.020440 | 0.2880 | 1.3215 | 1.0040 | 96.59 % | 7.130 | 5.073 | 97.6 |
| ≈ 21 GB | |||||||||
UD-Q4_K_S |
21.28 GB | 0.023484 | 0.3466 | 1.6264 | 1.0028 | 96.31 % | 7.025 | 4.793 | 97.3 |
21G-ICE |
20.85 GB | 0.024669 | 0.3787 | 1.6756 | 1.0044 | 96.28 % | 7.357 | 4.698 | 97.2 |
| ≈ 18 GB | |||||||||
19G-ICE |
18.82 GB | 0.036910 | 0.5798 | 2.3285 | 1.0154 | 95.24 % | 7.192 | 4.241 | 96.1 |
UD-IQ4_XS |
18.12 GB | 0.044161 | 0.6689 | 2.8208 | 1.0191 | 94.80 % | 6.757 | 4.082 | 95.5 |
overall = 0.70/(1+meanKLD) + 0.30*sameTop1. Sizes are measured, not predicted.
Don't compare the two tables to each other. Code is more predictable text, so every file scores about half as much divergence on it. Compare rows within a table.
Picking a tier
Both ladders are cut from the same BF16 master, so the only question is which one loses less of it at a given file size.
| tier | size | English text | code |
|---|---|---|---|
19G-ICE |
18.82 GB | saves 0.18 GB | saves 0.20 GB |
21G-ICE |
20.85 GB | saves 0.64 GB | saves 0.18 GB |
23G-ICE |
22.84 GB | saves 0.70 GB | saves 0.12 GB |
25G-ICE |
24.85 GB | saves 0.55 GB | level |
saves X GB = a UD file has to be that much larger to lose as little as this tier does. On code the two ladders run close together above 22 GB.
UD-Q5_K_XL (26.98 GB) is the most faithful file measured here. If you have 27 GB to
spend, take it — ICE is aimed at the 18–25 GB band, where it buys you the gap between two UD
rungs without the extra gigabyte.
Corpora
| corpus | size | contents |
|---|---|---|
wiki.test.raw |
1.29 MB | WikiText-2 raw test, as distributed with the llama.cpp CI dataset |
code.test.raw |
1.09 MB | 70 source files from 5 repos pinned to commit SHAs — Rust 42.5 % (ripgrep, bat), C/C++ 21.9 % (llama.cpp), Python 20.8 % (requests), Go 14.8 % (gin) — all MIT / Unlicense / Apache-2.0 |
code.test.raw is in corpora/ with the script that rebuilds it
byte-exactly; no dataset gating, no account needed. Raw llama-perplexity output for every
row of both tables is under measurements/.
Two bpw columns. Only 8 of 256 experts fire per token, so a bit in ffn_*_exps is worth
about 3 % of a bit in attention, the shared expert or the output head — those run on every
token. active bpw weights by that (routed experts at 8/256, token_embd excluded, MTP
scored separately); file bpw is just size ÷ parameters. It is why a 22.84 GB file computes
at ~7.5 bpw, and it is the more useful column when comparing two files of similar size.
KLD measures fidelity to this repo's master and nothing else — not reasoning, tool use or speed. It is also within-lineage: every ladder is measured against its own master, so these values are not comparable to another repo's. Compare across lineages with PPL.
What ICE is, briefly
ICE = Isolation of Compounding Error: allocate bits by how far a quantization error travels through the network, rather than by activation magnitude. Two visible consequences:
- A uniform expert stack —
ffn_gate,ffn_upandffn_downshare a type at each depth. Controlled tests at identical size favoured uniform here:ffn_downwrites straight into the residual stream, whilegate/uperrors are attenuated through the gating nonlinearity — and there is twice as muchgate+upmass paying for any bump. - The draft block follows the tier —
blk.40's experts are not pinned high; only its projections stayQ8_0, which frees ~0.4 GB with draft acceptance intact.
Method, measurements and the cases where it does not win: gbuzhf/ICE-quantization (Apache-2.0).
What's inside
- MTPv2 head, native. The abliterated checkpoint already carries
Ornith-1.5's trained head: its
mtp.*norms are bit-identical to ornith-ai's on all seven tensors (means 0.2734–2.9251; an untrained head sits at 1.000 ± 0.003). Every tier shipsblk.40withnextn.*intact for speculative decoding. - Importance matrix: trunk-matched.
Cyber-Tiel-Coder-35B-A3B-fullcorpus.imatrix.gguf— 27,513 chunks × 512 (~14.1 M token-passes), measured by peculiar-ragdoll on this exact abliterated trunk. Weighted toward security and code, so expect it to favour that work. - Chat template: Qwen-Sharp v22.4.1, embedded (29,674 B),
add_bos_token=false. - Vision works — the projector just isn't duplicated here. These tiers see images once
you load Ornith-1.5's own projector alongside them. Grab
mmproj-Ornith-1.5-35B-BF16.gguffrom ornith-ai/Ornith-1.5-35B-A3B-GGUF and pass--mmproj. It is one file shared by every tier, unaffected by the abliteration and by quantization — a 19G tier sees exactly as well as a 25G one.
Run it
hf download gbuzhf/Ornith-1.5-35B-A3B-Abliterated-CyberTiel-Calibrated-MTPv2-ICE-GGUF \
Ornith-1.5-35B-A3B-Abliterated-CyberTiel_Calibrated-MTPv2-23G-ICE.gguf --local-dir .
llama-server -m Ornith-1.5-35B-A3B-Abliterated-CyberTiel_Calibrated-MTPv2-23G-ICE.gguf \
-ngl 99 --jinja --ctx-size 262144 -fa on -ctk q8_0 -ctv q8_0 \
--temp 0.6 --top-p 0.95 --top-k 20 --min-p 0
If a tier does not fit your VRAM, do not lower -ngl. Keep every layer on the GPU and
push only the routed experts to CPU with --n-cpu-moe N; each +1 frees roughly 0.5 GB.
With vision — add Ornith-1.5's projector:
hf download ornith-ai/Ornith-1.5-35B-A3B-GGUF mmproj-Ornith-1.5-35B-BF16.gguf --local-dir .
llama-mtmd-cli -m Ornith-1.5-35B-A3B-Abliterated-CyberTiel_Calibrated-MTPv2-23G-ICE.gguf \
--mmproj mmproj-Ornith-1.5-35B-BF16.gguf -ngl 99 \
--image screenshot.png -p "What is failing here?"
--mmproj works with llama-server too, so vision is available over the API.
Credits
- ornith-ai — Ornith-1.5-35B-A3B, and the trained MTPv2 head these tiers carry
- huihui-ai — the abliteration this build quantizes
- peculiar-ragdoll — the full-corpus cyber/code importance matrix and the Qwen-Sharp chat template
- eaddario — calibration corpus components (MIT)
- ggml-org/llama.cpp — quantizer and measurement tooling
- Qwen team — the underlying architecture