Merged bf16 weights, a full model and not an adapter. A LoRA trained on sriq-ai/sriq-sft-v1.6 has been merged into XiaomiMiMo/MiMo-V2.6-Distill-Qwen-9B, so it loads with no PEFT in the path.
The model reasons in compressed Simplified Chinese and answers in the language it was asked in. The reasoning is telegraphic: no hedging, no restating the question, no thinking out loud. It closes by checking the result against the constraints it started from. The final answer keeps its full length, in the reader's language.
Chinese carries a reasoning step in roughly half the tokens English needs, so the trace costs less without the answer getting shorter.
Output shape
<think>设 s=x+y,p=xy。x²+y²=s²-2p=13。…s=2,5。验:s=5,x,y=2,3,平方和13,立方和35。答案对。</think>
x + y = 2 or 5. <full answer in the question's language>
v1.6 is the first dataset version where the check can catch something. 19.5% of its rows
plant a real mistake in one step and have the 验: block find it and redo it
(不对。重新检查…). The rest confirm. It also scales trace length with difficulty
(median reasoning 25 / 140 / 254 tokens for easy / medium / hard), and 5,000 of its 9,988
rows sit behind a long coding-harness system prompt, so the Chinese reasoning is trained in
the context where it otherwise drifts back to English.
Results
No benchmarks were run for this release. Nothing here measures accuracy, the share of rows that reason in Chinese, verification rate or looping against the base model. Evaluate it on your own workload before relying on it.
Known limitations
- Not measured. The v1.6 DiffusionGemma model loops on 2 of 20 held-out prompts after finetuning; whether this model does the same has not been checked.
- The reasoning is Chinese regardless of the question's language. If you show traces to users, they will see Chinese.
- The base is an agentic coding model. This finetune trained on math and coding question/answer rows with no tool calls, so tool-use behaviour after finetuning is untested.
- Training saw about 1,600 of the dataset's 9,988 rows (200 steps at an effective batch of 8, roughly a sixth of one epoch). The remaining rows were never shown to the model.
Usage
The checkpoint is Qwen3_5ForConditionalGeneration (the vision tower is kept), so load it
with AutoModelForImageTextToText:
import torch
from transformers import AutoModelForImageTextToText, AutoTokenizer
model_id = "sriq-ai/sriq-mimo_v2.6-9b-v1.6"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(
model_id, dtype=torch.bfloat16, device_map="auto"
).eval()
messages = [{"role": "user", "content": "What is 17 * 23? Answer briefly."}]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=1024)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))
generation_config.json ships the base's sampling defaults: temperature 0.6, top-p 0.95,
top-k 20.
Do not pass enable_thinking=False
The chat template treats that flag as an instruction to skip reasoning and prefills an empty block:
{%- if enable_thinking is false -%}
{{- '<think></think>' -}}
{%- endif -%}
The model then answers with no trace, silently. There is no error, and the behaviour this
model exists for is switched off. Leave the flag undefined, or set it to True.
Deployment
About 19.3 GB of weights (9.41B parameters, plus a 0.24B MTP head).
Compatible with FriendliAI Dedicated Endpoints. The repository
matches the Qwen/Qwen3.5-9B layout tensor for tensor (775 tensors, same dtypes and
shapes, same config.json), so it deploys the same way Qwen3.5-9B does. The checkpoint as
first uploaded did not deploy there. FIX.md lists what changed and why.
The base model's card documents SGLang with --reasoning-parser mimo. The architecture and
chat template are unchanged by the merge, so the same command should apply, but it has not
been checked.
GGUF quantizations (Q2_K_L through Q8_0, F16, BF16, plus the mmproj file) are at
sriq-ai/sriq-mimo_v2.6-9b-v1.6-GGUF:
llama-mtmd-cli -hf sriq-ai/sriq-mimo_v2.6-9b-v1.6-GGUF --jinja.
Model details
| Base model | XiaomiMiMo/MiMo-V2.6-Distill-Qwen-9B (SFT of Qwen/Qwen3.5-9B) |
| Parameters | 9,409,813,744 (+ 243,290,624 in the MTP head, taken from Qwen3.5-9B) |
| Architecture | Qwen3_5ForConditionalGeneration, 32 layers (3 linear-attention : 1 full-attention) |
| Weights | bfloat16 (linear-attention A_log and norm in float32, as in Qwen3.5), merged (not an adapter) |
| Context length | 262,144 (max_position_embeddings) |
| Training data | sriq-ai/sriq-sft-v1.6: 9,988 conversations, 30 languages, easy / medium / hard |
Training
Supervised fine-tuning with Unsloth and TRL, LoRA merged into the bf16 base.
| rank / alpha / dropout | 16 / 16 / 0 |
| target modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj |
| LoRA variants | rsLoRA, DoRA and LoftQ all off |
| steps | 200 (max_steps; the run is step-capped, not epoch-capped) |
| effective batch size | 8 (per-device 2 × gradient accumulation 4) |
| epoch fraction | ~0.16 (1,600 of 9,988 rows) |
| learning rate | 2e-4, linear schedule, 3 warmup steps |
| optimizer | adamw_8bit, weight decay 0.001 |
| max sequence length | 65,536, no packing, loss on completions only |
| gradient checkpointing | Unsloth |
| seed | 3407 |
Hardware is not recorded on this card.
License
Apache-2.0. The base model, XiaomiMiMo/MiMo-V2.6-Distill-Qwen-9B, is released under MIT; its copyright notice applies to the base weights.
Developed by SRIQ. Base model by the Xiaomi MiMo team, on Qwen3.5-9B by the Qwen team.