Text / IFM

K2 Horizon MoVA 36B A4B

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). It stores 36B parameters and runs 4B parameters per token. The final checkpoint has been released; intermediate checkpoints, training data, recipe, and training code are stated as forthcoming. It supports text generation, is licensed under Apache-2.0, and has a native 524,288-token context from midtraining stages onward. The model card claims frontier-class results at 4B active parameters on agentic and reasoning benchmarks, and competitive performance against closed frontier models, but these claims are descriptions from the source rather than independently verified here.

EstimatedRepository opened Sep 1, 2026Source checked 9/23/2026Version: e9f33cb4
LOCALRENTED GPUOPEN WEIGHTS
Freshness 84 out of 100. Repository age: 44 days old, Sep 1, 2026. Measures age, not quality.
Popularity 59 out of 100. 15,925 downloads in 30 days; 416 lifetime likes. Checked Oct 15, 2026. Measures adoption, not quality.
What do these scores mean?

Two ways to compare models. Neither score measures answer quality, benchmark performance, or whether a model fits your machine.

Freshness · release age

A new release starts at 100. The score halves every 180 days: 100 × 2^(−age in days / 180). When the release date is unavailable, a repository date is a fallback—not proof of when the model was released. Missing dates stay unscored.

Check the date source
Popularity · adoption

Downloads over the past 30 days carry 80% of the score; lifetime likes carry 20%. Both use a logarithmic scale, capped at 10 million downloads and 100,000 likes. If likes are unavailable, downloads carry all the weight. Missing download statistics stay unscored.

round(80 × min(1, log10(1 + downloads) / 7) + 20 × min(1, log10(1 + likes) / 5))

Check the statistics source
Scores as of Oct 15, 2026. Statistics checked Oct 15, 2026. Statistics are marked for refresh after 72 hours.Full scoring method

At a glance

Parameters
37.44B
Architecture
k2_horizon
Context length
524,288
License
apache-2.0
Disk space
69.7 GB
Software
vLLM, Transformers
View the model source
MY HARDWARE

Will it run on your machine?

Save your machine to see a personalized rating and its reasoning.

Add my hardware

Best for

  • Text generation tasks
  • Agentic workflows
  • Reasoning tasks
  • Long-context processing up to 524,288 tokens
  • Studying capability changes across intermediate checkpoints, once released

Tradeoffs

  • Only the final checkpoint has been released; intermediate checkpoints are not yet available.
  • Training data, recipe, and training code are stated as forthcoming but not yet released.
  • The model is described as supporting English; other languages are not specified.
  • Performance claims are from the official model card and should be independently verified.
  • No numerical hardware requirements or compatibility details are provided in the source.

Ways to run it

vLLM · Linux

Repository-specific command in publisher documentation; confirm dependencies and hardware in the source.

vllm serve IFM/K2-Horizon-MoVA-36B-A4B --revision main --tensor-parallel-size 2 --enable-expert-parallel --trust-remote-code --dtype bfloat16 --reasoning-parser k2_horizon --tool-call-parser k2_horizon --enable-auto-tool-choice
Official instructions

Transformers · See official guide

Repository-specific command in publisher documentation; confirm dependencies and hardware in the source.

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))
Official instructions

Explore its uses

SAFETENSORSTEXT-GENERATION

Keep exploring