K2-Horizon-7B-FP8
Pre-training Code - Post-training Code - Pretraining Data - Midtraining Data
[!NOTE]
This repository contains an FP8-quantized version of IFM/K2-Horizon-7B.
All linear layers except lm_head are quantized to FP8:
- Weights: static FP8, one scale per 128*128 block.
- Activations: dynamic FP8, one scale per 1*128 group along the input-channel dim.
The FP8 model performs closely in line with the original BF16 model on our evaluations, while reducing memory footprint and enabling faster inference on FP8-capable hardware.
K2-Horizon-7B is the medium dense member of the K2-Horizon family: a 7B-core decoder-only model with a 512K context window.
<p align="center">
<img src="assets/k2-horizon-7b-benchmarks.png" alt="K2-Horizon-7B benchmark results" width="100%">
</p>
K2-Horizon-7B Highlights
- Strong dense baseline. A 7B-class dense model evaluated across agentic, coding, long-context, and reasoning benchmarks.
- 512K context. Native 524,288-token context from the midtraining stages onward.
- Intermediate checkpoints. Intermediate checkpoints are released so capability changes can be studied across training rather than at a single checkpoint.
- Fully open. Training data and recipe, training code, and evaluation resources are public.
Benchmark Results
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.
Full Results
<!-- TABLE:START -->
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;margin:0 auto;padding:8px 0 16px;overflow-x:auto"><table style="display:table;width:100%;table-layout:fixed;border-collapse:collapse;font-size:12px;margin:0"><thead><tr><th style="width:28%;border-bottom:none"></th><th style="border-bottom:1px solid rgba(128,128,128,0.25)"></th><th colspan="3" style="padding:6px 4px 2px;text-align:center;font-size:11px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;opacity:0.65;border-bottom:1px solid rgba(128,128,128,0.25)">Reference models · weak to strong</th></tr><tr><th style="padding:10px 6px;text-align:left;border-bottom:2px solid #2450D6">Benchmark</th><th style="padding:10px 3px;text-align:center;font-weight:600;border-bottom:2px solid #2450D6;color:#2450D6;background:rgba(36,80,214,0.08)">K2-Horizon-7B</th><th style="padding:10px 3px;text-align:center;border-bottom:2px solid #2450D6">Reference 1</th><th style="padding:10px 3px;text-align:center;border-bottom:2px solid #2450D6">Reference 2</th><th style="padding:10px 3px;text-align:center;border-bottom:2px solid #2450D6">Reference 3</th></tr></thead><tbody><tr><td colspan="5" style="padding:6px 10px;font-weight:600;font-size:12.5px;color:#2450D6;border-bottom:1px solid rgba(36,80,214,0.25);background:rgba(36,80,214,0.12)">Math</td></tr><tr><td style="padding:6px 4px 6px 10px;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle"><div style="font-size:12.5px;font-weight:600;line-height:1.2">HMMT Feb 2026</div><div style="margin-top:2px;font-size:10px;opacity:0.65">Competition mathematics</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;background:rgba(36,80,214,0.08);"><strong>73.3</strong></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Gemma 4-12B</div><div style="margin-top:3px;font-weight:600">63.1</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Qwen3.5-9B</div><div style="margin-top:3px;font-weight:600">65.7</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Granite 4.2-8B</div><div style="margin-top:3px;font-weight:600">66.5</div></td></tr><tr><td colspan="5" style="padding:6px 10px;font-weight:600;font-size:12.5px;color:#2450D6;border-bottom:1px solid rgba(36,80,214,0.25);background:rgba(36,80,214,0.12)">Coding</td></tr><tr><td style="padding:6px 4px 6px 10px;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle"><div style="font-size:12.5px;font-weight:600;line-height:1.2">SWE-bench Verified</div><div style="margin-top:2px;font-size:10px;opacity:0.65">Software engineering</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;background:rgba(36,80,214,0.08);"><strong>70.6</strong></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Gemma 4-12B</div><div style="margin-top:3px;font-weight:600">30.6</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Granite 4.2-8B</div><div style="margin-top:3px;font-weight:600">47.7</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Qwen3.5-9B</div><div style="margin-top:3px;font-weight:600">50.8</div></td></tr><tr><td colspan="5" style="padding:6px 10px;font-weight:600;font-size:12.5px;color:#2450D6;border-bottom:1px solid rgba(36,80,214,0.25);background:rgba(36,80,214,0.12)">Scientific Reasoning</td></tr><tr><td style="padding:6px 4px 6px 10px;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle"><div style="font-size:12.5px;font-weight:600;line-height:1.2">HLE</div><div style="margin-top:2px;font-size:10px;opacity:0.65">Expert-level reasoning</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;background:rgba(36,80,214,0.08);"><strong>18.6</strong></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Granite 4.2-8B</div><div style="margin-top:3px;font-weight:600">9.7</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Qwen3.5-9B</div><div style="margin-top:3px;font-weight:600">14.9</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Gemma 4-12B</div><div style="margin-top:3px;font-weight:600">15.7</div></td></tr><tr><td colspan="5" style="padding:6px 10px;font-weight:600;font-size:12.5px;color:#2450D6;border-bottom:1px solid rgba(36,80,214,0.25);background:rgba(36,80,214,0.12)">Coding</td></tr><tr><td style="padding:6px 4px 6px 10px;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle"><div style="font-size:12.5px;font-weight:600;line-height:1.2">SciCode</div><div style="margin-top:2px;font-size:10px;opacity:0.65">Scientific coding</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;background:rgba(36,80,214,0.08);"><strong>31.6</strong></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Qwen3.5-9B</div><div style="margin-top:3px;font-weight:600">27.5</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Mistral Small 4</div><div style="margin-top:3px;font-weight:600">28.0</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Granite 4.2-8B</div><div style="margin-top:3px;font-weight:600">30.4</div></td></tr><tr><td colspan="5" style="padding:6px 10px;font-weight:600;font-size:12.5px;color:#2450D6;border-bottom:1px solid rgba(36,80,214,0.25);background:rgba(36,80,214,0.12)">General</td></tr><tr><td style="padding:6px 4px 6px 10px;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle"><div style="font-size:12.5px;font-weight:600;line-height:1.2">LCR</div><div style="margin-top:2px;font-size:10px;opacity:0.65">Long-context reasoning</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;background:rgba(36,80,214,0.08);"><strong>68.0</strong></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Granite 4.2-8B</div><div style="margin-top:3px;font-weight:600">43.3</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Gemma 4-12B</div><div style="margin-top:3px;font-weight:600">61.7</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Qwen3.5-9B</div><div style="margin-top:3px;font-weight:600">65.3</div></td></tr><tr><td colspan="5" style="padding:6px 10px;font-weight:600;font-size:12.5px;color:#2450D6;border-bottom:1px solid rgba(36,80,214,0.25);background:rgba(36,80,214,0.12)">Coding</td></tr><tr><td style="padding:6px 4px 6px 10px;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle"><div style="font-size:12.5px;font-weight:600;line-height:1.2">Terminal-Bench 2.1</div><div style="margin-top:2px;font-size:10px;opacity:0.65">Agentic terminal use</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;background:rgba(36,80,214,0.08);"><strong>39.1</strong></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Granite 4.2-8B</div><div style="margin-top:3px;font-weight:600">18.4</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Gemma 4-12B</div><div style="margin-top:3px;font-weight:600">27.3</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Qwen3.5-9B</div><div style="margin-top:3px;font-weight:600">29.2</div></td></tr><tr><td colspan="5" style="padding:6px 10px;font-weight:600;font-size:12.5px;color:#2450D6;border-bottom:1px solid rgba(36,80,214,0.25);background:rgba(36,80,214,0.12)">Agents</td></tr><tr><td style="padding:6px 4px 6px 10px;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle"><div style="font-size:12.5px;font-weight:600;line-height:1.2">tau3-Banking</div><div style="margin-top:2px;font-size:10px;opacity:0.65">Agentic tool use</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;background:rgba(36,80,214,0.08);"><strong>25.8</strong></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Qwen3.5-9B</div><div style="margin-top:3px;font-weight:600">7.0</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Granite 4.2-8B</div><div style="margin-top:3px;font-weight:600">7.6</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">Muse Glimmer-30B</div><div style="margin-top:3px;font-weight:600">24.0</div></td></tr><tr><td style="padding:6px 4px 6px 10px;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle"><div style="font-size:12.5px;font-weight:600;line-height:1.2">BrowseComp</div><div style="margin-top:2px;font-size:10px;opacity:0.65">Web browsing</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;background:rgba(36,80,214,0.08);"><strong>59.0</strong></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">DeepSeek V4 Flash-0423</div><div style="margin-top:3px;font-weight:600">53.5</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">GPT-5</div><div style="margin-top:3px;font-weight:600">54.9</div></td><td style="padding:6px 3px;text-align:center;border-bottom:1px solid rgba(128,128,128,0.15);vertical-align:middle;font-size:12.5px;line-height:1.2;"><div style="font-size:10.5px;opacity:0.72;line-height:1.15">LongCat Flash Thinking-2601</div><div style="margin-top:3px;font-weight:600">56.6</div></td></tr></tbody></table></div>
<!-- TABLE:END -->
Scores in %. Bold marks the best score in each row. BrowseComp uses the Discard-all@95k context-length protocol proposed in the DeepSeek-V3.2 technical report; comparison models may use different harnesses.
Quickstart
Serving
vLLM, recipe at recipes.vllm.ai/IFM:
vllm serve IFM/K2-Horizon-7B-FP8 \
--trust-remote-code \
--max-model-len 131072 \
--tensor-parallel-size 1 \
--reasoning-parser k2_horizon \
--enable-auto-tool-choice \
--tool-call-parser k2_horizon
SGLang, adapted from the BF16 recipe validated in the SGLang K2 Horizon cookbook:
sglang serve \
--model-path IFM/K2-Horizon-7B-FP8 \
--tp 1 \
--attention-backend fa3 \
--reasoning-parser k2_horizon \
--host 0.0.0.0 \
--port 30000
API Usage
[!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 through chat_template_kwargs. Thinking is returned in reasoning_content and the answer in content.
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-FP8",
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.
Transformers
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-FP8"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_id, device_map="auto", dtype="auto", 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))
Best Practices
- Reasoning effort: always
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.
- Sampling parameters.
temperature=1.0, top_p=0.95.
- Output length. Allow at least 32,768 output tokens so reasoning is never cut off. Truncated reasoning is a failed response, not a shorter one.
- Serving. Use the SGLang command above: TP=1, FlashAttention-3. Precision is read from the checkpoint, so no
--dtype flag is needed. Full recipes for every K2-Horizon size, with measured H200 latency and throughput, are in the SGLang cookbook.
- 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.
- Revisions. Pin a revision tag when reproducibility matters. This repository only has
main; the base_final and mid_*_final training-stage tags are on IFM/K2-Horizon-7B.
Citation
@misc{k2horizon2026,
title = {Introducing K2 Horizon: Frontier Performance, Radically Open},
author = {{IFM Team}},
year = {2026},
url = {https://ifm.ai/blog/k2/},
}