--- 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




HuggingFace Blog Technical Report GitHub
## 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. ![](assets/main_figure.png) ## 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