Skip to page content
SAVRN
Search Plan a project

Open-weight model · Text generation

K2-Horizon-0.9B

by Institute of Foundation Models IFM/K2-Horizon-0.9B

K2-Horizon-0.9B is an open-weight model for text generation from Institute of Foundation Models, released under Apache License 2.0. It has 1.1B parameters and a 131,072-token context. At 16-bit it needs about 2.6 GB of GPU memory, which fits on 1x MI300X from $1.85 an hour, at the lowest prices in the SAVRN Index. It draws 24k downloads a month.

K2-Horizon-0.9B is the compact dense member of the K2-Horizon family: a 0.9B-class decoder-only model with a 128K context window. - Compact reasoning model. A 0.9B-class dense model evaluated across mathematics, coding, science, and tool-use benchmarks.

Parameters1.1B
Context131,072
Weights2.2 GB
Licenseapache-2.0
AccessOpen weights
Monthly Downloads24k

Runs On

What it takes to serve K2-Horizon-0.9B (1.1B parameters): the memory its weights need at each precision, and the cheapest way to rent enough data-center GPUs to hold them.

PrecisionWeightsMemory neededCheapest setupPer hourAlso fits
16-bit 2.2 GB 2.6 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
8-bit 1.1 GB 1.3 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00
4-bit 0.5 GB 0.6 GB 1x MI300X (192 GB)
Vultr
$1.85 1x H100 $1.99 · 1x MI325X $2.00

Memory is the weights at that precision plus 20% for the runtime and a short context; a long context needs more. Prices are the lowest on-demand hourly rates in the SAVRN Index, read Oct 22, 2026.

K2-Horizon-0.9B on every accelerator the SAVRN Index prices, at every precision

Model Card

By Institute of Foundation Models, published under apache-2.0, revision 7c75f2f49e74.

K2-Horizon-0.9B is the compact dense member of the K2-Horizon family: a 0.9B-class decoder-only model with a 128K context window. - Compact reasoning model. A 0.9B-class dense model evaluated across mathematics, coding, science, and tool-use benchmarks. - 128K context. Supports up to 131,072 tokens with YaRN RoPE scaling. - Multi-teacher distillation. Trained with domain teachers for math and code, STEM, and instruction following. - Fully open. Training data/recipe and the training code are public. The chart at the top of this card shows K2-Horizon-0.9B against selected reference models. The table below lists every comparison model used in the figure. Scores in %. Bold highlights…

Read Institute of Foundation Models's full model card

K2-Horizon-0.9B is the compact dense member of the K2-Horizon family: a 0.9B-class decoder-only model with a 128K context window.

K2-Horizon-0.9B Highlights

  • Compact reasoning model. A 0.9B-class dense model evaluated across mathematics, coding, science, and tool-use benchmarks.
  • 128K context. Supports up to 131,072 tokens with YaRN RoPE scaling.
  • Multi-teacher distillation. Trained with domain teachers for math and code, STEM, and instruction following.

  • Fully open. Training data/recipe and the training code are public.

Benchmark Results

The chart at the top of this card shows K2-Horizon-0.9B against selected reference models. The table below lists every comparison model used in the figure.

Full Results

Reference models
K2-Horizon-0.9BQwen3.5-0.8BOpenBMB-1BQwen3.5-2B
# Params0.9B0.8B1B2B
# Activated params0.9B0.8B1B2B
ArchitectureDenseDenseDenseDense
Math
AIME 2025
Competition mathematics
41.71.040.434.2
AIME 2026
Competition mathematics
48.50.240.438.8
HMMT Feb 2026
Competition mathematics
25.80.623.322.7
Scientific Reasoning
GPQA Diamond
Graduate-level science QA
27.311.926.354.9
Coding
HumanEval+
Code generation
79.916.565.275.6
MBPP+
Code generation
68.035.460.667.7
LiveCodeBench v6
Competitive coding
37.46.633.529.8
Agents
BFCL v4
Function calling
28.025.325.243.6

Scores in %. Bold highlights K2-Horizon-0.9B; Qwen3.5-2B is included as a larger reference model. Protocol and provenance details are in the Technical Appendix.

Quickstart

Serving

vLLM (source at PR #53806, commit d9fd5f11):

vllm serve IFM/K2-Horizon-0.9B \
  --trust-remote-code \
  --dtype bfloat16 \
  --max-model-len 131072 \
  --hf-overrides '{"rope_parameters":{"rope_type": "yarn", "factor": 16, "original_max_position_embeddings": 8192, "rope_theta": 1000000, "beta_fast": 128, "beta_slow": 4}}' \
  --gpu-memory-utilization 0.85 \
  --tensor-parallel-size 1 \
  --reasoning-parser k2_horizon \
  --enable-auto-tool-choice \
  --tool-call-parser k2_horizon

Use an exact branch name from the inventory with vLLM's --revision option. For example, --revision pretrain_600000 selects the final checkpoint of Pretraining, at step 600,000.

SGLang, from a source checkout that includes sgl-project/sglang#37654. This is the recipe validated in the SGLang K2 Horizon cookbook:

sglang serve \
  --model-path IFM/K2-Horizon-0.9B \
  --revision 9fa6faa55fe1c9eb008bb241cc6fb7e4536d0e91 \
  --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=0.6, 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-0.9B",
    messages=[{"role": "user", "content": "Explain the result step by step."}],
    temperature=0.6,
    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-call 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-0.9B"
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))

Training Overview

The table below lists the training stages in order and the purpose of each stage.

Training steps are counted within each stage or phase. Token budgets cover only the additional training in that stage or phase.

Each stage or phase continues from the final checkpoint of the preceding stage or phase.

During RL, training branches into multiple expert models, which are then merged, as described below.

Training stage Training steps Training tokens Sequence length Purpose
Pretraining 600000 5T 8K Pretraining.
Midtraining — Stage 1 75000 393B 32K Context extension.
Midtraining — Stage 2 47684 200B 128K Context extension.
RL — Math1 expert 679 ~0.4B 128K Math RL (GRPO) from Midtraining Stage 2.
RL — Code1 expert 900 0.24B 128K Code RL from Math1.
RL — Math2a expert 239 0.17B 128K Math RL from Code1, no reference KL.
RL — Math2b expert 281 0.33B 128K Continued math RL from Math2a with reference KL 1e-3.
RL — Code2 expert 640 0.19B 128K Code RL from Math2b; also serves as the math/code teacher for MOPD.
RL — IF expert 1500 1.28B 128K Instruction-following RL from Code2.
RL — STEM expert 500 0.25B 128K STEM RL from Code2.
RL — Merge — — — Weight-space merge of Code2, IF, and STEM experts.
MOPD 250 0.12B 128K Resolve structural interference and performance degradation caused by weight merging, aligning multi-domain specialist capabilities in the behavioral space via on-policy distillation.

Release Artifacts

The tables below list the release artifacts for K2-Horizon-0.9B, their availability, and the expected release dates for remaining items.

Last updated: 2026-09-28

Status:

  • Available — fully released for the scope listed;
  • Partial — some items are available, with remaining items listed in the notes;
  • In Progress — being prepared for release but not yet available.

Artifact Index

Artifact Link Status Remaining items / expected availability
Model card Hugging Face Available N/A
Training logs W&B Available N/A
Blog post Blog post Available N/A
Checkpoints Checkpoint inventory Available N/A
Technical report Not yet available In Progress End of September 2026
Code repository GitHub Available N/A
Data Hugging Face Available N/A

Checkpoint Inventory

Model repository: IFM/K2-Horizon-0.9B

Branch names below refer to this repository. Patterns containing * group branches by training stage or phase. The * is a placeholder for a training-step number, not a literal branch name. Intermediate checkpoint groups exclude the final checkpoint listed separately; a pattern does not imply that a checkpoint is available at every step.

For example, pretrain_600000 is the checkpoint saved at training step 600,000 within Pretraining stage, and is the final checkpoint of that stage. The numeric suffix is the step within the named stage, not the cumulative step across all training. Thus, mid_1_75000 refers to step 75,000 within Midtraining Stage 1.

For a partially released group, the available checkpoints and the remaining checkpoints are listed in the notes.

Checkpoint Branch / repository Status Remaining items / expected availability
Pretrain Intermediate Checkpoints pretrain_* Available N/A
Pretrain Final Checkpoint pretrain_600000 Available N/A
Midtrain Stage 1 Intermediate Checkpoints mid_1_* Available N/A
Midtrain Stage 1 Final Checkpoint mid_1_75000 Available N/A
Midtrain Stage 2 Intermediate Checkpoints mid_2_* Available N/A
Midtrain Stage 2 Final Checkpoint mid_2_47684 Available N/A
RL Math1 Expert Checkpoint rl_math1 Available N/A
RL Code1 Expert Checkpoint rl_code1 Available N/A
RL Math2a Expert Checkpoint rl_math2a Available N/A
RL Math2b Expert Checkpoint rl_math2b Available N/A
RL Code2 Expert Checkpoint rl_code2 Available N/A
RL IF Expert Checkpoint rl_if Available N/A
RL Stem Expert Checkpoint rl_stem Available N/A
RL Merged Final Checkpoint rl_rl-merged Available N/A
RL MOPD Final Checkpoint rl-mopd_249 Available N/A

[!IMPORTANT] Note: - Released K2-Horizon Hugging Face checkpoints (e.g. Huggingface) can be used for inference, evaluation, and downstream fine-tuning (including SFT). Training behavior in the bundled Hugging Face implementation may differ from native xLLM, including the auxiliary load-balancing loss. To continue the original pretraining with xLLM's training behavior, use the native xLLM checkpoint and xLLM runtime.

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. medium and low effort settings are not recommended except for research on reasoning efforts.
  2. Sampling parameters. temperature=0.6, 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. main is the MOPD release checkpoint; mid1_75k and mid2_47k preserve the context-extension stages.

Citation

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

Configuration

Architecture
K2HorizonForCausalLM
Context length (tokens)
131,072
Layers
28
Hidden size
1,536
Feed-forward size
5,120
Attention heads
32
Key/value heads
8
Head dimension
64
Vocabulary size
64,256
Experts
0
Experts active per token
0
RoPE base
1e+06
Model type
k2_horizon

Identity and Version

Repository
IFM/K2-Horizon-0.9B
Publisher
Institute of Foundation Models
Task
Text generation
Modality
Text
Library
transformers
Parameters
1.1B parameters
Languages
en, zh
Revision
7c75f2f49e74ac97c1852e62b4c860091d6a00ea
First published
2026-09-01
Last updated
2026-10-20

Files and Weights

17 files, 2.2 GB in total. The weights are 1 file totalling 2.2 GB in safetensors.

Weights1 file · 2.2 GB
Configuration8 files · 78.9 KB
Tokenizer3 files · 5.0 MB
Documentation2 files · 38.6 KB
Other2 files · 1.2 MB
Repository1 file · 1.6 KB
Every file
FileTypeSizeSHA-256
model-00000-of-00001.safetensorsWeights2.2 GB 6392cc67c8dc
config.jsonConfiguration1.8 KB —
configuration_k2_horizon.pyConfiguration3.5 KB —
generation_config.jsonConfiguration45 B —
migration_manifest.jsonConfiguration2.2 KB —
model.safetensors.index.jsonConfiguration21.0 KB —
modeling_k2_horizon.pyConfiguration49.5 KB —
special_tokens_map.jsonConfiguration116 B —
validation.jsonConfiguration676 B —
APPENDIX.mdDocumentation14.8 KB —
README.mdDocumentation23.7 KB —
assets/k2-horizon-0.9b-benchmarks.pngOther1.2 MB f9b538fc071f
chat_template.jinjaOther53.1 KB —
.gitattributesRepository1.6 KB —
ifm_tokenizer_manifest.jsonTokenizer2.0 KB —
tokenizer.jsonTokenizer4.9 MB —
tokenizer_config.jsonTokenizer49.0 KB —

License and Download

License
apache-2.0
Access
Open weights, no gate
Download size
2.2 GB
Download from Institute of Foundation Models

Released by Institute of Foundation Models through its official repository on Hugging Face. Read the license.

Memory Requirements

PrecisionWeights in memory
As published2.2 GB
16-bit2.2 GB
8-bit1.1 GB
4-bit0.5 GB

Weights only, from the published parameter count; the key-value cache and runtime add to this.

Built on This Model

Questions About K2-Horizon-0.9B

How much GPU memory does K2-Horizon-0.9B need?

About 2.6 GB at 16-bit and 0.6 GB at 4-bit: the weights (1.1B parameters) plus a working margin. A long context needs more.

What is the cheapest GPU to run K2-Horizon-0.9B on?

At 16-bit, 1x MI300X from $1.85 an hour; at 4-bit, 1x MI300X from $1.85 an hour, at the lowest on-demand prices the SAVRN Index lists.

Can I use K2-Horizon-0.9B commercially?

Yes. K2-Horizon-0.9B is released under Apache License 2.0. The Apache License 2.0 is a permissive open-source license. It permits commercial use, modification and redistribution. It requires keeping the license and copyright notices and any NOTICE file, stating significant changes, and it includes an express patent grant from contributors.

What is K2-Horizon-0.9B's context length?

131,072 tokens, from the maximum position embeddings in its published configuration.

Similar Models

Model · Text generation

OpenELM-1_1B-Instruct

Apple

Sachin Mehta, Mohammad Hossein Sekhavat, Qingqing Cao, Maxwell Horton, Yanzi Jin, Chenfan Sun, Iman Mirzadeh, Mahyar Najibi, Dmitry Belenko, Peter Zatloukal, Mohammad Rastegari We introduce OpenELM, a family of Open Efficient Language Models. OpenELM uses a layer-wise scaling strategy to efficiently allocate parameters within each layer of the transformer model, leading to enhanced accuracy. We pretrained OpenELM models using the CoreNet library. We release both pretrained and instruction tuned models with 270M, 450M, 1.1B and 3B parameters. We release the complete framework, encompassing data preparation, training, fine-tuning, and evaluation procedures, alongside multiple pre-trained…

Open weights apple-amlr 1.1B parameters transformers

Model · Text generation

quartz-micro-preview

Vertex AGI

The instruction-tuned release of Quartz Micro Preview Base — the same ~1B-parameter mixture-of-experts model, trained completely from scratch on a single consumer GPU, now given a full-parameter supervised fine-tune so it follows instructions instead of just completing text. This is a preview, not a finished product. It is small on every axis by design, and its evaluation below is reported honestly, including where it still falls short — that's this project's standing practice, not a disclaimer added after the fact. - Full-parameter SFT, not LoRA — the base model has zero instruction-following behavior, so a light adapter touch isn't the right tool; every parameter was updated.…

Open weights apache-2.0 1.1B parameters 2,048 tokens transformers

Model · Text generation

TinyLlama-1.1B-Chat-v1.0

TinyLlama

https://github.com/jzhang38/TinyLlama The TinyLlama project aims to pretrain a 1.1B Llama model on 3 trillion tokens. With some proper optimization, we can achieve this within a span of "just" 90 days using 16 A100-40G GPUs. The training has started on 2023-09-01. We adopted exactly the same architecture and tokenizer as Llama 2. This means TinyLlama can be plugged and played in many open-source projects built upon Llama. Besides, TinyLlama is compact with only 1.1B parameters. This compactness allows it to cater to a multitude of applications demanding a restricted computation and memory footprint. This is the chat model finetuned on top of…

Open weights apache-2.0 1.1B parameters 2,048 tokens transformers

Model · Text generation

Llama-3.1-8B-Instruct-CQ-4bit

ThousandML

Llama 3.1 8B Instruct quantized to 4-bit with Coded Quantization (CQ). CQ is a calibration-free 4-bit quantization method designed to preserve the behavior of the original model without requiring a calibration dataset. Because CQ does not optimize the quantization around a fixed calibration corpus, it is designed to generalize beyond calibration-specific data and workloads. This repository contains the 8B-parameter Llama 3.1 Instruct model quantized with Coded Quantization (CQ) 4-bit. Calibration-free. CQ does not require a representative calibration dataset before quantization. This avoids tying the quantization procedure to a particular calibration corpus and is intended to provide better…

Open weights llama3.1 1.1B parameters 131,072 tokens

Model · Text generation

Mini-K3-1H-attnres-block1-v1_D

Nkkbr

This repository contains a text-only Mini-K3-1H checkpoint from the controlled Attention Residuals follow-up study. The comparison includes standard PreNorm, three block granularities, and full sublayer-level AttnRes. The original Block-4 baseline is the separately published nkkbr/Mini-K3-1H-v2; this model's only architectural change is the depth-wise residual mechanism. - Hidden width / attention heads / KDA head width: 1024 / 12 / 128 - Residual mode / decoder layers per block: block / 1 - Vocabulary / BOS / generation EOS / PAD: 163840 / 163584 / 163586 / 163839 control state retained in FP32 where defined by the implementation Every numbered checkpoint is an immutable Git tag. main…

Open weights 1B parameters 131,072 tokens pytorch

Model · Text generation

Mini-K3-1H-kda-kernel-1-v2

Nkkbr

This repository contains a text-only Mini-K3-1H v2 pretraining checkpoint from a controlled 20-architecture comparison. The family retains Kimi-K3's KDA and Gated MLA operators, block Attention Residuals, Stable LatentMoE, SiTU activations, output gates, and Quantile Balancing at approximately one billion logical parameters. The exact architecture for this repository is listed below; some ablations deliberately replace the baseline KDA/MLA ratio, decay granularity, convolution length, or positional encoding. - Hidden width / attention heads / KDA head width: 1024 / 12 / 128 - Vocabulary / BOS / generation EOS / PAD: 163840 / 163584 / 163586 / 163839 control state retained in FP32 where…

Open weights 1B parameters 131,072 tokens pytorch