Views
No views yet

| EXAONE 4.5 33B (Reasoning) | GPT-5 mini (Reasoning: high) | Qwen3-VL 32B Thinking | Qwen3-VL 235B Thinking | Qwen3.5 27B (Reasoning) | |
|---|---|---|---|---|---|
| Architecture | Dense | - | Dense | MoE | Dense |
| Total Params | 33B | - | 33B | 236B | 27B |
| Active Params | 33B | - | 33B | 22B | 27B |
| STEM / Puzzle | |||||
| MMMU | 78.7 | 79.0 | 78.1 | 80.6 | 82.3 |
| MMMU-Pro | 68.6 | 67.3 | 68.1 | 69.3 | 75.0 |
| MedXpertQA-MM | 42.1 | 34.4 | 41.6 | 47.6 | 62.4 |
| MathVision | 75.2 | 71.9 | 70.2 | 74.6 | 86.0 |
| MathVista (mini) | 85.0 | 79.1 | 85.9 | 85.8 | 87.8 |
| WeMath | 79.1 | 70.3 | 71.6 | 74.8 | 84.0 |
| LogicVista | 73.8 | 70.3 | 70.9 | 72.2 | 77.0 |
| BabyVision | 18.8 | 20.9 | 17.4 | 22.2 | 44.6 |
| Document Understanding | |||||
| AI2D | 89.0 | 88.2 | 88.9 | 89.2 | 92.9 |
| ChartQAPro | 62.2 | 60.9 | 61.4 | 61.2 | 66.8 |
| CharXiv (RQ) | 71.7 | 68.6 | 65.2 | 66.1 | 79.5 |
| OCRBench v2 | 63.2 | 55.8 | 68.4 | 66.8 | 67.3 |
| OmniDocBench v1.5 | 81.2 | 77.0 | 83.1 | 84.5 | 88.9 |
| General | |||||
| MMStar | 74.9 | 74.1 | 79.4 | 78.7 | 81.0 |
| BLINK | 68.8 | 67.7 | 68.5 | 67.1 | 71.6 |
| HallusionBench | 63.7 | 63.2 | 67.4 | 66.7 | 70.0 |
| Korean | |||||
| KMMMU | 42.7 | 42.6 | 37.8 | 42.1 | 51.7 |
| K-Viscuit | 80.1 | 78.5 | 78.5 | 83.9 | 84.0 |
| KRETA | 91.9 | 94.8 | 90.3 | 92.8 | 96.5 |
| EXAONE 4.5 33B (Reasoning) | GPT-5 mini (Reasoning: high) | K-EXAONE 236B (Reasoning) | Qwen3-VL 235B Thinking | Qwen3.5 27B (Reasoning) | |
|---|---|---|---|---|---|
| Architecture | Dense | - | MoE | MoE | Dense |
| Total Params | 33B | - | 236B | 236B | 27B |
| Active Params | 33B | - | 23B | 22B | 27B |
| Reasoning | |||||
| AIME 2025 | 92.9 | 91.1 | 92.8 | 89.7 | 93.5 |
| AIME 2026 | 92.6 | 92.4 | 92.2 | 89.4 | 90.8 |
| GPQA-Diamond | 80.5 | 82.3 | 79.1 | 77.1 | 85.5 |
| LiveCodeBench v6 | 81.4 | 78.1 | 80.7 | 70.1 | 80.7 |
| MMLU-Pro | 83.3 | 83.3 | 83.8 | 83.8 | 86.1 |
| Agentic Tool Use | |||||
| τ2-Bench (Retail) | 77.9 | 78.3 | 78.6 | 67.0 | 84.7 |
| τ2-Bench (Airline) | 56.5 | 60.0 | 60.4 | 62.0 | 67.5 |
| τ2-Bench (Telecom) | 73.0 | 74.1 | 73.5 | 44.7 | 99.3 |
| Instruction Following | |||||
| IFBench | 62.6 | 74.0 | 67.3 | 59.2 | 76.5 |
| IFEval | 89.6 | 92.8 | 89.7 | 88.2 | 95.0 |
| Long Context Understanding | |||||
| AA-LCR | 50.6 | 68.0 | 53.5 | 58.7 | 67.3 |
| Korean | |||||
| KMMLU-Pro | 67.6 | 72.5 | 67.3 | 71.1 | 73.0 |
| KoBALT | 52.1 | 63.6 | 61.8 | 51.1 | 54.9 |
pip install git+https://github.com/nuxlear/transformers.git@add-exaone4_51trtllm-serve LGAI-EXAONE/EXAONE-4.5-33B \
2 —tp_size 2 \
3 —port 8000 \
4 —reasoning_parser qwen3
51uv pip install git+https://github.com/lkm2835/vllm.git@add-exaone4_5
2uv pip install git+https://github.com/nuxlear/transformers.git@add-exaone4_51vllm serve LGAI-EXAONE/EXAONE-4.5-33B \
2 --served-model-name EXAONE-4.5-33B \
3 --port 8000 \
4 --tensor-parallel-size 2 \
5 --max-model-len 262144 \
6 --reasoning-parser qwen3 \
7 --enable-auto-tool-choice \
8 --tool-call-parser hermes \
9 --limit-mm-per-prompt '{"image": 64}' \
10 --speculative_config '{
11 "method": "mtp",
12 "num_speculative_tokens": 3
13 }'
141uv pip install git+https://github.com/lkm2835/sglang.git@add-exaone4_5
2uv pip install git+https://github.com/nuxlear/transformers.git@add-exaone4_51python -m sglang.launch_server \
2 --model-path LGAI-EXAONE/EXAONE-4.5-33B \
3 --served-model-name EXAONE-4.5-33B \
4 --port 8000 \
5 --tp-size 2 \
6 --mem-frac 0.81 \
7 --reasoning-parser qwen3 \
8 --tool-call-parser hermes \
9 --speculative-algorithm EAGLE \
10 --speculative-num-steps 3 \
11 --speculative-eagle-topk 1 \
12 --speculative-num-draft-tokens 4
13openai library on your environment.[!IMPORTANT] To achieve the expected performance, we recommend using the following configurations:
- We recommend to use
temperature=1.0,top_p=0.95,presence_penalty=1.5for general purpose.- We recommend to use
temperature=0.6,top_p=0.95,presence_penalty=1.5,top_k=20for OCR/document-related tasks, and Korean inputs.- We recommend to use
temperature=1.0,top_p=0.95for text-only inputs.- Different from EXAONE-4.0, EXAONE 4.5 uses
enable_thinking=Trueas default. Thus, you need to setenable_thinking=Falsewhen you want to use non-reasoning mode.- EXAONE 4.5 prefers using
\boxed{}format to answer the question. We recommend using this format with the corresponding format instruction for better parsing accuracy.
base_url and api_key for the OpenAI client.1from openai import OpenAI
2
3client = OpenAI(
4 base_url="http://localhost:8000/v1",
5 api_key="EMPTY",
6)
7
8messages = [
9 {
10 "role": "user",
11 "content": [
12 {
13 "type": "image_url",
14 "image_url": {
15 "url": "https://github.com/Aim-Highest/EXAONE-4.5/blob/main/assets/exaone45_input2.png?raw=true",
16 },
17 },
18 {
19 "type": "text",
20 "text": "How much larger is the model released in winter 2025 compared with the one released in summer 2024?",
21 },
22 ]
23 }
24]
25
26response = client.chat.completions.create(
27 model="EXAONE-4.5-33B",
28 messages=messages,
29 max_tokens=32768,
30 temperature=1.0,
31 top_p=0.95,
32 presence_penalty=1.5,
33 extra_body={
34 "chat_template_kwargs": {
35 "enable_thinking": True, # default: True
36 }
37 },
38)
39print(response)1from openai import OpenAI
2
3client = OpenAI(
4 base_url="http://localhost:8000/v1",
5 api_key="EMPTY",
6)
7
8messages = [
9 {
10 "role": "user",
11 "content": [
12 {
13 "type": "image_url",
14 "image_url": {
15 "url": "https://github.com/Aim-Highest/EXAONE-4.5/blob/main/assets/exaone45_input1.jpg?raw=true",
16 },
17 },
18 {
19 "type": "text",
20 "text": "What dish is the person preparing, and how is it made?",
21 },
22 ]
23 }
24]
25
26response = client.chat.completions.create(
27 model="EXAONE-4.5-33B",
28 messages=messages,
29 max_tokens=32768,
30 temperature=1.0,
31 top_p=0.95,
32 presence_penalty=1.5,
33 extra_body={
34 "chat_template_kwargs": {
35 "enable_thinking": False, # default: True
36 }
37 },
38)
39print(response)
401from openai import OpenAI
2
3client = OpenAI(
4 base_url="http://localhost:8000/v1",
5 api_key="EMPTY",
6)
7
8messages = [
9 {
10 "role": "user",
11 "content": "Explain how useful you are.",
12 }
13]
14
15response = client.chat.completions.create(
16 model="EXAONE-4.5-33B",
17 messages=messages,
18 max_tokens=32768,
19 temperature=1.0,
20 top_p=0.95,
21 extra_body={
22 "chat_template_kwargs": {
23 "enable_thinking": True, # default: True
24 }
25 },
26)
27print(response)
281# If needed:
2# pip install langchain langchain-openai langchain-mcp-adapters
3# curl -LsSf https://astral.sh/uv/install.sh | sh
4# sudo apt-get update && sudo apt-get install -y nodejs npm
5
6import os
7import asyncio
8from langchain_openai import ChatOpenAI
9from langchain.agents import create_agent
10from langchain_mcp_adapters.client import MultiServerMCPClient
11
12def print_message(msg):
13 parts = msg.content if isinstance(msg.content, list) else [{"type": "text", "text": msg.content or ""}]
14 text_out, reasoning_out = [], []
15
16 for p in parts:
17 if isinstance(p, dict):
18 if p.get("type") in ("text", "output_text") and p.get("text"):
19 text_out.append(p["text"])
20 elif p.get("type") in ("reasoning", "reasoning_text") and p.get("text"):
21 reasoning_out.append(p["text"])
22
23 if reasoning_out:
24 print("\n[assistant_reasoning_content]")
25 print("\n".join(reasoning_out))
26 if text_out:
27 print("\n[assistant_content]")
28 print("\n".join(text_out))
29
30async def main():
31 model = ChatOpenAI(
32 model="EXAONE-4.5-33B",
33 base_url="http://localhost:8000/v1",
34 api_key="EMPTY",
35 temperature=1.0,
36 model_kwargs={"top_p": 0.95},
37 )
38
39 client = MultiServerMCPClient({
40 "filesystem": {
41 "transport": "stdio",
42 "command": "npx",
43 "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
44 },
45 "fetch": {
46 "transport": "stdio",
47 "command": "uvx",
48 "args": ["mcp-server-fetch"],
49 },
50 "duckduckgo": {
51 "transport": "stdio",
52 "command": "uvx",
53 "args": ["duckduckgo-mcp-server"],
54 },
55 })
56
57 agent = create_agent(model, await client.get_tools())
58
59 inputs = {
60 "messages": [{
61 "role": "user",
62 "content": [
63 {
64 "type": "text",
65 "text": (
66 "Look at the image and identify the landmark. "
67 "Use the DuckDuckGo MCP tool to verify its name, height, and location. "
68 "Then use the fetch tool to read a fuller article page about it. "
69 "Create /tmp/mcp-demo and write a short markdown file to "
70 "/tmp/mcp-demo/landmark.md with: name, location, height, and a one-sentence summary of the article. "
71 "Finally, return only the exact file content."
72 ),
73 },
74 {
75 "type": "image_url",
76 "image_url": {
77 "url": "https://upload.wikimedia.org/wikipedia/commons/a/a8/Tour_Eiffel_Wikimedia_Commons.jpg"
78 },
79 },
80 ],
81 }]
82 }
83
84 async for step in agent.astream(inputs, stream_mode="values"):
85 msg = step["messages"][-1]
86 if getattr(msg, "type", "") == "ai":
87 print_message(msg)
88 for tc in getattr(msg, "tool_calls", []) or []:
89 print(f"\n[tool call] {tc['name']}({tc['args']})")
90
91if __name__ == "__main__":
92 asyncio.run(main())
93@article{exaone-4.5,
title={EXAONE 4.5 Technical Report},
author={{LG AI Research}},
journal={arXiv preprint arXiv:XXXX.XXXXX},
year={2026}
}