vLLM/Recipes
IFM

IFM/K2-Horizon-0.9B

Compact dense model for mathematics, code, instruction following, and STEM tasks

1.08B stored parameters including embeddings, with 131K context and native K2-Horizon parsing

dense1.08B131,072 ctxvLLM +text
Guide

Overview

K2-Horizon-0.9B is a compact dense model in the IFM K2-Horizon family, with 1.08B stored parameters including embeddings and a 131,072-token context window.

K2-Horizon is an open-weight IFM model family built for transparent foundation-model research, staged checkpoint analysis, and practical deployment. The series spans compact dense models such as K2-Horizon-0.9B for local experimentation, dense mid-size and large models for high-quality research workloads, and mixture-of-expert (MoE) models for higher-capacity serving.

Launch Commands

We recommend serving K2-Horizon-0.9B with YaRN RoPE scaling to enable the full 131,072-token context length. We have tested and verified the model under this configuration.

vllm serve IFM/K2-Horizon-0.9B \
  --trust-remote-code \
  --dtype bfloat16 \
  --max-model-len 131072 \
  --rope-scaling '{"rope_type":"yarn","factor":16.0,"original_max_position_embeddings":8192}' \
  --gpu-memory-utilization 0.85 \
  --reasoning-parser k2_horizon \
  --enable-auto-tool-choice \
  --tool-call-parser k2_horizon

This configuration enables the full 131,072-token context length and is the recommended setting for K2-Horizon.

Without YaRN

To use the original 8,192-token context length, you can serve the model without RoPE scaling:

vllm serve IFM/K2-Horizon-0.9B \
  --trust-remote-code \
  --dtype bfloat16 \
  --max-model-len 8192 \
  --gpu-memory-utilization 0.85 \
  --reasoning-parser k2_horizon \
  --enable-auto-tool-choice \
  --tool-call-parser k2_horizon

Client usage

from openai import OpenAI

client = OpenAI(
    api_key="EMPTY", base_url="http://localhost:8000/v1", timeout=3600
)

resp = client.chat.completions.create(
    model="IFM/K2-Horizon-0.9B",
    messages=[{"role": "user", "content": "Give me three primes above 100."}],
    temperature=1.0, top_p=0.95, max_tokens=2048,
)
print(resp.choices[0].message.content)

Thinking modes

The model supports selectable thinking through chat_template_kwargs, per request or server-wide via --default-chat-template-kwargs:

  • {"reasoning_effort": "high"} — full thinking (default).
  • {"reasoning_effort": "medium"} — faster thinking.
  • {"reasoning_effort": "low"} — fastest thinking.

References