Instructions to use LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark") model = AutoModelForCausalLM.from_pretrained("LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark
- SGLang
How to use LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark with Docker Model Runner:
docker model run hf.co/LGAI-EXAONE/K-EXAONE-2.0-750B-A37B-DSpark
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 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 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.
| 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 as follows:
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
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.6High throughput
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
If you are using NVIDIA B200 GPUs, please set
EXAONE_ENABLE_SWA_KV=0and add the--disable-prefill-cuda-graphoption 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 as below:
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.
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
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
To achieve the expected performance, we recommend using the following configurations:
- We recommend using
temperature=1.0andtop_p=0.95for better output quality in most cases.- K-EXAONE 2.0 uses
enable_thinking=Trueby default. Thus, you need to setenable_thinking=Falseto use non-reasoning mode.- We recommend using
preserve_thinking=Truein 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.
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.
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.
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.
{
"$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.
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
- Downloads last month
- 12
