alt.freeweights.text / Ling-mini-2.0
From: inclusionAI <huggingface.co/inclusionAI>Newsgroups: alt.freeweights.textSubject:

Ling-mini-2.0

Date: 2026-11-15Commit: a810f64Signed: 2DC28CC7B26A283B ✓

Text generation model with 16.3B parameters. Safetensors weights, 32.5 GB in all. Published by inclusionAI under MIT.

16.3B params32.5GBLing-mini-2.0safetensorspermissive
FactsParams16.3BSize32.5 GBFormatssafetensorsTasktext generationLicenseMITFrom sourcepermissive
$ fw get inclusionAI/Ling-mini-2.0
# manifest sha256 c101a2bf0826… · 32.5 GB · 14 files
$ fw verify ./Ling-mini-2.0 inclusionAI/Ling-mini-2.0
From sourceHosted (signed)inclusionAI/Ling-mini-2.0Last check: 2026-11-15 02:51 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Fine-tune of Ling-mini-base-2.0.

Works with

Overview

Size
32.5 GB
Weights
32.5 GB (safetensors)
Parameters
16.3B
Formats
safetensors
Task
text generation
License
MIT (permissive)
Files
14, each with a sha256
Publisher
inclusionAI
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

Base model: inclusionAI/Ling-mini-base-2.0

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 02:51 UTCpassed

Model card

From the publisher at commit a810f64. Shown as plain text with links; images open at the publisher.

Image: image

πŸ€— Hugging Face&nbsp&nbsp | &nbsp&nbspπŸ€– ModelScope&nbsp&nbsp | &nbsp&nbspπŸ™ Experience Now

Introduction#

Today, we are excited to announce the open-sourcing of Ling 2.0 β€” a family of MoE-based large language models that combine SOTA performance with high efficiency. The first released version, Ling-mini-2.0, is compact yet powerful. It has 16B total parameters, but only 1.4B are activated per input token (non-embedding 789M). Trained on more than 20T tokens of high-quality data and enhanced through multi-stage supervised fine-tuning and reinforcement learning, Ling-mini-2.0 achieves remarkable improvements in complex reasoning and instruction following. With just 1.4B activated parameters, it still reaches the top-tier level of sub-10B dense LLMs and even matches or surpasses much larger MoE models.

Image: image

Strong General and Professional Reasoning#

We evaluated Ling-mini-2.0 on challenging general reasoning tasks in coding (LiveCodeBench, CodeForces) and mathematics (AIME 2025, HMMT 2025), as well as knowledge-intensive reasoning tasks across multiple domains (MMLU-Pro, Humanity's Last Exam). Compared with sub-10B dense models (e.g., Qwen3-4B-instruct-2507, Qwen3-8B-nothinking) and larger-scale MoE models (Ernie-4.5-21B-A3B-PT, GPT-OSS-20B/low), Ling-mini-2.0 demonstrated outstanding overall reasoning capabilities.

7Γ— Equivalent Dense Performance Leverage#

Guided by Ling Scaling Laws, Ling 2.0 adopts a 1/32 activation ratio MoE architecture, with empirically optimized design choices in expert granularity, shared expert ratio, attention ratio, aux-loss free + sigmoid routing strategy, MTP loss, QK-Norm, half RoPE, and more. This enables small-activation MoE models to achieve over 7Γ— equivalent dense performance. In other words, Ling-mini-2.0 with only 1.4B activated parameters (non-embedding 789M) can deliver performance equivalent to a 7–8B dense model.

High-speed Generation at 300+ token/s#

Image: image

The highly sparse small-activation MoE architecture also delivers significant training and inference efficiency. In simple QA scenarios (within 2000 tokens), Ling-mini-2.0 generates at 300+ token/s (on H20 deployment) β€” more than 2Γ— faster than an 8B dense model. Ling-mini-2.0 is able to handle 128K context length with YaRN, as sequence length increases, the relative speedup can reach over 7Γ—.

Image: image

Open-sourced FP8 Efficient Training Solution#

Ling 2.0 employs FP8 mixed-precision training throughout. Compared with BF16, experiments with over 1T training tokens show nearly identical loss curves and downstream benchmark performance. To support the community in efficient continued pretraining and fine-tuning under limited compute, we are also open-sourcing our FP8 training solution. Based on tile/blockwise FP8 scaling, it further introduces FP8 optimizer, FP8 on-demand transpose weight, and FP8 padding routing map for extreme memory optimization. On 8/16/32 80G GPUs, compared with LLaMA 3.1 8B and Qwen3 8B, Ling-mini-2.0 achieved 30–60% throughput gains with MTP enabled, and 90–120% throughput gains with MTP disabled.

A More Open Opensource Strategy#

We believe Ling-mini-2.0 is an ideal starting point for MoE research. For the first time at this scale, it integrates 1/32 sparsity, MTP layers, and FP8 training β€” achieving both strong effectiveness and efficient training/inference performance, making it a prime candidate for the small-size LLM segment. To further foster community research, in addition to releasing the post-trained version, we are also open-sourcing five pretraining checkpoints: the pre-finetuning Ling-mini-2.0-base, along with four base models trained on 5T, 10T, 15T, and 20T tokens, enabling deeper research and broader applications.

Model Downloads#

You can download the following table to see the various stage of Ling-mini-2.0 models(1.43B activated of 16.26B total params). If you are located in mainland China, we also provide the model on ModelScope.cn to speed up the download process.

ModelContext LengthDownload
Ling-mini-base-2.032K -> 128K (YaRN)πŸ€— HuggingFace

πŸ€– ModelScope | | Ling-mini-base-2.0-5T | 4K | πŸ€— HuggingFace πŸ€– ModelScope | | Ling-mini-base-2.0-10T | 4K | πŸ€— HuggingFace πŸ€– ModelScope | | Ling-mini-base-2.0-15T | 4K | πŸ€— HuggingFace πŸ€– ModelScope | | Ling-mini-base-2.0-20T | 4K | πŸ€— HuggingFace πŸ€– ModelScope | | Ling-mini-2.0 | 32K -> 128K (YaRN) | πŸ€— HuggingFace πŸ€– ModelScope |

Note: If you are interested in previous version, please visit the past model collections in Huggingface or ModelScope.

Quickstart#

πŸš€ Try Online#

You can experience Ling-mini-2.0 online at: ZenMux

πŸ”Œ API Usage#

You can also use Ling-mini-2.0 through API calls:

from openai import OpenAI

# 1. Initialize the OpenAI client
client = OpenAI(
    # 2. Point the base URL to the ZenMux endpoint
    base_url="https://zenmux.ai/api/v1",
    # 3. Replace with the API Key from your ZenMux user console
    api_key="<your ZENMUX_API_KEY>",
)

# 4. Make a request
completion = client.chat.completions.create(
    # 5. Specify the model to use in the format "provider/model-name"
    model="inclusionai/ling-mini-2.0",
    messages=[
        {
            "role": "user",
            "content": "What is the meaning of life?"
        }
    ]
)

print(completion.choices[0].message.content)
Convert to safetensors#

Models with safetensors format can be downloaded from HuggingFace or ModelScope. If you want to train your model and eval it, you can convert from dcp produced by training.

python tools/convert_dcp_to_safe_tensors.py --checkpoint-path ${DCP_PATH} --target-path ${SAFETENSORS_PATH}

Currently, BF16 and FP8 formats are supported, you can use convert parameter to handle it:

  • --force-bf16 for BF16 format.
  • --force-fp8 for FP8 format.
πŸ€— Hugging Face Transformers#

Here is a code snippet to show you how to use the chat model with transformers:

from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "inclusionAI/Ling-mini-2.0"
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    dtype="auto",
    device_map="auto",
    trust_remote_code=True,
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "Give me a short introduction to large language models."
messages = [
    {"role": "system", "content": "You are Ling, an assistant created by inclusionAI"},
    {"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt", return_token_type_ids=False).to(model.device)
generated_ids = model.generate(
    **model_inputs,
    max_new_tokens=512
)
generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
πŸ€– ModelScope#

If you're in mainland China, we strongly recommend you to use our model from πŸ€– ModelScope.

Deployment#

vLLM#

vLLM supports offline batched inference or launching an OpenAI-Compatible API Service for online inference.

Environment Preparation#

Since the Pull Request (PR) has not been submitted to the vLLM community at this stage, please prepare the environment by following the steps below:

git clone -b v0.10.0 https://github.com/vllm-project/vllm.git
cd vllm
wget https://raw.githubusercontent.com/inclusionAI/Ling-V2/refs/heads/main/inference/vllm/bailing_moe_v2.patch
git apply bailing_moe_v2.patch
pip install -e .
Offline Inference:#
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
tokenizer = AutoTokenizer.from_pretrained("inclusionAI/Ling-mini-2.0")
sampling_params = SamplingParams(temperature=0.7, top_p=0.8, repetition_penalty=1.05, max_tokens=16384)
llm = LLM(model="inclusionAI/Ling-mini-2.0", dtype='bfloat16')
prompt = "Give me a short introduction to large language models."
messages = [
    {"role": "system", "content": "You are Ling, an assistant created by inclusionAI"},
    {"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
outputs = llm.generate([text], sampling_params)
Online Inference:#
vllm serve inclusionAI/Ling-mini-2.0 \
              --tensor-parallel-size 2 \
              --pipeline-parallel-size 1 \
              --use-v2-block-manager \
              --gpu-memory-utilization 0.90

To handle long context in vLLM using YaRN, we need to follow these two steps:

  1. Add a rope_scaling field to the model's config.json file, for example:
{
  ...,
  "rope_scaling": {
    "factor": 4.0,
    "original_max_position_embeddings": 32768,
    "type": "yarn"
  }
}
  1. Use an additional parameter --max-model-len to specify the desired maximum context length when starting the vLLM service.

For detailed guidance, please refer to the vLLM instructions.

SGLang#
Environment Preparation#

We will later submit our model to SGLang official release, now we can prepare the environment following steps:

pip3 install sglang==0.5.2rc0 sgl-kernel==0.3.7.post1

You can use docker image as well:

docker pull lmsysorg/sglang:v0.5.2rc0-cu126

Then you should apply patch to sglang installation:

# patch command is needed, run `yum install -y patch` if needed
patch -d `python -c 'import sglang;import os; print(os.path.dirname(sglang.__file__))'` -p3 < inference/sglang/bailing_moe_v2.patch
Run Inference#

BF16 and FP8 models are supported by SGLang now, it depends on the dtype of the model in ${MODEL_PATH}. They both share the same command in the following:

  • Start server:
python -m sglang.launch_server \
    --model-path $MODLE_PATH \
    --host 0.0.0.0 --port $PORT \
    --trust-remote-code \
    --attention-backend fa3

MTP is supported for base model, and not yet for chat model. You can add parameter --speculative-algorithm NEXTN to start command.

  • Client:
curl -s http://localhost:${PORT}/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model": "auto", "messages": [{"role": "user", "content": "What is the capital of France?"}]}'
"""

More usage can be found here

Training#

We also provide a complete and efficient training framework that covers both pre-training and finetune. Based on this framework, continue training can be performed on the Ling-mini-2.0 checkpoint. With our training framework, the training throughput of the Ling-mini-2.0 model is significantly better than that of the existing Dense 8B model (Qwen3-8B, Llama3-8B).

Pre-training#

Pretraining demo to Continue pretraining Ling models.

Performance Benchmark#

The table below shows the pre-training performance of several models, measured in tokens per second on 8, 16, and 32 80G GPUs. Ling-mini-2.0 achieves significantly higher training efficiency compared to the baseline, making it easier and more cost-effective to continue pre-training with our demo scripts.

Model8 x 80G GPUs (GBS=128)16 x 80G GPUs (GBS=256)32 x 80G GPUs (GBS=512)
LLaMA 3.1 8B (baseline)81222161319321403
Qwen3 8B55775 (-31.33%)109799 (-31.94%)219943 (-31.57%)
Ling-mini-2.0109532 (+34.86%)221585 (+37.36%)448726 (+39.61%)
Ling-mini-2.0 w/o MTP128298 (+57.96%)307264 (+90.47%)611466 (+90.25%)
Finetuning#

We recommend you to use Llama-Factory to finetune Ling. In addition to that, you can also use Megatron for finetuning.

License#

This code repository is licensed under the MIT License.

Citation#

If you find our work helpful, feel free to give us a cite.

Training content summary#

The public training-content summary identifying Ling-mini-2.0 is available below. Please refer to the document for its covered model versions, training-content scope, summary version, and update date.

This summary concerns training-content disclosure; it does not replace the model’s technical documentation, usage terms, or license.

Image: --

Files

14 files Β· 32.5 GBWeights 32.5 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 14 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md16.1 KB5c430f11a2458a639ab73f7509cedf19e25bbc666fa535c32b090757bcbed8c5
config.json1.52 KB88388c4e5040292a19b40da6fa89a3d6a0bb6d6878f389b0bba55ac51c239aa3
configuration_bailing_moe_v2.py3.16 KB84828155191d3644b25f02ad35e0dc781454606b564ba89bb535968645dbc480
generation_config.json156 Badb7a0202c7ac95b2afac51b7f8f31a44ac91af4191d9f7b8187851b085aeec0
model-00001-of-00004.safetensors10.3 GB2ef7b31ba7b92722e5ec8f8a1f5098ed1b7fcfd0d7ad8eddaeb503c5ddfb6b5a
model-00002-of-00004.safetensors10.7 GBd6a59938d8f17f011c4cf826bdc0fdda3c21fddf94a3a93eb73a142d90c03da6
model-00003-of-00004.safetensors10.2 GB46130ade7c569b6a7c37da714904efcbfc429128923aabdf3ff7a9e6cc52b7c2
model-00004-of-00004.safetensors1.22 GB81ce93f54efc33cda0b740899a3a639c68d08af1e6b2eeb70cb5d82c37575f21
model.safetensors.index.json1.34 MB4b79b529c6009dfbf31c572b40fb1043b82e43e9efe29cd0eb47447c345d52af
modeling_bailing_moe_v2.py70.0 KB2f73b14e5f9f56c5e78df01813bddce43e856ffe4fdcfcd77ec0a3a2111cd1dd
special_tokens_map.json152 B483323261f732c497b5e0de4c29999f8b69e510c81aab6dc33c602355879a8b5
tokenizer.json7.66 MB13d53329ac899dab916222851f6dd388a2431d32293d6e04863917ceba1b107d
tokenizer_config.json4.59 KBd1822baf77d965ef18e8e5bb48d96e38d791ccf75d511c5460e3153be0eec993
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
a810f6416b pinned now2026-11-15 02:51 UTC14 files Β· 32.5 GB

Use it

$ fw get inclusionAI/Ling-mini-2.0
# manifest sha256 c101a2bf0826… · 32.5 GB · 14 files
$ fw verify ./Ling-mini-2.0 inclusionAI/Ling-mini-2.0
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/inclusionAI/Ling-mini-2.0.json --dir ./Ling-mini-2.0 $ python3 fw.py verify ./Ling-mini-2.0 ./inclusionAI__Ling-mini-2.0.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download inclusionAI/Ling-mini-2.0 --revision a810f6416bc4e1e29c9d7f271dd2fa7e56e71eab --local-dir ./Ling-mini-2.0
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForCausalLM, AutoTokenizer tok = AutoTokenizer.from_pretrained("inclusionAI/Ling-mini-2.0", revision="a810f6416bc4e1e29c9d7f271dd2fa7e56e71eab") model = AutoModelForCausalLM.from_pretrained("inclusionAI/Ling-mini-2.0", revision="a810f6416bc4e1e29c9d7f271dd2fa7e56e71eab", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve inclusionAI/Ling-mini-2.0 --revision a810f6416bc4e1e29c9d7f271dd2fa7e56e71eab

License

Name
MIT License
Id
MIT
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
5c430f11a2458a639ab73f7509cedf19e25bbc666fa535c32b090757bcbed8c5
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: inclusionAI <huggingface.co/inclusionAI>Newsgroups: alt.freeweights.textSubject: Ling-mini-2.0Date: 2026-11-15Commit: a810f64Signed: 2DC28CC7B26A283B ✓
Upstream
inclusionAI/Ling-mini-2.0
Pinned commit
a810f6416bc4e1e29c9d7f271dd2fa7e56e71eab
Manifest
Ling-mini-2.0.json Β· .minisig
Manifest sha256
c101a2bf08267f064b3b62cc407b6c1057b1ebb39ac5f7cc763ee4458612119c
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 02:51 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/inclusionAI/Ling-mini-2.0.json $ curl -O https://freeweights.allternit.com/manifests/inclusionAI/Ling-mini-2.0.json.minisig $ minisign -Vm Ling-mini-2.0.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

inclusionAI/Ling-mini-base-2.0 Β· this model is a finetune of it

1 model in the catalog name this one as their parent.

Quantizations
1
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download inclusionAI/Ling-mini-2.0
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. Ling-mini-2.0.json. Provenance. Takedown history: none.

Variants

1 quantized or adapter build of Ling-mini-2.0. Each has its own license check and page.

From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B