HuggingFace镜像/Ling-3.0-tiny
模型介绍
文件和版本
分析

🤗 Hugging Face   |   🤖 ModelScope    |   🐙 OpenRouter   

简介

我们推出了Ling-3.0-tiny,这是一款轻量级混合推理MoE模型,总参数为79亿,每token仅激活13亿参数。 该模型旨在以低推理成本提供强大的推理和智能体能力,让高级模型功能在本地和资源受限的部署环境中更易获取。我们提供了BF16、FP8和INT4权重,以适应各种硬件和部署场景。

模型的主要亮点总结如下:

  • 高效混合线性架构:Ling-3.0-tiny采用3:1交替堆叠的KDA和MLA(每4层模块包含3层Kimi Delta Attention层和1层多头潜在注意力层),并配备包含128个路由专家的稀疏MoE FFN。每个token仅激活8个路由专家和1个共享专家,使模型能够在长上下文建模能力、参数效率和计算成本之间取得平衡。
  • 原生混合推理与智能体能力:Ling-3.0-tiny支持快速响应和多步推理,可通过enable_thinking按请求配置思考模式。在通用智能体任务、代码生成、数学与科学推理以及指令遵循方面均表现均衡。
  • 本地与边缘部署:Ling-3.0-tiny专为高效本地部署设计,已在NVIDIA DGX Spark、Apple Silicon MacBook和Mac mini上通过验证,无需数据中心级GPU即可运行高性能的推理和智能体任务。使用FP8时,Ling-3.0-tiny在DGX Spark上可达到约100-105 tokens/s,在M4 Pro MacBook上可达86-90 tokens/s,在8K上下文长度下的峰值内存使用量约为8.34 GiB。

模型概述

Ling-3.0-tiny 继承了 Ling-3.0 系列的混合线性注意力架构,同时针对轻量化和便捷部署进行了专门优化。该模型总参数为 79 亿,每个 token 仅激活 13 亿参数。

Ling-3.0-tiny 的架构旨在让计算效率服务于实际的智能体性能。

  • 采用 3:1 的 KDA–MLA 架构(每 4 层模块包含 3 个 KDA 层和 1 个 MLA 层),可提供更高效的长上下文处理能力;
  • 具有 128 个专家的稀疏 MoE FFN,每个 token 激活 8 个路由专家和 1 个共享专家,仅需每个 token 激活 13 亿参数即可实现广泛的模型能力。
  • 原生混合推理支持单一模型内对常规任务快速响应,对复杂任务进行多步骤推理。

总体而言,这些设计提供了在实际智能体工作流中部署轻量级模型所需的推理效率。

评估

我们在智能体任务、代码生成、长上下文理解、知识可靠性、数学与科学推理以及指令遵循等方面对 Ling-3.0-tiny 进行了评估。 Ling-3.0-tiny 在 Artificial Analysis Intelligence Index v4.1.1 中得分为 25,在 Artificial Analysis Agentic Index 中得分为 16。 在 Artificial Analysis 测试中,Ling-3.0-tiny 的输出速度超过 160 tokens/s,生成 500 词的响应(含推理时间)端到端延迟约为 18 秒。 这些结果凸显了该模型在仅激活 13 亿参数情况下的高效性。

下表展示了 Ling-3.0-tiny 的代表性基准测试结果:

image

  • 默认启用思考模式。Ling-3.0-tiny 推荐的采样参数为 temperature=1.0、top_p=0.95 和 top_k=20。
  • Terminal-Bench 2.1:在 Artificial Analysis (AA) 协议下,使用默认的 Terminus 2 测试框架、统一的 2 小时超时、preserve-thinking 模式下提供的 JSON 解析器以及每个任务 3 次运行(取平均值)进行评估。解码使用 temperature=1.0,max_new_tokens=32K,上下文窗口为 256K。

快速入门

SGLang

针对特定硬件和运行方式的启动矩阵(BF16/FP8 × 低延迟/高吞吐量/HiCache + Mooncake),包含实时命令生成器和经过验证的配置,可在 SGLang 手册中获取:

手册: https://docs.sglang.io/cookbook/autoregressive/InclusionAI/Ling-3.0-tiny

安装 SGLang

使用跟踪 Ling-3.0 运行时的预构建镜像:

docker pull lmsysorg/sglang:dev-Ling-3.0-tiny

运行推理

在 1×141GB 级 GPU(H20-3e)或单 GPU Blackwell 节点上,推荐使用低延迟方案(内置 MTP / NEXTN,256K YaRN 上下文):

服务端

docker run --rm --gpus all --ipc=host --shm-size 32g \
  -p 30000:30000 \
  -e HF_TOKEN=<your-hf-token> \
  lmsysorg/sglang:dev-Ling-3.0-tiny \
  env SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1 \
  python3 -m sglang.launch_server \
    --model-path inclusionAI/Ling-3.0-tiny \
    --tp 1 \
    --json-model-override-args '{"rope_scaling":{"rope_type":"yarn","factor":2.0,"rope_theta":6000000,"partial_rotary_factor":0.5,"original_max_position_embeddings":131072}}' \
    --context-length 262144 \
    --speculative-algorithm NEXTN \
    --mem-fraction-static 0.8 \
    --host 0.0.0.0 \
    --port 30000

客户端

聊天模板和 ling3 推理解析器默认启用思维功能。可在每个请求中通过 "chat_template_kwargs": {"enable_thinking": false} 禁用该功能。我们建议使用的采样参数为 temperature=1.0、top_p=0.95 和 top_k=20。

curl -s http://localhost:30000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model": "auto",
       "messages": [{"role": "user", "content": "What is the capital of France?"}],
       "stream": true,
       "temperature": 1.0,
       "top_k": 20,
       "top_p": 0.95
     }'

对于 --reasoning-parser ling3 / --tool-call-parser ling3、HiCache + Mooncake L3 配置以及 GSM8K / bench_serving 复现命令,请参见上文链接的使用指南页面。

vLLM

安装支持 Ling-3.0 的 vLLM

pip install uv

uv venv ~/my_ling_env

source ~/my_ling_env/bin/activate

git clone -b ling_3_0 https://github.com/inclusionAI/vllm-ling-v3.git

cd vllm-ling-v3

VLLM_USE_PRECOMPILED=1 uv pip install --editable . --torch-backend=auto

运行推理

以下是使用单 GPU 运行 Ling-3.0-tiny 的示例,其中服务器端口为 ${PORT}:

服务器

vllm serve "$MODEL_PATH" \
    --port "$PORT" \
    --trust-remote-code \
    --served-model-name auto \
    --tensor-parallel-size 1 \
    --gpu-memory-utilization 0.85 \
    --enable-prefix-caching \
    --mamba-cache-mode align \
    --enable-auto-tool-choice \
    --tool-call-parser ling3 \
    --reasoning-parser ling3

客户端

为获得更佳性能,建议将 enable_thinking=true 与 temperature=1.0、top_p=0.95 和 top_k=20 配合设置。

curl -s http://${MASTER_IP}:${PORT}/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model": "auto",
       "messages": [{"role": "user", "content": "What is the capital of France?"}],
       "chat_template_kwargs": {"enable_thinking": true},
       "stream": true,
       "temperature": 1.0, 
       "top_k": 20,
       "top_p": 0.95
     }'

Ollama

  • 此配置已在配备 48 GB 统一内存的 M4 Pro Mac 上验证通过。

准备与构建

git clone https://github.com/ollama/ollama.git
cd ollama
git fetch origin refs/pull/17643/head:bailing-moe-v3
git switch bailing-moe-v3

cmake -B build .
cmake --build build --parallel 8
  • 目前由 ollama/ollama#17643 提供支持,且仅限在 Apple Silicon 上通过 MLX 运行。
  • 使用本节中从源代码构建的本地 ./ollama 可执行文件。此功能尚未包含在官方 Ollama 版本中。

导入模型

将 /absolute/path/to/bf16_weights 替换为 BF16 模型权重目录的绝对路径。导入的模型将命名为 ling-tiny-bf16:

printf 'FROM /absolute/path/to/bf16_weights\n' > /tmp/Modelfile.ling
./ollama create ling-tiny-bf16 --experimental -f /tmp/Modelfile.ling

启动服务

将默认上下文长度设置为 8192,然后启动 Ollama 服务:

# The service listens on http://127.0.0.1:11434 by default
OLLAMA_CONTEXT_LENGTH=8192 ./ollama serve

调用 API

curl -sS http://127.0.0.1:11434/api/generate -d '{
  "model": "ling-tiny-bf16",
  "prompt": "<role>SYSTEM</role>detailed thinking on<|role_end|><role>HUMAN</role>Calculate 17 × 23 and output only the number.<|role_end|><role>ASSISTANT</role>\n<think>",
  "raw": true,
  "think": true,
  "stream": false,
  "options": {
    "temperature": 1.0,
    "top_p": 0.95,
    "top_k": 20,
    "num_predict": 2048
  }
}' | jq -r .response