---
language:
- en
- ko
- es
- de
- ja
- vi
- fr
- it
- pl
- pt
license: apache-2.0
license_link: LICENSE
library_name: transformers
pipeline_tag: text-generation
tags:
- lg-ai
- exaone
- k-exaone
- moe
---
# K-EXAONE-2.0-750B-A37B-DSpark
## Introduction
We introduce **K-EXAONE 2.0**, a frontier-scale multilingual language model developed by LG AI Research. K-EXAONE 2.0 was scaled to more than three times the size of its predecessor through upcycling, followed by continual pretraining, difficulty-focused mid-training, and post-training.
K-EXAONE 2.0 is broadly competitive with leading open-weight models, demonstrating substantial improvements over its predecessor and achieving particularly strong results in long-context retrieval and safety.
#### Highlights
- **Frontier-Class Scale**
To build a large-scale foundation model with frontier-level intelligence, we upcycled the [K-EXAONE](https://huggingface.co/collections/LGAI-EXAONE/k-exaone) model by expanding both its depth and width, resulting in a more favorable scaling curve. During this process, we found that clamping after two SwiGLU branches effectively mitigates the exploding activations in deeper layers, improving both training and inference stability.
- **Advanced Reasoning & Agentic Intelligence**
In response to the growth of agentic AI, we focused on expanding the model's capabilities in reasoning, agentic workflows, and long-context management. Through careful calibration of the training data and recipes, K-EXAONE 2.0 achieves consistent improvements in agentic coding and long-context understanding, with strong performance on long-context retrieval and safety.
- **Production-Ready Inference**
We support two speculative decoding methods to accelerate inference: MTP (Multi-Token Prediction) and DSpark. Both methods can speed up model generation by approximately 3–5×, reducing latency for long-horizon workloads such as agentic tasks.
- **Multilinguality & Openness**
We expanded multilingual coverage from six to ten languages: Korean, English, Spanish, German, Japanese, Vietnamese, French, Italian, Polish, and Portuguese. We also release K-EXAONE 2.0 under the [Apache license 2.0](https://huggingface.co/LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark/blob/main/LICENSE) so that the broader AI ecosystem can inspect, deploy, and build upon it.

## Model Configurations
| Number of Parameters |
750B |
| Active Parameters |
37B |
| Hidden Dimension |
6,144 |
| Intermediate Size |
18,432 |
| Number of Layers |
78 (2 heading Dense + 76 Sparse) Main layers
5 DSpark layers
|
| Attention |
1 x Global (NoPE)
1 x 4096 SWA
19 x [3 x 128 SWA + 1 x Global] Blocks
|
| Attention Heads |
64 Q-heads / 8 KV-heads |
| Head Dimension |
128 |
| Number of Experts |
1 Shared Expert
256 Total Experts
8 Activated Experts
|
| Expert Dimension |
2,048 |
| Vocab Size |
153,600 |
| Context Length |
262,144 |
| Knowledge Cutoff |
2025 2Q |
## Evaluation Results
The following table shows the benchmark results for the K-EXAONE 2.0 BF16 model.
Detailed evaluation results and configurations can be found in our [technical report](https://huggingface.co/LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark/blob/main/assets/K-EXAONE-2.0-Technical-Report.pdf).
| |
K-EXAONE 2.0 |
K-EXAONE |
Qwen3.5 |
GLM-5.1 |
DSV4 Pro (max) |
| Architecture |
MoE |
MoE |
MoE |
MoE |
MoE |
| Total Params |
750B |
236B |
397B |
754B |
1.6T |
| Active Params |
37B |
23B |
17B |
40B |
49B |
| World Knowledge |
| MMLU-Pro |
83.5 |
83.8 |
89.8 |
86.0 |
87.5 |
| GPQA-Diamond |
82.2 |
79.1 |
88.4 |
86.2 |
90.1 |
| Humanity's Last Exam |
18.3 |
13.6 |
28.7 |
31.0 |
37.7 |
| Math |
| AIME 2026 |
92.3 |
92.2 |
91.3 |
95.3 |
95.2 |
| HMMT Feb 2026 |
78.4 |
80.7 |
84.6 |
82.6 |
95.2 |
| IMO Answer |
78.6 |
76.3 |
80.9 |
83.8 |
89.8 |
| Coding / Agentic Coding |
| SciCode |
37.4 |
35.6 |
42.0 |
43.8 |
50.0 |
| SWE Bench Verified |
68.2 |
49.4 |
76.4 |
73.6 |
80.6 |
| Terminal-Bench 2.1 |
43.8 |
30.3 |
51.3 |
61.8 |
64.0 |
| Agentic Tool Use |
| τ3-Banking |
14.2 |
14.2 |
13.4 |
11.5 |
25.8 |
| Claw-Eval |
77.7 |
70.3 |
79.7 |
84.4 |
82.7 |
| Instruction Following |
| IFEval |
92.4 |
89.7 |
92.6 |
93.9 |
94.0 |
| IFBench |
72.6 |
67.3 |
76.5 |
76.3 |
76.5 |
| Long Context Understanding |
| OpenAI-MRCR |
94.4 |
52.3 |
93.0 |
71.5 |
92.9 |
| AA-LCR |
56.2 |
53.5 |
65.7 |
62.3 |
66.3 |
| Ko-LongBench |
89.6 |
86.8 |
91.3 |
83.6 |
91.4 |
| Korean |
| KMMLU-Pro |
69.1 |
67.3 |
77.4 |
75.8 |
80.5 |
| Click |
84.2 |
83.9 |
88.9 |
88.7 |
91.6 |
| HRM8K-KSM |
91.1 |
91.9 |
91.2 |
89.4 |
94.3 |
| Multilinguality |
| MMMLU |
86.6 |
86.2 |
90.6 |
89.7 |
89.6 |
| GlobalMMLU-Lite |
86.6 |
86.9 |
92.1 |
90.7 |
92.0 |
| PolyMath |
71.3 |
57.4 |
73.3 |
73.8 |
80.9 |
| Safety |
| KGC-Safety |
99.8 |
96.1 |
92.0 |
69.3 |
82.8 |
| ROK-Fortress |
89.5 |
60.9 |
86.1 |
73.2 |
47.6 |
## Quickstart
### Serving K-EXAONE 2.0
### SGLang
Install SGLang from [our fork](https://github.com/lkm2835/sglang/tree/add-k-exaone2) as follows:
```bash
uv venv
source .venv/bin/activate
uv pip install git+https://github.com/lkm2835/sglang@add-k-exaone2
uv pip install git+https://github.com/nuxlear/transformers@add-k-exaone2
```
The following script shows how to serve K-EXAONE 2.0 with SGLang on two nodes of 8 x NVIDIA H200 GPUs.
Before starting the server, set `$HEAD_ADDR` to the IP address of the head (rank-0) node including the port number, and set `$NODE_RANK` to the number index of the node.
Run the one of the following scripts on every node, according to your purpose.
- Low latency
```bash
sglang serve \
--model-path LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark \
--served-model-name K-EXAONE-2.0-750B-A37B-DSpark \
--tp 16 \
--dist-init-addr $HEAD_ADDR \
--nnodes 2 \
--node-rank $NODE_RANK \
--reasoning-parser qwen3 \
--tool-call-parser qwen3_coder \
--host 0.0.0.0 \
--port 8000 \
--max-running-requests 128 \
--speculative-algorithm DSPARK \
--speculative-num-draft-tokens 8 \
--mem-fraction-static 0.85 \
--swa-full-tokens-ratio 0.6
```
- High throughput
```bash
sglang serve \
--model-path LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark \
--served-model-name K-EXAONE-2.0-750B-A37B-DSpark \
--tp 16 \
--dp 2 \
--enable-dp-attention \
--enable-dp-lm-head \
--dist-init-addr $HEAD_ADDR \
--nnodes 2 \
--node-rank $NODE_RANK \
--reasoning-parser qwen3 \
--tool-call-parser qwen3_coder \
--host 0.0.0.0 \
--port 8000 \
--max-running-requests 192 \
--cuda-graph-max-bs 96 \
--speculative-algorithm DSPARK \
--speculative-num-draft-tokens 8 \
--mem-fraction-static 0.85 \
--swa-full-tokens-ratio 0.6
```
> [!NOTE]
> If you are using NVIDIA B200 GPUs, please set `EXAONE_ENABLE_SWA_KV=0` and add the `--disable-prefill-cuda-graph` option to prevent issues with model generation collapse.
> We will update this note once these issues have been resolved.
### vLLM
You should install the vLLM library from [our fork](https://github.com/lkm2835/vllm/tree/add-k-exaone2) as below:
```bash
uv venv
source .venv/bin/activate
uv pip install git+https://github.com/lkm2835/vllm@add-k-exaone2 --torch-backend auto
uv pip install git+https://github.com/nuxlear/transformers@add-k-exaone2
```
The following script shows how to serve K-EXAONE 2.0 with vLLM on two nodes of 8 x NVIDIA H200 GPUs.
Before starting the server, set `$HEAD_IP` to the IP address of the head (rank-0) node, and set `$NODE_RANK` to the number index of the node.
Run the below script on every server.
```bash
HEADLESS_ARG=''
if [ \"\$NODE_RANK\" -ne 0 ]; then
HEADLESS_ARG='--headless'
fi
exec vllm serve LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark \
--served-model-name K-EXAONE-2.0-750B-A37B-DSpark \
--trust-remote-code \
--tensor-parallel-size 16 \
--distributed-executor-backend mp \
--nnodes 2 \
--node-rank $NODE_RANK \
--master-addr $HEAD_IP \
--master-addr 30000 \
--gpu-memory-utilization 0.9 \
--max-num-seqs 256 \
--reasoning-parser qwen3 \
--enable-auto-tool-choice \
--tool-call-parser qwen3_xml \
--host 0.0.0.0 \
--port 8000 \
--speculative_config '{
"method": "mtp",
"num_speculative_tokens": 4
}' \
$HEADLESS_ARG
```
> [!NOTE]
> Currently, serving K-EXAONE 2.0 with DSpark is not supported on vLLM.
> We will update this note once these issues have been resolved.
### Using K-EXAONE 2.0
> [!IMPORTANT]
> To achieve the expected performance, we recommend using the following configurations:
> - We recommend using `temperature=1.0` and `top_p=0.95` for better output quality in most cases.
> - K-EXAONE 2.0 uses `enable_thinking=True` by default. Thus, you need to set `enable_thinking=False` to use non-reasoning mode.
> - We recommend using `preserve_thinking=True` in long-running tasks, such as agentic use or deep research.
Once K-EXAONE 2.0 is running on an inference engine, you can access it using the OpenAI Python SDK.
#### Reasoning mode
For tasks that require high accuracy, you can use the K-EXAONE 2.0 model in reasoning mode. The K-EXAONE 2.0 model supports the `preserve_thinking` option, which allows it to track previous `reasoning_content` across subsequent conversations. For agentic workflows, it is recommended to use `preserve_thinking=True`.
```python
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="EMPTY",
)
messages = [
{
"role": "user",
"content": "Implement fibonacci with python code.",
}
]
response = client.chat.completions.create(
model="LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark",
messages=messages,
max_tokens=32768,
temperature=1.0,
top_p=0.95,
extra_body={
"chat_template_kwargs": {
"enable_thinking": True, # default: True
"preserve_thinking": True, # default: False
}
},
)
print(response)
```
#### Non-reasoning mode
For tasks where latency matters more than accuracy, you can run the K-EXAONE 2.0 model in non-reasoning mode.
```python
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="EMPTY",
)
messages = [
{
"role": "user",
"content": "Explain how useful you are.",
}
]
response = client.chat.completions.create(
model="LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark",
messages=messages,
max_tokens=32768,
temperature=1.0,
top_p=0.95,
extra_body={
"chat_template_kwargs": {
"enable_thinking": False, # default: True
"preserve_thinking": False, # default: False
}
},
)
print(response)
```
#### Tool calling
For your AI-powered agent, you can leverage K-EXAONE 2.0’s tool calling capability.
```python
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="EMPTY",
)
tools = [
{
"type": "function",
"function": {
"name": "roll_dice",
"description": "Roll the dice with the number 1 to N. User can select the number N.",
"parameters": {
"type": "object",
"properties": {
"max_num": {
"type": "integer",
"description": "The maximum number on the dice."
}
},
"required": ["max_num"]
},
},
}
]
messages = [
{
"role": "user",
"content": "Roll a D20 twice and sum the results."
}
]
response = client.chat.completions.create(
model="LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark",
messages=messages,
tools=tools,
max_tokens=32768,
temperature=1.0,
top_p=0.95,
extra_body={
"chat_template_kwargs": {
"enable_thinking": True, # default: True
"preserve_thinking": True, # default: False
}
},
)
print(response)
```
### Agentic Use
You can leverage K-EXAONE 2.0’s agentic capabilities by integrating it with agent frameworks and harnesses.
#### OpenCode
To use the deployed K-EXAONE 2.0 model, you may need to update your `opencode.json` file. Below is an example JSON configuration for setting up a custom server as your model provider.
```json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"local": {
"npm": "@ai-sdk/openai-compatible",
"name": "Local OpenAI-compatible server",
"options": {
"baseURL": "http://localhost:8000/v1",
"extraBody": {
"chat_template_kwargs": {
"enable_thinking": true,
"preserve_thinking": true
}
}
},
"models": {
"K-EXAONE-2": {
"name": "K-EXAONE 2.0",
"limit": {
"context": 262144,
"output": 32768
}
}
}
}
}
}
```
## Limitation
K-EXAONE 2.0 language models, like all existing language models, have certain limitations and may occasionally generate inappropriate responses. The language model generates responses based on the output probability of tokens, and it is determined during learning from training data. While we make every effort to exclude personal, harmful, and biased information from the training data, some problematic content may still be included, potentially leading to undesirable responses. Please note that the text generated by K-EXAONE 2.0 language models does not reflect the views of LG AI Research.
- Inappropriate answers may be generated, which contain personal, harmful or other inappropriate information.
- Biased responses may be generated, which are associated with age, gender, race, and so on.
- The generated responses rely heavily on statistics from the training data, which can result in the generation of semantically or syntactically incorrect sentences.
- Since the models do not reflect the latest information, the responses may be false or contradictory.
LG AI Research strives to reduce potential risks that may arise from K-EXAONE 2.0 language models. Users are not allowed to engage in any malicious activities (e.g., keying in illegal information) that may induce the creation of inappropriate outputs violating LG AI’s ethical principles when using K-EXAONE 2.0 language models.
## License
The model is licensed under [Apache License 2.0](https://huggingface.co/LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark/blob/main/LICENSE).
## Citation
```
@article{k-exaone-2.0,
title={K-EXAONE 2.0 Technical Report},
author={{LG AI Research}},
journal={arXiv preprint arXiv:XXXX.XXXXX},
year={2026}
}
```
## Contact
LG AI Research Technical Support: contact_us@lgresearch.ai