Loading…
Loading…
K2-Horizon-7B quantized with an imatrix generated from open-perfectblend.
The IQ4-XS quant performs slightly better than the official Q4_K_M varian, with lower perplexity, higher accuracy, faster inference and smaller model size. The other i-quants will be measured against their published variants in the future, but you can find a comparison of the quants included in this repo below.
3 Imatrix files were generated by going over corpuses with different token counts: 1M, 4M and 8M tokens. The published variant uses the 8M token imatrix.
The graphs below were generated with python with AI assistance to obtain more visually appealing results. The data was obtained after evaluating the models on wikitext, winogrande, hellaswag and running llama-bench.
[!NOTE] This repository contains GGUF versions of the IFM/K2-Horizon-7B for use with
llama.cpp.Multiple precision and quantization variants are available, including
BF16,Q8_0,Q6_K,Q5_K_M,Q5_0, andQ4_K_M. All GGUF files include tokenizer metadata and a llama.cpp-compatible chat template.
[!WARNING] 💡 Important Deployment Notes: These models require a version of
llama.cppcontaining 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-7B is the medium dense member of the K2-Horizon family: a 7B-core decoder-only model with a 512K context window.
The chart at the top of this card shows K2-Horizon-7B against selected reference models. The table below lists every comparison model used in the figure.
| Reference models · weak to strong | ||||
|---|---|---|---|---|
| Benchmark | K2-Horizon-7B | Reference 1 | Reference 2 | Reference 3 |
| Math | ||||
| HMMT Feb 2026Competition mathematics | 73.3 | Gemma 4-12B63.1 | Qwen3.5-9B65.7 | Granite 4.2-8B66.5 |
| Coding | ||||
| SWE-bench VerifiedSoftware engineering | 70.6 | Gemma 4-12B30.6 | Granite 4.2-8B47.7 | Qwen3.5-9B50.8 |
| Scientific Reasoning | ||||
| HLEExpert-level reasoning | 18.6 | Granite 4.2-8B9.7 | Qwen3.5-9B14.9 | Gemma 4-12B15.7 |
| Coding | ||||
| SciCodeScientific coding | 31.6 | Qwen3.5-9B27.5 | Mistral Small 428.0 | Granite 4.2-8B30.4 |
| General | ||||
| LCRLong-context reasoning | 68.0 | Granite 4.2-8B43.3 | Gemma 4-12B61.7 | Qwen3.5-9B65.3 |
| Coding | ||||
| Terminal-Bench 2.1Agentic terminal use | 39.1 | Granite 4.2-8B18.4 | Gemma 4-12B27.3 | Qwen3.5-9B29.2 |
| Agents | ||||
| tau3-BankingAgentic tool use | 25.8 | Qwen3.5-9B7.0 | Granite 4.2-8B7.6 | Muse Glimmer-30B24.0 |
| BrowseCompWeb browsing | 59.0 | DeepSeek V4 Flash-042353.5 | GPT-554.9 | LongCat Flash Thinking-260156.6 |
Scores in %. Bold marks the best score in each row. BrowseComp: our model uses the Discard-all@95k context-length protocol proposed in the DeepSeek-V3.2 technical report; comparison models may use different harnesses.
| K2-Horizon-7B | IFEval (Prompt) | GSM8K | MBPP | MMLU-Pro | GPQA-Diamond | BBH (3-shot) | AIME 26 (avg @ 4) | Average |
|---|---|---|---|---|---|---|---|---|
| GGUF-BF16 | 82.6 | 93.8 | 89.4 | 73.8 | 73.7 | 54.2 | 88.3 | 79.4 |
| GGUF-Q4_K_M | 82.9 | 94.4 | 87.2 | 71.6 | 67.1 | 49.0 | 89.1 | 77.3 |
| GGUF-Q5_0 | 80.5 | 93.6 | 83.4 | 71.7 | 75.2 | 61.8 | 86.6 | 79.0 |
| GGUF-Q5_K_M | 83.7 | 94.6 | 86.2 | 73.3 | 69.7 | 65.2 | 88.3 | 80.1 |
| GGUF-Q6_K | 81.7 | 94.6 | 86.4 | 73.4 | 74.7 | 59.3 | 85.8 | 79.4 |
| GGUF-Q8_0 | 84.8 | 95.0 | 89.0 | 74.3 | 69.7 | 54.3 | 90.8 | 79.7 |
vLLM, recipe at recipes.vllm.ai/IFM:
vllm serve IFM/K2-Horizon-7B \
--trust-remote-code \
--dtype bfloat16 \
--max-model-len 131072 \
--tensor-parallel-size 1 \
--reasoning-parser k2_horizon \
--enable-auto-tool-choice \
--tool-call-parser k2_horizon
SGLang, this is the recipe validated in the SGLang K2 Horizon cookbook:
sglang serve \
--model-path IFM/K2-Horizon-7B \
--revision 69ada542b68fe13d767479db2ab9421baff88681 \
--tp 1 \
--dtype bfloat16 \
--attention-backend fa3 \
--reasoning-parser k2_horizon \
--host 0.0.0.0 \
--port 30000
[!Tip] Recommended settings:
reasoning_effort="high",temperature=1.0,top_p=0.95, and at least 32,768 output tokens. Reasoning depth is selected per request throughchat_template_kwargs. Thinking is returned inreasoning_contentand the answer incontent.
from openai import OpenAI
client = OpenAI(base_url="http://localhost:30000/v1", api_key="EMPTY")
response = client.chat.completions.create(
model="IFM/K2-Horizon-7B",
messages=[{"role": "user", "content": "Explain the result step by step."}],
temperature=1.0,
top_p=0.95,
max_tokens=32768,
extra_body={"chat_template_kwargs": {"reasoning_effort": "high", "tool_call_format": "xml"}},
)
message = response.choices[0].message
print("Reasoning:", getattr(message, "reasoning_content", None))
print("Answer:", message.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.
Validated with Transformers 5.15.0, PyTorch 2.13.0, Safetensors 0.8.0.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "IFM/K2-Horizon-7B"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_id, device_map="auto", dtype="bfloat16", low_cpu_mem_usage=True, trust_remote_code=True
)
inputs = tokenizer("Explain why long-context evaluation is difficult.", return_tensors="pt").to(model.device)
inputs.pop("token_type_ids", None)
outputs = model.generate(**inputs, max_new_tokens=32768, temperature=1.0, top_p=0.95, do_sample=True)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
high. All reported results use high reasoning effort. Pass {"chat_template_kwargs": {"reasoning_effort": "high"}} on every request; medium and low trade accuracy for speed and are not recommended for evaluation.temperature=1.0, top_p=0.95.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.main is the default checkpoint; base_final and the mid_*_final tags identify training stages.@misc{k2horizon2026,
title = {Introducing K2 Horizon: Frontier Performance, Radically Open},
author = {{IFM Team}},
year = {2026},
url = {https://ifm.ai/blog/k2/},
}
IFM/K2-Horizon-7B