K2-Horizon-MoVA-36B-A4B-GGUF
[!NOTE]
This repository contains GGUF versions of the IFM/K2-Horizon-MoVA-36B-A4B for use with llama.cpp.
The model tensors are stored in their original BF16 precision. The GGUF files include the tokenizer metadata and a llama.cpp-compatible chat template.
Compatibility: These models require a version of llama.cpp containing K2 Horizon architecture support. PR to llama.cpp is in progress. MBZUAI-IFM fork of llama.cpp is in https://github.com/MBZUAI-IFM/llama.cpp/tree/model/K2Horizon
K2-Horizon-MoVA-36B-A4B is the sparse member of the K2-Horizon family: a Mixture-of-Experts model with Mixture-of-Values attention (MoVA) that stores 36B parameters and runs 4B per token. We have released the final checkpoint; intermediate checkpoints, along with the data and the training code, will be released.
[Image blocked: K2-Horizon-MoVA-36B-A4B benchmark results against open MoE, dense, and closed models]
K2-Horizon-MoVA-36B-A4B Highlights
- Frontier-class results at 4B active parameters. On agentic and reasoning benchmarks it outscores open weight dense (approximately 30B model size) and MoE models up to 15× its size; and also performs competitively against closed frontier models (see Benchmark Results).
- 512K context. Native 524,288-token context from the midtraining stages onward.
- Intermediate checkpoints. Intermediate checkpoints will be released so capability changes can be studied across training rather than at a single checkpoint.
- Fully open. Training data/recipe and the training code will be made public.
Benchmark Results
Scores in %. Bold marks the best score in each row. Sections follow the Artificial Analysis Intelligence Index categories. Baseline scores are from Artificial Analysis; Muse Glimmer-30B at high reasoning effort, all other open models in their reasoning mode.
Quickstart
Serving
vLLM, recipe at recipes.vllm.ai/IFM:
SGLang recipe validated on 2× H200 in the SGLang K2 Horizon cookbook:
API Usage
[!Tip]
Recommended settings: reasoning_effort="high", temperature=1.0, top_p=0.95.
Reasoning depth is selected per request through chat_template_kwargs. Thinking is returned in reasoning_content and the answer in content.
Our model supports multiple tool calls formats, which can be changed with chat_template_kwargs. The supported values are json, xml, and xml_typed . The default is xml. Keep --tool-call-parser k2_horizon enabled to parse the selected format.
Transformers
Validated with Transformers 5.15.0, PyTorch 2.13.0, Safetensors 0.8.0.
Best Practices
- Reasoning effort: always
high. All reported results use high reasoning effort. Pass {"chat_template_kwargs": {"reasoning_effort": "high"}} on every request.
- Sampling parameters.
temperature=1.0, top_p=0.95.
- Serving. Use the validated SGLang recipe above: BF16, TP=2, FlashAttention-3, and the
xllm_source_router_gemm_partitions override, which preserves the checkpoint's router numerics. Full recipes for every K2-Horizon size, with measured H200 latency and throughput, are in the SGLang cookbook and the vLLM recipe.
- Parsers. Enable the
k2_horizon reasoning parser for chat, and add the k2_horizon tool-call parser for agent use. Leave both off for plain completion-style generation.
Citation