VladHong/Qwen3.5-9B-Ornimo-SLERP-GGUF
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
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 Q4KM 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.1Vision (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):
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
- Q4KM 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](https://www.modelscope.cn/models/XiaomiMiMo/MiMo-V2.6-Distill-Qwen-9B) — the anchor: shell, vision tower, projector, tokenizer, chat template (MIT).
- [ornith-ai/Ornith-1.5-9B](https://www.modelscope.cn/models/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).
