CoolFace
Modelpublic

IFM/K2-V2-Instruct

sourceHugging Faceapache-2.0updated 8mo agoView on Hugging Face
46likes315downloads
Model Card

K2-V2-Instruct

<img src="https://huggingface.co/LLM360/K2-V2/resolve/main/figures/K2.LOGO.PRIMARY.RGB.png" width="100" alt="K2-V2 model logo"/>

📚 Tech Report - 📝 Training Code - 🏢 Evaluation Code

🗂️ Pretraining Data: TxT360 - 🗂️ Midtraining Data: TxT360-Midas - 🗂️ SFT Data: TxT360-3efforts

K2-V2 is our most capable fully open model to date, and one of the strongest open-weight models in its class. It uses a 70B-parameter dense transformer architecture and represents the latest advancement in the LLM360 model family.

<img src="https://huggingface.co/LLM360/K2-V2/resolve/main/figures/sft-models.png" width="400" alt="K2-V2 SFT results"/>

Beyond standard competencies such as factual knowledge and conversational ability, K2-V2 demonstrates strong long-context consistency, deep mathematical understanding, and robust reasoning skills. These capabilities serve as building blocks for sophisticated downstream applications, such as solving complex math problems and executing agentic workflows.

<img src="https://huggingface.co/LLM360/K2-V2/resolve/main/figures/base-models.png" width="400" alt="K2-V2 GPQA results"/>


Quick Start

python
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("llm360/k2-v2-instruct", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("llm360/k2-v2-instruct")

prompt = "Explain why the derivative of sin(x) is cos(x)."
messages = [
    {"role": "system", "content": "You are K2, a helpful assistant created by Mohamed bin Zayed University of Artificial Intelligence (MBZUAI) Institute of Foundation Models (IFM)."},
    {"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
    reasoning_effort="high" # Or "medium"/"low"
)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=200)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Alternatively, you may serve the model using VLLM:

vllm serve LLM360/K2-V2-Instruct --tensor-parallel-size 8 --port 8000

K2-V2-Instruct uses reasoning_effort="low"|"medium"|"high" in the chat template to determine reasoning effort. If you cannot use tokenizer.apply_chat_template, you may also pass in these arguments using extra_body and chat_template_kwargs:

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="key"
)

completion = client.chat.completions.create(
    model="LLM360/K2-V2-Instruct",
    messages = [
        {"role": "system", "content": "You are K2, a helpful assistant created by Mohamed bin Zayed University of Artificial Intelligence (MBZUAI) Institute of Foundation Models (IFM)."},
        {"role": "user", "content": "Explain why the derivative of sin(x) is cos(x)."}
    ],
    extra_body={
        "chat_template_kwargs": {"reasoning_effort": "high"},
    },
)

Using specific checkpoints

To use a specific checkpoint, use the revision argument:

Using transformers

model = AutoModelForCausalLM.from_pretrained("llm360/k2-v2-instruct", device_map="auto", revision="stage_1_0135000")

Using vLLM

vllm serve LLM360/K2-V2-Instruct --tensor-parallel-size 8 --port 8000 --revision stage_1_0135000

With Tool-use

To enable tool-use, load, tokenize, and generate as the examples above, but additionally define a set of tools and pass them to the chat template.

Using transformers

python
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("llm360/k2-v2-instruct", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("llm360/k2-v2-instruct")

prompt = "Explain why the derivative of sin(x) is cos(x)."
messages = [
    {"role": "system", "content": "You are K2, a helpful assistant created by Mohamed bin Zayed University of Artificial Intelligence (MBZUAI) Institute of Foundation Models (IFM)."},
    {"role": "user", "content": prompt}
]

# Define list of tools
tools = [
    {
        "type": "function",
        "name": "get_horoscope",
        "description": "Get today's horoscope for an astrological sign.",
        "parameters": {
            "type": "object",
            "properties": {
                "sign": {
                    "type": "string",
                    "description": "An astrological sign like Taurus or Aquarius",
                },
            },
            "required": ["sign"],
        },
    },
]

text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
    reasoning_effort="high" # Or "medium"/"low"
    tools=tools
)

inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=200)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Using vLLM

Serve the model with tool-use enabled and parser set.

vllm serve LLM360/K2-V2-Instruct --enable-auto-tool-choice --tool-call-parser hermes --tensor-parallel-size 8 --port 8000 
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="key"
)

# Define list of tools
tools = [
    {
        "type": "function",
        "name": "get_horoscope",
        "description": "Get today's horoscope for an astrological sign.",
        "parameters": {
            "type": "object",
            "properties": {
                "sign": {
                    "type": "string",
                    "description": "An astrological sign like Taurus or Aquarius",
                },
            },
            "required": ["sign"],
        },
    },
]

completion = client.chat.completions.create(
    model="LLM360/K2-V2-Instruct",
    messages = [
        {"role": "system", "content": "You are K2, a helpful assistant created by Mohamed bin Zayed University of Artificial Intelligence (MBZUAI) Institute of Foundation Models (IFM)."},
        {"role": "user", "content": "Explain why the derivative of sin(x) is cos(x)."}
    ],
    extra_body={
        "chat_template_kwargs": {"reasoning_effort": "high"},
    },
    tools=tools,
)

Evaluation Summary

Below we report performance across general, reasoning, mathematical, and coding benchmarks. Scores for K2-V2 checkpoints (base → mid-4) demonstrate the impact of staged mid-training on reasoning quality.

Task / Modelbasemid-1mid-2mid-3mid-4Qwen2.5-72BLlama3.0-70BLlama3.1-70BOlmo3-32B
General Tasks
MMLU74.374.473.575.075.286.1<u>79.5</u>79.375.2
MMLU-Pro43.746.848.159.857.0<u>58.1</u>52.853.849.6
BBH68.479.881.182.2<u>83.2</u>86.382.282.177.6
HELLASWAG<u>87.8</u>86.986.686.686.087.688.085.084.8
WINOGRANDE82.683.783.783.783.083.9<u>85.3</u>79.890.3
PIQA84.284.083.382.983.183.5<u>84.6</u>84.385.6
TRUTHFULQA54.054.955.1<u>55.8</u>53.960.545.649.754.9
Math & STEM Tasks
GPQA-DIAMOND26.331.327.8<u>43.9</u>55.134.921.227.330.3
GSM8K68.076.482.193.6<u>92.5</u>91.283.281.180.5
MATH27.838.241.194.7<u>91.4</u>58.541.941.643.4
AIME 20250.017.625.153.2<u>46.9</u>1.70.10.214.7
ARC-CHALLENGE64.966.466.466.066.372.4<u>69.2</u>64.965.4
Coding Tasks
MBPP57.657.858.259.861.875.4<u>69.2</u>64.460.2
HUMANEVAL50.051.2<u>53.7</u>54.354.354.342.150.636.0
Logic Puzzles
COUNTDOWN1.3<u>53.3</u>53.135.975.66.01.00.523.2
KK-4 PEOPLE4.844.9<u>68.0</u>64.592.926.14.27.642.4
KK-8 PEOPLE0.523.241.3<u>51.6</u>82.85.71.11.313.0
ORDER-15 ITEMS4.730.747.2<u>55.8</u>87.637.03.54.525.0
ORDER-30 ITEMS0.00.33.0<u>34.1</u>40.30.70.20.10.6
Instruction Following
IFEVAL17.426.228.5<u>34.5</u>26.740.315.117.413.2
Arabic
MMLU-Arabic65.466.164.566.665.574.165.0<u>66.8</u>47.8

Below we report the evaluation results for K2-V2 after supervised fine-tuning (SFT). These variants correspond to three levels of reasoning effort (Low < Medium < High).

Metric / Model**K2 Low**<br><sub>Dense · 70B</sub>**K2 Medium**<br><sub>Dense · 70B</sub>**K2 High**<br><sub>Dense · 70B</sub>**Olmo3 Think SFT**<br><sub>Dense · 32B · No RL</sub>**Olmo3 Think**<br><sub>Dense · 32B · RL</sub>**GLM-4.5 Air**<br><sub>MoE · 106B A12B</sub>**MiniMax-M2**<br><sub>MoE · 230B A10B</sub>**Qwen3 235B**<br><sub>MoE · 235B A22B · Reasoning</sub>**Qwen 2.5 72B**<br><sub>Dense · 72B</sub>
LongBench V240.741.342.642.847.149.455.860.947.2
AIME2527.362.080.268.373.381.375.888.815.2
HMMT2519.045.671.443.350.8373.363.584.29.79
GSM8K92.492.094.896.195.796.195.493.585.8
Minerva85.090.694.596.997.394.985.398.082.1
GPQA-D48.560.669.358.059.875.376.280.750.5
MBPP71.075.884.887.691.682.883.896.280.0
HumanEval82.391.591.596.396.397.689.694.585.4
LCBv639.951.367.067.967.667.879.272.836.7
IFEVAL73.282.790.080.188.788.789.688.785.7

Please refer to our Tech Report for detailed evaluation results.


Datasets & Mixtures

SFT Mix

  • TxT360-3efforts: curated instruction + mixed-difficulty reasoning traces
  • Tool-calling demonstrations
  • Small but high-value corpus to showcase model potential

All mixtures, filtering rules, and data sources are fully released for reproducibility.

Please refer to our Tech Report for detailed datasets and mixtures information.


Model Description

  • Model type: K2-V2 follows a standard decoder-only transformer with grouped-query attention and RMSNorm.
  • Training stage: Pre-training & Post-training
  • Language(s) (NLP): English
  • License: Apache 2.0
Model HyperparameterValue
Total Parameters70B
Hidden Size8,192
Intermediate Size (FFN)28,672
Number of Attention Heads64
Number of Layers80
RMSNorm ɛ1e-5
Pre-training Seq Length8,192
Post-training Seq Length524,288
Vocab Size250,000

Citation

If you use K2-V2-Instruct in your research, please cite the following:

@misc{k2team2025k2v2360openreasoningenhancedllm,
      title={K2-V2: A 360-Open, Reasoning-Enhanced LLM}, 
      author={K2 Team and Zhengzhong Liu and Liping Tang and Linghao Jin and Haonan Li and Nikhil Ranjan and Desai Fan and Shaurya Rohatgi and Richard Fan and Omkar Pangarkar and Huijuan Wang and Zhoujun Cheng and Suqi Sun and Seungwook Han and Bowen Tan and Gurpreet Gosal and Xudong Han and Varad Pimpalkhute and Shibo Hao and Ming Shan Hee and Joel Hestness and Haolong Jia and Liqun Ma and Aaryamonvikram Singh and Daria Soboleva and Natalia Vassilieva and Renxi Wang and Yingquan Wu and Yuekai Sun and Taylor Killian and Alexander Moreno and John Maggs and Hector Ren and Guowei He and Hongyi Wang and Xuezhe Ma and Yuqi Wang and Mikhail Yurochkin and Eric P. Xing},
      year={2025},
      eprint={2512.06201},
      archivePrefix={arXiv},
      primaryClass={cs.LG},
      url={https://arxiv.org/abs/2512.06201}, 
}