Qwen3.5-9B-Ornimo-SLERP (GGUF)
GGUF quantizations of a Qwen3.5-9B hybrid-architecture SLERP merge: the self-improvement RL tower of Ornith-1.5-9B blended into the agentic-SFT shell of MiMo-V2.6-Distill-Qwen-9B. An ornith (a bird) and a MiMo walk into a merge — Ornimo.
Files
| file | size | notes |
|---|---|---|
Qwen3.5-9B-Ornimo-SLERP-Q4_K_M.gguf |
5,629,105,024 B (5.63 GB) | 4-bit K-quant; recommended for everyday use |
Qwen3.5-9B-Ornimo-SLERP-F16.gguf |
17,920,693,120 B (17.92 GB) | unquantized F16 text weights (converted from the bf16 checkpoint) |
Qwen3.5-9B-Ornimo-SLERP-mmproj-f16.gguf |
921,705,024 B (922 MB) | vision tower + projector (MiMo's, byte-exact), F16 |
That is the complete list. This repo contains GGUF weights only — no
safetensors (those live in the sibling checkpoint repo) and no imatrix
(importance matrix): the Q4_K_M was produced by a plain, calibration-free
llama-quantize … Q4_K_M run with no calibration dataset. If you prefer an
imatrix-calibrated quant, generate an imatrix from the F16 GGUF and
requantize — the F16 is provided exactly for that.
What is this, really?
Nobody trained anything here. Both parents are fine-tunes of the same
Qwen3.5-9B backbone (32 hybrid layers — 24 linear-attention + 8
full-attention, hidden 4096, vocab 248320, 262K context) with the
identical tokenizer (248,044 tokens, same ordering), so the text towers
align 1:1. The merge is a whole-tensor SLERP (t=0.5) of all 427 text
tensors, with MiMo's vision tower, projector, tokenizer, chat template and
configs kept byte-exact. Ornith's optional multi-token-prediction (mtp.*)
block is not part of the merge — it is trained against Ornith's own
hidden space and would be miscalibrated on a blended one.
Usage
Both GGUFs use the Qwen3.5 hybrid arch (qwen35 in llama.cpp naming) and
run on llama.cpp b393+.
Text only:
llama-cli -m Qwen3.5-9B-Ornimo-SLERP-Q4_K_M.gguf \
-c 131072 -t 16 -cnv --repeat-penalty 1.1
Vision (image understanding) with the projector:
llama-mtmd-cli -m Qwen3.5-9B-Ornimo-SLERP-Q4_K_M.gguf \
--mmproj Qwen3.5-9B-Ornimo-SLERP-mmproj-f16.gguf \
--image <image.png> -p "What is in this image?" -c 131072 -t 16
-ccontext: the model supports up to 262144 natively; only the 8 full-attention layers cache KV, the 24 linear-attention layers keep fixed-size state.- Thinking mode follows MiMo's chat template
(
chat_template_kwargs: {"enable_thinking": true}in OpenAI-compatible servers;/no_thinkin the prompt for a direct answer). --repeat-penalty 1.1is recommended for very long reasoning chains.
Why this merge was safe (deviation analysis)
Before merging, both parents were compared tensor-by-tensor (760 shared tensors):
| check | result |
|---|---|
| tokenizer vocab ordering | identical (248,044 tokens, same order) |
| median tensor cosine (text) | 0.993–1.000 per category |
| min tensor cosine | 0.986 (layers.22.linear_attn.in_proj_b) |
| tensors below 0.98 cosine | 0 |
| gating tally (lo=0.90, hi=0.995) | 293 full-SLERP / 134 gated / 0 anchored |
| lm_head row cosine | min 0.930, no row below 0.8 — no clashing token families |
| vision towers | cos 1.000 median — near-identical, copied byte-exact |
| NaNs | 0 |
Because tokenizers are identical and every output row agrees, the
unembedding (lm_head) is merged along with everything else — no
anchor-side lm_head exception.
Verified behavior (CPU smoke checks, not a benchmark suite)
- structural verify: all 4 output shards recomputed against an independent SLERP implementation (1-ulp tolerance) — passed
- Q4_K_M via llama.cpp: 17 × 24 = 408 plus a clean one-line Python function, no repetition loops, ~13 tok/s generation on 24 CPU threads (~100 t/s prompt processing)
Everything beyond these checks is uncharted; expect surprises and hallucinations in unknown proportions.
Credits
- XiaomiMiMo/MiMo-V2.6-Distill-Qwen-9B — the anchor: shell, vision tower, projector, tokenizer, chat template (MIT).
- ornith-ai/Ornith-1.5-9B — the RL-self-improvement parent whose text tower is blended in (MIT).
- Qwen3.5-9B — the shared backbone both parents fine-tune (Apache-2.0, Copyright 2026 Alibaba Cloud).