IFM/K2-Horizon-7B-FP8

🤗 Hugging Face 来源text-generationapache-2.09B 参数11 GBsafetensors✓ 4 个校验和今天更新
一条命令提交

在你的模型文件夹旁边运行它。它会制作种子、将文件与 Hugging Face 比对,然后提交。你只需开始做种,并粘贴你账户中的密钥。它只读取你的文件,绝不修改。如果愿意,可以先阅读脚本。

curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo IFM/K2-Horizon-7B-FP8 ./model-folder
需要做种者 →

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.

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

Reference models · weak to strong
BenchmarkK2-Horizon-7BReference 1Reference 2Reference 3
Math
HMMT Feb 2026Competition mathematics73.3Gemma 4-12B63.1Qwen3.5-9B65.7Granite 4.2-8B66.5
Coding
SWE-bench VerifiedSoftware engineering70.6Gemma 4-12B30.6Granite 4.2-8B47.7Qwen3.5-9B50.8
Scientific Reasoning
HLEExpert-level reasoning18.6Granite 4.2-8B9.7Qwen3.5-9B14.9Gemma 4-12B15.7
Coding
SciCodeScientific coding31.6Qwen3.5-9B27.5Mistral Small 428.0Granite 4.2-8B30.4
General
LCRLong-context reasoning68.0Granite 4.2-8B43.3Gemma 4-12B61.7Qwen3.5-9B65.3
Coding
Terminal-Bench 2.1Agentic terminal use39.1Granite 4.2-8B18.4Gemma 4-12B27.3Qwen3.5-9B29.2
Agents
tau3-BankingAgentic tool use25.8Qwen3.5-9B7.0Granite 4.2-8B7.6Muse Glimmer-30B24.0
BrowseCompWeb browsing59.0DeepSeek V4 Flash-042353.5GPT-554.9LongCat Flash Thinking-260156.6

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 \
  --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

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",
    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"
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))

Best Practices

  1. 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.
  2. Sampling parameters. temperature=1.0, top_p=0.95.
  3. 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.
  4. Serving. Use the validated SGLang recipe above: BF16, TP=1, FlashAttention-3. Full recipes for every K2-Horizon size, with measured H200 latency and throughput, are in the SGLang cookbook.
  5. 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.
  6. Revisions. Pin a revision tag when reproducibility matters. main is the default checkpoint; base_final and the mid_*_final tags identify training stages.

Citation

@misc{k2horizon2026,
  title  = {Introducing K2 Horizon: Frontier Performance, Radically Open},
  author = {{IFM Team}},
  year   = {2026},
  url    = {https://ifm.ai/blog/k2/},
}