Model reference · open weights

K2-Horizon-MoVA

LLMs IFM Text gen · MoE 2 builds Open weights 1k dl/mo

K2-Horizon-MoVA is an open-weight language model from IFM. K2-Horizon-MoVA-36B-A4B (BF16) weighs 74.9 GB; the smallest configuration that runs it is A100 80 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • K2-Horizon-MoVA is a text-generation model developed by IFM that uses a Mixture-of-Experts architecture with Mixture-of-Values attention.
  • It stores 37.4B parameters but activates only 4B per token, supporting a native context length of 524,288 tokens.
  • The model is trained for English and released under the Apache 2.0 license, with public access to training data and code.

Summary of the IFM/K2-Horizon-MoVA-36B-A4B model card, 2026-10-01

What it is

Released byIFM
Released2026-09-01
Parameters37.4B
VRAM74.9 GB for the weights

What it runs on

Memory and cards for K2-Horizon-MoVA-36B-A4B (BF16)

74.9 GBweights, file size
197 MBcache per 1K tokens
1.3 GBruntime overhead, at least
524,288 tokenscontext max
CardRequests at onceContext maxMemory
8K each32K each
RTX 3060 12 GB … L40S 48 GB
6 smaller cards
A100 80 GB19K78.2 GB
H100 80 GB78.1 GB
RTX PRO 6000 Blackwell 96 GB6153K93.8 GB
DGX Spark (GB10) 128 GB unified153120K107 GB
H200 141 GB348272K138 GB
B200 180 GB5614449K176 GB
4× RTX 4090 24 GB
tensor parallel
8265K23.4 GB a card
4× RTX 3090 24 GB
tensor parallel
8266K23.4 GB a card
4× RTX 5090 32 GB
tensor parallel
276217K31.0 GB a card
2× H100 80 GB
tensor parallel
4010322K78.1 GB a card
2× A100 80 GB
tensor parallel
4812391K78.2 GB a card
4× L40S 48 GB
tensor parallel
5914474K44.0 GB a card
2× RTX PRO 6000 Blackwell 96 GB
tensor parallel
5914478K93.8 GB a card
Memory needed at each load
Requests at once8K tokens each32K tokens each
177.8 GB82.7 GB
584.3 GB108 GB
889.1 GB128 GB
16102 GB179 GB
32128 GB282 GB
64179 GB489 GB

One card, with vLLM's small-card settings.

Builds

Sizes, precisions & builds

BuildParamsPrecisionWeightsSmallest setup
K2-Horizon-MoVA-36B-A4B (above) ↗ 37.4BBF16 74.9 GBA100 80 GB
K2-Horizon-MoVA-36B-A4B-FP8 ↗ 37.4BFP8 48.4 GBH100 80 GB

From the model card

What IFM says about K2-Horizon-MoVA

Read the model card

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.

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

Quickstart

Serving

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

vllm serve IFM/K2-Horizon-MoVA-36B-A4B \
  --revision main \
  --tensor-parallel-size 2 \
  --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 2× H200 in the SGLang K2 Horizon cookbook:

python3 -m sglang.launch_server \
  --model-path IFM/K2-Horizon-MoVA-36B-A4B \
  --revision main \
  --tp 2 \
  --ep 2 \
  --dtype bfloat16 \
  --attention-backend fa3 \
  --json-model-override-args '{"xllm_source_router_gemm_partitions":2}' \
  --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. 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-MoVA-36B-A4B",
    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"}},
)
message = response.choices[0].message
print("Reasoning:", getattr(message, "reasoning_content", None))
print("Answer:", message.content)

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-MoVA-36B-A4B"
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=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.
  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/},
}

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms