IFM/K2-Horizon-375B-A23B-NVFP4

🤗 Hugging Face sourcetext-generationapache-2.0218B params23B activated391 GBsafetensors✓ 15 checksumsupdated today
Submit in one command

Run it next to your model folder. It makes the torrent, checks your files against Hugging Face, and submits it. You just start seeding and paste your key from your account. It only reads your files and never changes them. Read the script first if you like.

curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo IFM/K2-Horizon-375B-A23B-NVFP4 ./model-folder
Needs a seeder →

K2-Horizon-375B-A23B-NVFP4

Training Code - Evaluation Code - Pretraining Data - Midtraining Data

[!NOTE] This repository contains an NVFP4-quantized version of IFM/K2-Horizon-375B-A23B.

Only the routed-expert linear layers are quantized to NVFP4:

  • Weights: NVFP4
  • Activations: NVFP4

All other linear layers (attention, shared experts, routers, the first 3 dense layers, and lm_head) are kept in BF16.

The NVFP4 model shows slightly lower performance than the original BF16 model on our evaluations, while reducing memory footprint and enabling faster inference on NVFP4-capable hardware.

Serving note: Requires NVIDIA Blackwell-generation GPUs (B-series) or newer with native NVFP4 support.

K2-Horizon-375B-A23B is the flagship of the K2-Horizon family: a sparse Mixture-of-Experts model that stores 375B parameters and runs 23B per token, with a 512K context window. We have released the final checkpoint; intermediate checkpoints, along with the data and the training code, will be released.

K2-Horizon-375B-A23B Highlights

  • Frontier-class agentic performance. On agentic tool use, terminal, and long-horizon workflow benchmarks it matches or beats open-weight MoE models up to 2.6× its size and is competitive with 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

Open-weight modelsClosed models
K2-Horizon-375B-A23BNemotron 3 UltraInkling (xhigh)MiniMax-M3GLM 5.2 (max)GPT 5.6 Luna (max)GPT 5.6 Terra (high)Claude Sonnet5 (max)
# Params375B550B975B428B753B------
# Activated params23B55B41B23B40B------
ArchitectureMoEMoEMoEMoEMoEClosedClosedClosed
Agents
GDPVal-AAReal-world professional tasks (Elo)1,4411,1621,2341,3801,4981,5691,5031,584
tau3-BankingAgentic tool use34.014.229.115.334.631.128.737.3
Coding
Terminal-Bench 2.1Agentic terminal use70.253.955.165.277.980.975.780.5
SciCodeScientific coding42.739.946.145.450.552.550.153.6
Scientific Reasoning
Humanity's Last Exam (without tools)Expert-level reasoning32.028.431.939.041.139.538.541.3
GPQA DiamondGraduate-level science QA87.386.787.292.989.591.189.691.1
CritPtFrontier physics reasoning8.63.15.43.720.921.022.916.9
General
AA-LCRLong-context reasoning76.071.073.380.376.778.373.377.0
AA-Omniscience AccuracyFactual accuracy23.023.042.017.024.043.045.040.0
AA-Omniscience Non-HallucinationNon-hallucination rate74.770.032.082.074.07.010.061.0
Agentic Evaluations
Toolathlon VerifiedAgentic tool use65.334.345.553.759.967.564.871.6
Automation Bench PublicWorkflow automation25.38.012.820.526.233.528.034.7
Apex-Agents (pass@1)Long-horizon professional workflows24.89.019.023.826.928.625.431.7
MCPMarkMCP tool use67.745.751.248.872.466.974.065.3
BrowseCompDeep web research72.844.477.183.5--83.3--84.7
WildClawBenchIn-the-wild agentic tasks50.934.252.356.455.050.460.0--
SWE-Atlas-QnARepo-level code Q&A (strict)48.4--25.542.346.4------
SWE Bench ProSoftware engineering (strict)42.638.743.143.846.748.8----

Scores in %, except GDPVal-AA, which is an Elo rating. Bold marks the best score in each row. The first four sections follow the Artificial Analysis Intelligence Index categories. Baseline scores are from Artificial Analysis where available, otherwise from the IFM evaluation harness. SWE-Atlas-QnA and SWE Bench Pro are run without internet access; BrowseComp uses the Discard-all@95k context setting from the DeepSeek-V3.2 technical report; WildClawBench and Apex-Agents use the English text-only subsets.

NVFP4 vs. BF16

K2-Horizon-375B-A23B IFEval (Prompt) GSM8K MBPP MMLU-Pro GPQA-Diamond BBH (3-shot) AIME 26 (avg @ 32) Average
BF16 90.02 96.06 97.00 84.22 85.80 94.73 94.38 91.7
NVFP4 88.72 95.53 96.60 83.98 85.45 94.26 93.65 91.2
The evaluation context length is set to 65,536 tokens. Unless otherwise specified, all tasks are evaluated in a 0-shot setting. The NVFP4 models have currently been evaluated only on non-agent tasks. Results for agent tasks will be released later.

Quickstart

Serving

vLLM, recipe at recipes.vllm.ai/IFM:

vllm serve IFM/K2-Horizon-375B-A23B \
  --revision main \
  --model-impl transformers \
  --tensor-parallel-size 8 \
  --enable-expert-parallel \
  --trust-remote-code \
  --dtype bfloat16 \
  --max-model-len 131072 \
  --reasoning-parser k2_horizon \
  --tool-call-parser k2_horizon \
  --enable-auto-tool-choice

SGLang recipe validated on 8× H200 in the SGLang K2 Horizon cookbook:

python3 -m sglang.launch_server \
  --model-path IFM/K2-Horizon-375B-A23B \
  --revision main \
  --tp 8 \
  --ep 8 \
  --dtype bfloat16 \
  --attention-backend fa3 \
  --model-loader-extra-config '{"enable_multithread_load":false}' \
  --reasoning-parser k2_horizon \
  --tool-call-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-375B-A23B",
    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 4.57.6, PyTorch 2.13.0, Safetensors 0.8.0.

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "IFM/K2-Horizon-375B-A23B"
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.
  2. Sampling parameters. temperature=1.0, top_p=0.95.
  3. Serving. Use the validated SGLang recipe above: BF16, TP=8 on one 8× H200 node, FlashAttention-3, with multithreaded weight loading disabled. Full recipes for every K2-Horizon size, with measured H200 latency and throughput, are in the SGLang cookbook and the vLLM recipe.
  4. 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

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