MAGI 1.1-4B

Introduction

magi-1.1-4B is Qwen3.5-4B in 2.61 GiB at a 32K context. On our 2,313-task benchmark it scores 81.7%, against 84.0% for the BF16 model in 9.51 GiB, and it thinks 28% less than magi-1.0-4B.

It is magi-1.0-4B with one LoRA fine-tune merged in before quantization:

  1. The fine-tune teaches the model to finish its thinking. Under the 4,096-token thinking budget, magi-1.0-4B runs out of budget on 35% of tasks. The adapter trains on 360 of the model's own correct, short reasoning traces; 40 of them are for prompts on which magi-1.0-4B loops under greedy decoding.
  2. The magi-1.0-4B mixed-precision recipe, unchanged: the same 13 tensor-class rules, quantizer and importance matrix. The file is the same size as magi-1.0-4B's.

Against magi-1.0-4B on the same 2,313 tasks (paired):

  • Accuracy: +1.24 points (110 tasks gained, 89 lost, standard error 0.61). That is 2.0 standard errors, at the edge of the 2-SE bar we use to call a gain real.
  • Thinking: 28% fewer thinking tokens; thinking-budget hits fall from 35% to 18% of tasks.
  • Time: each benchmark task takes 27% less time.

magi-1.1-4B against Qwen3.5-4B in BF16

Capability density

Capability density: magi-1.1-4B 0.939, magi-1.0-4B 0.903, Qwen3.5-4B BF16 0.278

Capability density is ฯ = โˆ’logโ‚‚(1 โˆ’ score) / GiB: how many times the benchmark error rate is halved per gibibyte of memory. Memory for all three models is measured the same way: llama.cpp with a q4_0 KV cache at a 32K context, from llama-fit-params. The magi-1.0-4B card's chart used Ollama's memory figures, so its numbers are not comparable with these.

Thinking

Thinking per task: mean thinking tokens, share of tasks that hit the thinking budget, and share of traces that end in a repetition loop

magi-1.1-4B reaches its answer sooner. It ends thinking on its own more often, so fewer tasks are cut off at the 4,096-token budget and fewer traces end in a repetition loop.

Benchmarks

Every column was run on one RTX 5070 (12 GB) under one protocol:

  • Tasks: 2,313, run with thinking on and a 4,096-token thinking budget (budget forcing), greedy decoding.
  • Server: magi-1.0-4B and magi-1.1-4B on llama.cpp b11800 (llama-server) with a q4_0 KV cache, flash attention and the default micro-batch (512). The BF16 column is our earlier run of the same tasks through Ollama. Run both ways, magi-1.0-4B scores 80.64% (Ollama) and 80.49% (llama.cpp), so the runtime moves the score by about 0.15 points.
  • Code grading: by executing tests (EvalPlus for HumanEval+ and MBPP+). LiveCodeBench uses 150 problems from contests between 2025-01-18 and 2025-04-06.

Memory. Memory is the resident size llama-fit-params projects for a 32K context with one sequence and micro-batch 128: weights, KV cache, recurrent state and compute buffers, GPU plus host, without the CUDA context. These sizes are measured differently from the Ollama figures on the magi-1.0-4B card, so compare them only within this table.

BenchmarkQwen3.5-4B (BF16)
9.51 GiB
magi-1.0-4B
2.61 GiB
magi-1.1-4B
2.61 GiB
Efficiency
Memory at 32K (GiB)9.512.612.61
Benchmark score83.96%80.49%81.72%
Capability density ฯ0.2780.9030.939
Decode speed (tok/s)66186189
Mean thinking tokens2,2222,2331,597
Tasks hitting the thinking budget31.6%34.9%18.3%
Traces ending in a loop5.7%15.0%4.4%
Coding
HumanEval+91.4686.5982.93
MBPP+72.1870.4369.42
LiveCodeBench35.3324.0032.67
Math
GSM8K87.3386.0092.67
Science and Knowledge
ARC-Challenge98.6797.3398.00
MMLU84.5079.0081.50
OpenBookQA95.0093.5095.50
SciQ98.0097.0098.00
TruthfulQA82.5075.5076.50
Commonsense
HellaSwag75.5073.5069.50
WinoGrande87.0083.0084.00
Tool Use
Function calling100.00100.00100.00

Score per benchmark suite for Qwen3.5-4B BF16, magi-1.0-4B and magi-1.1-4B

magi-1.1-4B against BF16: โˆ’2.23 points (paired across the two runtimes, standard error 0.63; 77 tasks gained, 134 lost) in 27% of the memory.

Where it gains and loses against magi-1.0-4B: LiveCodeBench +8.7 and GSM8K +6.7 points; HellaSwag โˆ’4.0 and HumanEval+ โˆ’3.7.

Decode speed: single-stream generation speed (llama-bench, 128 tokens, q4_0 KV), on the same GPU in the same session.

Recipe

magi-1.0-4B's rules, unchanged, on Qwen3.5-4B's 32 layers (24 Gated DeltaNet, 8 full attention):

Tensor group Type Share of parameters bits/weight
FFN gate, up, down (all 32 layers) IQ3_XXS 53.9% 3.06
Token embedding = tied output head Q4_K 15.1% 4.50
DeltaNet input projection attn_qkv (24) Q4_K 12.0% 4.50
Full-attention q, k, v, output (8 layers) Q4_K 7.0% 4.50
Gated-attention output gate (24 DeltaNet layers) IQ3_XXS 6.0% 3.06
DeltaNet output projection ssm_out (24) Q4_K 6.0% 4.50
DeltaNet gates ssm_alpha, ssm_beta Q8_0 <0.1% 8.50
Norms, convolution, A, ฮ”t bias F32 <0.1% 32.00

The quantizer is llama-quantize --pure from the PrismML-Eng/llama.cpp fork with magi-1.0-4B's override file and base type IQ2_XXS. The importance matrix is magi-1.0-4B's, computed on Qwen3.5-4B (BF16), not recomputed for the fine-tune. The file holds 4,205,751,296 parameters. File SHA-256: cb321e7fd3e11ca6600c23242c8d5738c0d230333513b8ee70e25398795ac1f0.

Training

  • Adapter: LoRA rank 16, ฮฑ 32, on all MLP projections and the q/k/v/o projections of the 8 full-attention layers (128 modules, 21.2M parameters).
  • Optimisation: QLoRA. The BF16 base was loaded in 4-bit NF4 so that training fits a 12 GB GPU. 2 epochs (90 steps), learning rate 1e-4 with warmup and cosine decay, effective batch 8. The adapter is merged into the BF16 weights before quantization.
  • Data: 360 rows, each a prompt and one of Qwen3.5-4B's own answers with its thinking.
    • The answers were sampled from Qwen3.5-4B with thinking on, at Qwen's recommended settings (temperature 0.6, top_p 0.95, top_k 20).
    • A sample was kept only if it was correct, finished thinking on its own within 3,000 tokens, and was the shortest such sample for its prompt.
    • 40 rows are for prompts on which magi-1.0-4B loops under greedy decoding.
    • Benchmark questions were excluded by id, normalized text and hash.
  • Prompt sources: the licenses are as declared on each dataset's Hugging Face card.
Dataset Split Rows Declared license
cais/mmlu validation, dev 109 MIT
google-research-datasets/mbpp train, validation 74 CC BY 4.0
allenai/winogrande train 42 not declared
openai/gsm8k train 37 MIT
Rowan/hellaswag train 30 not declared
allenai/openbookqa train 24 unknown
allenai/ai2_arc train 22 CC BY-SA 4.0
allenai/sciq train 15 CC BY-NC 3.0
livecodebench/code_generation_lite problems dated before 2025-01-18 7 cc (variant not stated)

The training rows hold the model's own outputs, not the datasets' answer texts. Some sources carry non-commercial or share-alike terms. If those terms matter for your use, check them.

How to run

llama.cpp (the evaluated configuration; uses the Qwen3.5 chat template embedded in the file):

llama-server -m magi-1.1-4B.gguf -c 32768 --jinja --flash-attn on --cache-type-k q4_0 --cache-type-v q4_0

Ollama:

ollama create magi-1.1-4B -f Modelfile
ollama run magi-1.1-4B

The benchmark used greedy decoding. For interactive use with thinking enabled, Qwen recommends temperature 0.6, top_p 0.95 and top_k 20.

Limitations

  • The accuracy gain over magi-1.0-4B is small and at the edge of significance: +1.24 points, 2.0 SE. The large, clear change is in thinking length.
  • It is not better everywhere: HellaSwag (โˆ’4.0) and HumanEval+ (โˆ’3.7) are lower than magi-1.0-4B.
  • Still loops sometimes: 4% of greedy benchmark traces end in a repetition loop (magi-1.0-4B: 15%).
  • The name is ours. "4B" follows Qwen's naming; the file holds 4,205,751,296 parameters.
  • Narrow evaluation: one benchmark, one GPU, each configuration run once; the magi columns on one runtime (llama.cpp b11800), the BF16 column on Ollama. Text only: the base model's vision encoder is not included.

Related

Citation

The recipe is described in:

@misc{sun2026wherethebitsgo,
  title     = {Where the Bits Go: Sensitivity-Allocated Mixed Precision for a 4B Reasoning Model on a 12 GB Consumer GPU},
  author    = {Sun, Eason},
  year      = {2026},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.23630199},
  url       = {https://doi.org/10.5281/zenodo.23630199}
}

License

The weights are Apache 2.0, inherited from Qwen/Qwen3.5-4B; the license text is included in this repository. See Training for the terms of the datasets the fine-tuning prompts came from.

Downloads last month
360
GGUF
Model size
4B params
Architecture
qwen35
Hardware compatibility
Log In to add your hardware

We're not able to determine the quantization variants.

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for GEHIRNS/magi-1.1-4B

Finetuned
Qwen/Qwen3.5-4B
Finetuned
(1,300)
this model

Collection including GEHIRNS/magi-1.1-4B