SparkLLM/Spark-X2.5-1.7B-INT8
模型介绍
文件和版本
Pull Requests
讨论
分析

Spark-X2.5

Slack Discord YouTube dev.to Bluesky X Zhihu WeChat

[!Note] 该仓库包含 Hugging Face Transformers 格式下后训练模型的模型权重与配置文件。

简介

我们正式发布 Spark-X2.5-4B 和 Spark-X2.5-1.7B,两款紧凑而通用的语言模型,旨在让强大的 AI 更加实用、高效且易于获取。它们在广泛的日常任务中均表现出强劲性能,包括对话、写作、翻译、推理、编程、工具调用以及智能体工作流,并在同等规模的开源模型中取得了领先结果。Spark-X2.5 将面向效率的架构与最高 1M token 的原生上下文窗口相结合,并支持 200 多种语言。

技术亮点:

  • 高效架构与原生 1M token 上下文:模型采用混合注意力架构,将一个全注意力层与三个滑动窗口注意力层相结合。该设计在原生支持最高 1M token 上下文窗口的同时,显著降低了长上下文模型通常带来的计算开销。
  • 强大的编程与智能体能力:模型与主流智能体框架深度集成,包括 Codex、Claude Code、OpenClaw 和 Hermes。在日常编程、智能体工作流、推理和指令跟随任务中,它们在同等规模模型中达到了最先进水平。
  • 广泛的硬件与软件兼容性:模型支持多种硬件平台,包括 NVIDIA、Huawei、Hygon、HOUMO.AI 等,并兼容 vLLM、SGLang、llama.cpp、MLX 等主流推理框架,可通过 Ollama 和 LM Studio 等平台快速部署。此外,模型还可使用 LLaMA-Factory 等主流微调框架进行定制。在多种硬件平台上,与同等规模模型相比,它们具有更优的 TTFT、TOPT 和整体推理效率。
  • 先进训练算法:模型在华为 Ascend 集群上训练。大规模强化学习与 MOPD 等后训练技术显著增强了其推理、编程、智能体以及指令跟随能力。

Spark-X2.5 基准对比

模型概览

对于智能体任务而言,如何在性能、推理速度和缓存占用之间取得平衡,始终是制约模型表现的关键瓶颈。Spark-X2.5 系统性地整合并优化了成熟的注意力技术,将滑动窗口注意力(SWA)与混合全注意力架构相结合。该方法充分发挥两种机制的优势,同时避免单一结构带来的局限,在性能、推理效率和 KV 缓存规模之间实现了有效平衡,从而提升模型在真实部署场景中的实用性与有效性。

Spark-X2.5 混合架构

训练方法

Spark-X2.5 在约 20 万亿个 token 的多样化语料上完成预训练,语料覆盖网页、书籍、学术论文、代码和百科资料等来源。训练过程特别关注数据质量、领域覆盖度,以及不同数据类别所分配的采样权重。通过大量数据配比实验,确定数学、逻辑、代码及其他高价值领域之间的有效平衡,使模型在习得广泛通用知识的同时,发展出更强的复杂推理与代码生成能力。长上下文能力通过专门的训练阶段培养,该阶段包含数千亿个 token,序列长度可扩展至 1M token。

后训练首先在对精选语料上进行监督微调。该阶段建立稳健的指令遵循、结构化生成和任务完成能力,同时为强化学习提供稳定的策略初始化。随后,我们在多个能力领域开展大规模强化学习,包括语言理解、推理、编程、工具增强型智能体行为和指令遵循。该过程生成一组面向特定领域的教师策略,并通过 MOPD 将其互补优势整合到单一可部署模型中。

Spark-X2.5 混合架构

评测基准

我们评测了模型,并与同规模领先的端侧模型在智能体、代码、数学、通用与知识等广泛任务中进行对比。

评测基准Spark‑X2.5‑4BSpark‑X2.5‑1.7BQwen3.5‑9BQwen3.5‑4BQwen3.5‑2BGemma4‑12BGemma4‑E4BGemma4‑E2B
智能体
BFCL‑V465.146.966.1*50.3*43.6*37.436.930.2
τ²‑bench75.165.379.1*79.9*48.8*69.0*42.2*24.5*
τ³‑bench30.420.19.36.74.113.310.18.8
MCP‑Atlas54.623.447.4*40.8*14.830.5*15.0*12.6
MCP‑Mark14.22.313.412.5––––
Workspace Bench31.218.925.521.37.7–––
VitaBench2.025.28.315.618.25.212.44.84.4
BrowseComp40.929.78.314.33.110.08.33.7
代码
SWE‑Bench Pro44.410.433.8*29.4*1.921.9*4.0*–
SWE‑Bench Verified41.628.353.1*38.8*6.844.2*14.0*–
SWE‑Bench Multilingual53.323.343.327.75.032.5*––
SciCode34.718.232.7*24.06.039.827.520.5
数学
Gaokao 2026133.4114.8135.5130.394.0130.6102.481.8
AIME 202690.769.488.283.030.882.1*42.5*37.5*
HMMT Feb 202681.248.470.869.721.565.634.220.5
IMO‑AnswerBench74.245.469.868.5–57.226.922.6
通用与知识
IFEval93.089.591.5*89.8*78.6*94.845.334.8
IFBench75.066.364.559.241.3*73.5*44.0*22.7
AA‑LCR56.324.363.0*57.0*25.6*55.3*34.718.3
HLE12.36.314.38.62.113.13.92.5
GPQA67.443.877.267.244.672.854.543.8
  • * 表示来自公开发布的模型卡 / 论文中报告的结果,- 表示分数尚未提供。
  • 所有评测均在思考模式下进行。Spark-X2.5 的推荐采样参数为 temperature=1.0、top_p=0.95、top_k=-1。
  • Gaokao 2026 由五套 2026 年中国高考试卷(全国卷 I、全国卷 II、北京卷、上海卷、天津卷)组成,每套满分 150 分。

快速开始

以下示例用于部署本地 Spark-X2.5-1.7B-INT8 检查点。在启动容器前,请将 MODEL_PATH 设置为其绝对路径:

export MODEL_PATH=/absolute/path/to/Spark-X2.5-1.7B

SGLang

安装 SGLang

请使用与 Spark-X2.5 运行时保持一致的预构建镜像:

NVIDIA GPU:
docker pull lmsysorg/sglang:nightly-dev-cu13-20260827-20621aa1
适用于昇腾 NPU:
# A3 daily build
export SGLANG_IMAGE=quay.io/ascend/sglang:main-cann9.0.0-a3

# A2 daily build (use this instead on A2 hardware)
export SGLANG_IMAGE=quay.io/ascend/sglang:main-cann9.0.0-910b

docker pull "$SGLANG_IMAGE"

运行推理

以下命令将启动一个兼容 OpenAI 的 API 服务器,并配置最大上下文长度为 1,048,576 个 token。该配置需要充足的设备内存;必要时请调低 --context-length。

服务器

NVIDIA GPU:
docker run --rm -it \
  --gpus '"device=0"' \
  --ipc=host \
  -p 30000:30000 \
  -v "$MODEL_PATH:/root/Spark-X2.5-1.7B:ro" \
  lmsysorg/sglang:nightly-dev-cu13-20260827-20621aa1 \
  python -m sglang.launch_server \
    --model-path /root/Spark-X2.5-1.7B \
    --served-model-name spark2.5 \
    --tool-call-parser spark25 \
    --reasoning-parser qwen3 \
    --tp-size 1 \
    --mem-fraction-static 0.8 \
    --context-length 1048576 \
    --chat-template /root/Spark-X2.5-1.7B/chat_template.jinja \
    --host 0.0.0.0 \
    --port 30000
昇腾 NPU:
docker run -it --rm -e ASCEND_USE_FIA=1 --network=host --ipc=host --shm-size=16g \
    --device=/dev/davinci0 --device=/dev/davinci1 --device=/dev/davinci2 --device=/dev/davinci3 \
    --device=/dev/davinci4 --device=/dev/davinci5 --device=/dev/davinci6 --device=/dev/davinci7 \
    --device=/dev/davinci8 --device=/dev/davinci9 --device=/dev/davinci10 --device=/dev/davinci11 \
    --device=/dev/davinci12 --device=/dev/davinci13 --device=/dev/davinci14 --device=/dev/davinci15 \
    --device=/dev/davinci_manager \
    --device=/dev/devmm_svm \
    --device=/dev/hisi_hdc \
    --volume /usr/local/sbin:/usr/local/sbin \
    --volume /usr/local/Ascend/driver:/usr/local/Ascend/driver \
    --volume /usr/local/Ascend/firmware:/usr/local/Ascend/firmware \
    --volume /etc/ascend_install.info:/etc/ascend_install.info \
    --volume /var/queue_schedule:/var/queue_schedule \
    --volume ~/.cache/:/root/.cache/ \
    --volume "$MODEL_PATH:/root/Spark-X2.5-1.7B:ro" \
    --entrypoint=python \
    "$SGLANG_IMAGE" \
    -m sglang.launch_server \
      --model-path /root/Spark-X2.5-1.7B \
      --served-model-name spark2.5 \
      --tool-call-parser spark25 \
      --reasoning-parser qwen3 \
      --tp-size 1 \
      --mem-fraction-static 0.8 \
      --context-length 1048576 \
      --chat-template /root/Spark-X2.5-1.7B/chat_template.jinja \
      --host 0.0.0.0 \
      --port 30000

客户端

聊天模板和 Qwen3 推理解析器默认均启用思考。如需针对特定请求禁用思考,请设置 "chat_template_kwargs": {"enable_thinking": false}。

curl -s http://localhost:30000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "spark2.5",
    "messages": [
      {
        "role": "user",
        "content": "What is the capital of Anhui Province?"
      }
    ],
    "max_tokens": 131072,
    "temperature": 1,
    "top_k": -1,
    "top_p": 0.95,
    "repetition_penalty": 1,
    "presence_penalty": 0,
    "frequency_penalty": 0
  }'

vLLM

部署 vLLM

vLLM 提供用于 NVIDIA GPU 部署的官方 Docker 镜像:

docker run --rm --gpus all \
  --ipc=host \
  -p 30000:30000 \
  -v "$MODEL_PATH:/models/Spark-X2.5-1.7B:ro" \
  vllm/vllm-openai:latest \
  --model /models/Spark-X2.5-1.7B \
  --port 30000 \
  --trust-remote-code \
  --served-model-name spark25 \
  --tensor-parallel-size 1 \
  --gpu-memory-utilization 0.7 \
  --enable-prefix-caching \
  --chat-template /models/Spark-X2.5-1.7B/chat_template.jinja

对于 Ascend NPU,请选择官方镜像,以最快完成配置。

Ascend A2:
export IMAGE=quay.io/ascend/vllm-ascend:nightly-main
docker pull "$IMAGE"

export DEVICE=/dev/davinci0
export MODEL_CACHE="${HOME}/.cache"

mkdir -p "$MODEL_CACHE"

docker run --rm \
    --name vllm-ascend \
    --shm-size=1g \
    --device "$DEVICE" \
    --device /dev/davinci_manager \
    --device /dev/devmm_svm \
    --device /dev/hisi_hdc \
    -v /usr/local/dcmi:/usr/local/dcmi \
    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
    -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
    -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
    -v /etc/ascend_install.info:/etc/ascend_install.info \
    -v "$MODEL_CACHE:/root/.cache" \
    -p 8000:8000 \
    -it "$IMAGE" bash
Ascend A3:
export IMAGE=quay.io/ascend/vllm-ascend:nightly-main-a3
docker pull "$IMAGE"

export DEVICE0=/dev/davinci0
export DEVICE1=/dev/davinci1
export MODEL_CACHE="${HOME}/.cache"

mkdir -p "$MODEL_CACHE"

docker run --rm \
    --name vllm-ascend \
    --shm-size=1g \
    --device "$DEVICE0" \
    --device "$DEVICE1" \
    --device /dev/davinci_manager \
    --device /dev/devmm_svm \
    --device /dev/hisi_hdc \
    -v /usr/local/dcmi:/usr/local/dcmi \
    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
    -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
    -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
    -v /etc/ascend_install.info:/etc/ascend_install.info \
    -v "$MODEL_CACHE:/root/.cache" \
    -p 8000:8000 \
    -it "$IMAGE" bash
Ascend 950DT:
export IMAGE=quay.io/ascend/vllm-ascend:nightly-main-a5
docker pull "$IMAGE"

export MODEL_CACHE="${HOME}/.cache"

mkdir -p "$MODEL_CACHE"

docker run --rm \
    --name vllm-ascend \
    --net=host \
    --shm-size=1g \
    --device /dev/davinci0 \
    --device /dev/davinci_manager \
    --device /dev/devmm_svm \
    --device /dev/hisi_hdc \
    -v /usr/local/dcmi:/usr/local/dcmi \
    -v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \
    -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
    -v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
    -v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
    -v /etc/ascend_install.info:/etc/ascend_install.info \
    -v "$MODEL_CACHE:/root/.cache" \
    -it "$IMAGE" bash

在容器内安装 Spark 插件:

pip install uv
uv venv ~/spark2_5
source ~/spark2_5/bin/activate
git clone https://github.com/XHToken/Spark-plugin.git
cd ./Spark-plugin
uv pip install .

服务器

vllm serve "/models/Spark-X2.5-1.7B" \
 --port "30000" \
 --trust-remote-code \
 --served-model-name spark25 \
 --tensor-parallel-size 1 \
 --gpu-memory-utilization 0.7 \
 --enable-prefix-caching \
 --chat-template /models/Spark-X2.5-1.7B/chat_template.jinja

客户端

curl -s http://127.0.0.1:30000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "spark25",
    "messages": [{"role": "user", "content": "What is the capital of Anhui Province?"}],
    "temperature": 1.0, 
    "top_k": -1,
    "top_p": 0.95
  }'

MLX

Spark-MLX-LLM 可在本地运行原始的 Spark-X2.5 Hugging Face 检查点。它支持 Apple silicon GPU、Linux CPU,以及 Linux 上的 NVIDIA CUDA,无需进行 GGUF 转换。

安装

git clone https://github.com/XHToken/Spark-MLX-LLM.git
cd Spark-MLX-LLM

python3 -m venv .venv
source .venv/bin/activate

# Apple silicon
python -m pip install -e .
# Linux CPU
python -m pip install -e '.[cpu]'
# Linux with CUDA 12
python -m pip install -e '.[cuda12]' 
# Linux with CUDA 13
python -m pip install -e '.[cuda13]'

运行推理

spark-mlx-generate \
  --device gpu \
  --dtype bfloat16 \
  --model XHToken/Spark-X2.5-1.7B \
  --prompt "What is the capital of Anhui Province?" \
  --max-tokens 512 \
  --temp 0

Ollama

构建

git clone https://github.com/XHToken/llama.cpp.git llama.cpp-spark
git clone https://github.com/ollama/ollama.git ollama-spark
cd ollama-spark
export OLLAMA_LLAMA_CPP_SOURCE="$(cd ../llama.cpp-spark && pwd)"
cmake -S . -B build
cmake --build build --parallel 8

创建并运行

创建模型定义,然后在一个终端中启动 Ollama 服务器:

printf 'FROM /absolute/path/to/your.gguf\n' > ./Modelfile.spark
./ollama serve

从另一个终端创建并运行模型:

./ollama create Spark-X2.5-1.7B -f ./Modelfile.spark
./ollama run Spark-X2.5-1.7B

LM Studio

构建

git clone https://github.com/XHToken/llama.cpp.git llama.cpp-spark
cd llama.cpp-spark
cmake -S . -B build
cmake --build build --parallel 8

配置 LM Studio

  1. 关闭 LM Studio。

  2. 备份所选运行时目录:

    <LM_STUDIO_HOME>/extensions/backends/<selected-runtime>/
  3. 将 llama.cpp-spark 的构建输出复制到所选运行时目录中,覆盖现有文件。

  4. 将 GGUF 模型放置到以下目录:

    <LM_STUDIO_HOME>/models/<org>/<name>/

macOS 上的运行时目录示例:

./build/bin/* -> ~/.lmstudio/extensions/backends/llama.cpp-mac-arm64-apple-metal-advsimd-<version>/

使用 LM Studio 运行

打开 My Models,选择 Spark-X2.5 模型,点击 Load,然后开始新的 Chat。

使用 lms CLI 运行

# Replace <model> with a model listed by lms ls.
lms load <model>
lms chat <model>

微调

我们推荐使用 Llama-Factory 对模型进行微调。

许可协议

Spark-X2.5 模型系列采用 Apache 2.0 License 授权。

引用

如果您认为我们的工作有帮助,欢迎引用。

@misc{sparkx2.5,
    title  = {Spark-X2.5 4B&1.7B: Pushing the Limits of Agentic Capabilities in On-Device Models},
    author = {SparkLLM Team},
    year   = {2026}
}