HuggingFace镜像/EXAONE-4.5-33B
模型介绍文件和版本分析
下载使用量0





HuggingFace Blog Technical Report GitHub



EXAONE 4.5

我们推出EXAONE 4.5,这是LG人工智能研究院开发的首款开源权重视觉语言模型。通过在现有EXAONE 4.0框架中集成专用视觉编码器,我们将模型的能力扩展到多模态领域。EXAONE 4.5的总参数量为330亿,其中视觉编码器占12亿参数。EXAONE 4.5在通用基准测试中表现出竞争力,同时在文档理解和韩语语境推理方面优于同等规模的最先进模型,继承了我们先前语言模型强大的语言能力。

更多详情,请参考技术报告、博客和GitHub。

模型配置

  • 模型类型:因果语言模型 + 视觉编码器
  • 参数数量(语言模型):317亿
  • 参数数量(视觉编码器):12.9亿
  • 隐藏层维度:5,120
  • 中间层大小:27,392
  • 层数:64个主层 + 1个MTP层
    • 混合注意力模式:16组×(3个滑动窗口注意力 + 1个全局注意力)
    • 重排序归一化:在注意力/MLP之后、残差连接之前应用归一化
  • 滑动窗口注意力
    • 注意力头数量:40个查询头(Q-heads)和8个键值头(KV-heads)
    • 头维度:查询头/键值头均为128
    • 滑动窗口大小:4096
  • 全局注意力
    • 注意力头数量:40个查询头(Q-heads)和8个键值头(KV-heads)
    • 头维度:查询头/键值头均为128
    • 不使用旋转位置嵌入(NoPE)
  • 视觉编码器
    • 分组查询注意力(GQA)
    • 用于视觉嵌入的2D RoPE
  • 词汇表大小:153,600
  • 上下文长度:262,144个token
  • 知识截止日期:2024年12月(2024/12)

评估结果

视觉-语言任务

EXAONE 4.5 33B (推理)GPT-5 mini (推理:高)Qwen3-VL 32B 思维链Qwen3-VL 235B 思维链Qwen3.5 27B (推理)
架构密集型-密集型混合专家密集型
总参数330亿-330亿2360亿270亿
激活参数330亿-330亿220亿270亿
STEM / 谜题
MMMU78.779.078.180.682.3
MMMU-Pro68.667.368.169.375.0
MedXpertQA-MM42.134.441.647.662.4
MathVision75.271.970.274.686.0
MathVista (mini)85.079.185.985.887.8
WeMath79.170.371.674.884.0
LogicVista73.870.370.972.277.0
BabyVision18.820.917.422.244.6
文档理解
AI2D89.088.288.989.292.9
ChartQAPro62.260.961.461.266.8
CharXiv (RQ)71.768.665.266.179.5
OCRBench v263.255.868.466.867.3
OmniDocBench v1.581.277.083.184.588.9
通用
MMStar74.974.179.478.781.0
BLINK68.867.768.567.171.6
HallusionBench63.763.267.466.770.0
韩语
KMMMU42.742.637.842.151.7
K-Viscuit80.178.578.583.984.0
KRETA91.994.890.392.896.5

纯语言任务

EXAONE 4.5 33B (推理)GPT-5 mini (推理:高)K-EXAONE 236B (推理)Qwen3-VL 235B 思维Qwen3.5 27B (推理)
架构密集型-MoEMoE密集型
总参数330亿-2360亿2360亿270亿
激活参数330亿-230亿220亿270亿
推理能力
AIME 202592.991.192.889.793.5
AIME 202692.692.492.289.490.8
GPQA-Diamond80.582.379.177.185.5
LiveCodeBench v681.478.180.770.180.7
MMLU-Pro83.383.383.883.886.1
智能体工具使用
τ2-Bench (零售)77.978.378.667.084.7
τ2-Bench (航空)56.560.060.462.067.5
τ2-Bench (电信)73.074.173.544.799.3
指令遵循
IFBench62.674.067.359.276.5
IFEval89.692.889.788.295.0
长上下文理解
AA-LCR50.668.053.558.767.3
韩语能力
KMMLU-Pro67.672.567.371.173.0
KoBALT52.163.661.851.154.9

快速入门

部署 EXAONE 4.5

为获得更优的推理速度和内存使用效率,建议使用经过优化的推理引擎来部署模型。EXAONE 4.5 模型支持多种框架,包括 TensorRT-LLM、vLLM、SGLang 和 llama.cpp。未来还将扩展更多支持。

实际上,您可以在单张 H200 GPU 上部署支持 256K 上下文长度的 EXAONE 4.5 模型,或者通过张量并行技术在4 张 A100-40GB GPU 上进行部署。

TensorRT-LLM

TensorRT-LLM 为 EXAONE 4.5 提供了即时支持。使用 EXAONE 4.5 模型需要我们 fork 的 Transformers 库。 您可以通过运行以下命令安装 Transformers:

pip install git+https://github.com/nuxlear/transformers.git@add-exaone4_5

请参考官方安装指南、EXAONE 文档和EXAONE 4.5 PR了解详细信息。

安装 TensorRT-LLM 后,您可以使用以下代码片段启动服务器。您可以从该片段中移除不必要的参数。

trtllm-serve LGAI-EXAONE/EXAONE-4.5-33B \
    —tp_size 2 \
    —port 8000 \
    —reasoning_parser qwen3

一个兼容 OpenAI 的 API 服务器将在 http://localhost:8000/v1 可用。

vLLM

要使用 EXAONE 4.5 模型,需要我们分支版本的 Transformers 和 vLLM。 您可以通过运行以下命令安装所需依赖:

uv pip install git+https://github.com/lkm2835/vllm.git@add-exaone4_5
uv pip install git+https://github.com/nuxlear/transformers.git@add-exaone4_5

安装 vLLM 后,您可以使用以下代码片段启动服务器。您可以从该片段中移除不必要的参数。

vllm serve LGAI-EXAONE/EXAONE-4.5-33B \
    --served-model-name EXAONE-4.5-33B \
    --port 8000 \
    --tensor-parallel-size 2 \
    --max-model-len 262144 \
    --reasoning-parser qwen3 \
    --enable-auto-tool-choice \
    --tool-call-parser hermes \
    --limit-mm-per-prompt '{"image": 64}' \
    --speculative_config '{
        "method": "mtp", 
        "num_speculative_tokens": 3
    }'

一个兼容 OpenAI 的 API 服务器将在 http://localhost:8000/v1 可用。

SGLang

要使用 EXAONE 4.5 模型,需要我们分支的 Transformers 和 SGLang。 您可以通过运行以下命令安装所需依赖:

uv pip install 'git+https://github.com/lkm2835/sglang.git@add-exaone4_5#subdirectory=python&egg=sglang[all]'
uv pip install git+https://github.com/nuxlear/transformers.git@add-exaone4_5

安装 SGLang 后,您可以使用以下代码片段启动服务器。您可以从该片段中移除不必要的参数。

python -m sglang.launch_server \
    --model-path LGAI-EXAONE/EXAONE-4.5-33B \
    --served-model-name EXAONE-4.5-33B \
    --port 8000 \
    --tp-size 2 \
    --mem-frac 0.81 \
    --reasoning-parser qwen3 \
    --tool-call-parser hermes \
    --speculative-algorithm EAGLE \
    --speculative-num-steps 3 \
    --speculative-eagle-topk 1 \
    --speculative-num-draft-tokens 4

一个兼容 OpenAI 的 API 服务器将在 http://localhost:8000/v1 可用。

使用 EXAONE 4.5

使用 EXAONE 4.5 启动兼容 OpenAI 的服务器后,尽管服务框架已更改,您仍可以通过 API 无缝使用该模型,只需集成少量代码即可。要使用 OpenAI Python SDK 及以下示例,您需要在环境中安装 openai 库。

[!IMPORTANT] 为达到预期性能,我们建议使用以下配置:

  • 对于通用目的,建议使用 temperature=1.0、top_p=0.95、presence_penalty=1.5。
  • 对于 OCR/文档相关任务以及韩语输入,建议使用 temperature=0.6、top_p=0.95、presence_penalty=1.5、top_k=20。
  • 对于纯文本输入,建议使用 temperature=1.0、top_p=0.95。
  • 与 EXAONE-4.0 不同,EXAONE 4.5 默认使用 enable_thinking=True。因此,当您希望使用非推理模式时,需要设置 enable_thinking=False。
  • EXAONE 4.5 倾向于使用 \boxed{} 格式来回答问题。为了获得更好的解析准确性,我们建议结合相应的格式指令使用此格式。

您可以使用 OpenAI Python SDK 轻松尝试模型的聊天补全功能。对于本地机器上的服务器,您需要为 OpenAI 客户端修改 base_url 和 api_key。

图文问答

推理模式

对于需要准确结果的任务,您可以按以下方式运行 EXAONE 4.5 模型的推理模式。

from openai import OpenAI

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

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://github.com/Aim-Highest/EXAONE-4.5/blob/main/assets/exaone45_input2.png?raw=true",
                },
            },
            {
                "type": "text",
                "text": "How much larger is the model released in winter 2025 compared with the one released in summer 2024?",
            },
        ]
    }
]

response = client.chat.completions.create(
    model="EXAONE-4.5-33B",
    messages=messages,
    max_tokens=32768,
    temperature=1.0,
    top_p=0.95,
    presence_penalty=1.5,
    extra_body={
        "chat_template_kwargs": {
            "enable_thinking": True,  # default: True
        }
    }, 
)
print(response)

非推理模式

对于延迟比准确性更重要的任务,您可以按以下方式以非推理模式运行 EXAONE 4.5 模型。

from openai import OpenAI

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

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://github.com/Aim-Highest/EXAONE-4.5/blob/main/assets/exaone45_input1.jpg?raw=true",
                },
            },
            {
                "type": "text",
                "text": "What dish is the person preparing, and how is it made?",
            },
        ]
    }
]

response = client.chat.completions.create(
    model="EXAONE-4.5-33B",
    messages=messages,
    max_tokens=32768,
    temperature=1.0,
    top_p=0.95,
    presence_penalty=1.5,
    extra_body={
        "chat_template_kwargs": {
            "enable_thinking": False,  # default: True
        }
    }, 
)
print(response)

纯文本问答

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="EXAONE-4.5-33B",
    messages=messages,
    max_tokens=32768,
    temperature=1.0,
    top_p=0.95,
    extra_body={
        "chat_template_kwargs": {
            "enable_thinking": True,  # default: True
        }
    }, 
)
print(response)

智能体应用

以下示例展示了EXAONE 4.5针对图文输入的智能体能力。您可以将自己的智能体、技能或其他工具与EXAONE 4.5模型配合使用。

# If needed:
# pip install langchain langchain-openai langchain-mcp-adapters
# curl -LsSf https://astral.sh/uv/install.sh | sh
# sudo apt-get update && sudo apt-get install -y nodejs npm

import os
import asyncio
from langchain_openai import ChatOpenAI
from langchain.agents import create_agent
from langchain_mcp_adapters.client import MultiServerMCPClient

def print_message(msg):
    parts = msg.content if isinstance(msg.content, list) else [{"type": "text", "text": msg.content or ""}]
    text_out, reasoning_out = [], []

    for p in parts:
        if isinstance(p, dict):
            if p.get("type") in ("text", "output_text") and p.get("text"):
                text_out.append(p["text"])
            elif p.get("type") in ("reasoning", "reasoning_text") and p.get("text"):
                reasoning_out.append(p["text"])

    if reasoning_out:
        print("\n[assistant_reasoning_content]")
        print("\n".join(reasoning_out))
    if text_out:
        print("\n[assistant_content]")
        print("\n".join(text_out))

async def main():
    model = ChatOpenAI(
        model="EXAONE-4.5-33B",
        base_url="http://localhost:8000/v1",
        api_key="EMPTY",
        temperature=1.0,
        model_kwargs={"top_p": 0.95},
    )

    client = MultiServerMCPClient({
        "filesystem": {
            "transport": "stdio",
            "command": "npx",
            "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
        },
        "fetch": {
            "transport": "stdio",
            "command": "uvx",
            "args": ["mcp-server-fetch"],
        },
        "duckduckgo": {
            "transport": "stdio",
            "command": "uvx",
            "args": ["duckduckgo-mcp-server"],
        },
    })

    agent = create_agent(model, await client.get_tools())

    inputs = {
        "messages": [{
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": (
                        "Look at the image and identify the landmark. "
                        "Use the DuckDuckGo MCP tool to verify its name, height, and location. "
                        "Then use the fetch tool to read a fuller article page about it. "
                        "Create /tmp/mcp-demo and write a short markdown file to "
                        "/tmp/mcp-demo/landmark.md with: name, location, height, and a one-sentence summary of the article. "
                        "Finally, return only the exact file content."
                    ),
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://upload.wikimedia.org/wikipedia/commons/a/a8/Tour_Eiffel_Wikimedia_Commons.jpg"
                    },
                },
            ],
        }]
    }

    async for step in agent.astream(inputs, stream_mode="values"):
        msg = step["messages"][-1]
        if getattr(msg, "type", "") == "ai":
            print_message(msg)
            for tc in getattr(msg, "tool_calls", []) or []:
                print(f"\n[tool call] {tc['name']}({tc['args']})")

if __name__ == "__main__":
    asyncio.run(main())

局限性

EXAONE 4.5 模型与所有现有多模态模型一样,存在一定的局限性,偶尔可能会生成不恰当的响应。多模态模型基于 token 的输出概率生成响应,这是在训练数据学习过程中确定的。尽管我们尽力从训练数据中排除个人信息、有害信息和有偏见的信息,但仍可能包含一些有问题的内容,从而可能导致不良响应。请注意,EXAONE 4.5 模型生成的文本并不反映 LG AI Research 的观点。

  • 可能会生成包含个人信息、有害信息或其他不恰当信息的不当回答。
  • 可能会生成与年龄、性别、种族等相关的有偏见的响应。
  • 生成的响应在很大程度上依赖于训练数据的统计信息,这可能导致生成语义或语法不正确的句子。
  • 由于模型未反映最新信息,响应可能是虚假的或相互矛盾的。

LG AI Research 致力于降低 EXAONE 4.5 模型可能带来的潜在风险。用户在使用 EXAONE 4.5 模型时,不得从事任何恶意活动(例如输入非法信息),以诱导生成违反 LG AI 道德原则的不当输出。

许可

本模型根据 EXAONE AI Model License Agreement 1.2 - NC 进行许可。

引用

@article{exaone-4.5,
  title={EXAONE 4.5 Technical Report},
  author={{LG AI Research}},
  journal={arXiv preprint arXiv:2604.08644},
  year={2026}
}

联系方式

LG AI Research 技术支持:contact_us@lgresearch.ai