~/satyajit

Ling-3.0-flash: a 124B open MoE that runs like a 5B and reaches for 1M tokens

mdjsonmcp

2026-07-24 · 10 min · llm · mixture-of-experts · linear-attention · hybrid-attention · open-weights · explainer

Ling-3.0-flash, released 2026-07-23 by inclusionAI (Ant Group's Ling/Bailing MoE family), is a 124B-parameter open Mixture-of-Experts that activates only ~5.1B parameters per token — about 4%. It ships with a 256K native context that is designed to extend to 1M tokens, a hybrid-reasoning ("thinking") mode, and a claim that lands harder than the spec sheet: with roughly 1/8 the total and 1/12 the active parameters, it matches or beats inclusionAI's own 1T flagship on most of the benchmarks it was launched against.

The interesting part is not the sparsity ratio on its own — it's the attention stack that makes a cheap million-token context tractable. Ling-3.0-flash is built on hybrid linear attention: it interleaves KDA (Kimi Delta Attention) — a gated delta-rule linear-attention layer with constant-size memory — with Gated MLA full attention, at a 5:1 ratio, and feeds each block into a 512-expert MoE that fires just 8 experts plus 1 shared expert per token. This is a first-principles tour of each piece, why it matters, and where the launch numbers put it.

Ling-3.0-flash · architecture — hybrid KDA / Gated-MLA attention with a Ling-MoE FFN
Training ObjectiveNext-Token Prediction (NTP)+ Multi-Token Prediction (MTP)MTPheadLinear Output LayerFinal RMSNormRMSNormMoE+RMSNormGated MLA+RMSNormMoE+RMSNormKDA+RoPE×1×5×7groupsToken Embedding LayerTokenized TextVocabulary size 157k1M-token context(RoPE · exact recall)E512A8 + 1 shared expertALF-LB load balancingLinear time complexity(constant-size KDA state)First 2 blocks use denseFFN instead of MoEEmbedding dimension 2,560Multi-head Latent Attentionσ: sigmoid gateOutput ProjectionMLARoPELinearRMSNormLinearRoPELinearRMSNormLinearLinearQKVLinearσKDA (Kimi Delta Attention)σ: sigmoid gate φ: softplus gate δ: swish funcOutput ProjectionRMSNormKimi Delta AttentionL2 NormδConvLinearL2 NormδConvLinearδConvLinearφLinearσLinearQKVαβMLPσ

Read the center stack bottom‑to‑top. Each group is KDA+MoE blocks (linear‑time memory) then Gated MLA+MoE (full attention with RoPE for exact recall), repeated ×7. The right panels expand the two attention modules: Gated MLA (latent Q/K/V projections, RoPE, a sigmoid output gate) and KDA (a gated delta‑rule linear attention with per‑channel decay). A recreation of the launch architecture figure in the house paper‑figure style.

Read the center stack bottom-to-top: tokens are embedded, pass through 7 groups of blocks — each group is (KDA + MoE) followed by (Gated MLA + MoE) — then a final norm, a 157k-vocab output projection, and a multi-token-prediction head. The two right-hand panels expand the attention modules. Take the ideas one at a time.

KDA: constant-size memory over a very long context

Ordinary softmax attention keeps a KV cache that grows by one entry per token. At a 256K–1M context that cache is the cost: decoding becomes memory-bound on a cache that scales with sequence length, and it only gets heavier as the context fills.

KDA avoids that. It is a gated delta-rule linear attention: instead of a growing cache it keeps a fixed-size recurrent state StS_t that each token updates in place — it erases a little of the old state (a per-channel gated decay) and writes the new key/value association (the delta rule). A compact way to write the family is

St=Diag(αt)St1+βtktvt,ot=StqtS_t = \mathrm{Diag}(\alpha_t)\, S_{t-1} + \beta_t\, k_t v_t^{\top}, \qquad o_t = S_t\, q_t

where αt\alpha_t is the gated decay (the erase), βtktvt\beta_t\, k_t v_t^{\top} is the written delta, and oto_t reads the state with the query. The state StS_t is a fixed d×dd \times d matrix — its size does not depend on how many tokens came before. That is exactly the structure the right-hand KDA panel draws: queries and keys go through a short conv and an L2 norm, values through a conv, and learned α\alpha/β\beta gates (softplus φ\varphi and sigmoid σ\sigma) control the decay and write, with a final sigmoid output gate.

Because the state is constant-size, KDA runs in linear time and constant memory in the sequence length — so five of every six layers pay no growing-cache cost at all. Only the single Gated-MLA layer per group keeps a real KV cache, so the model's total long-context memory grows at roughly 1/6 the slope of an all-attention model. Drag the context length and watch the gap open up:

090180270360KV memory (GB, illustrative)0256K512K768K1.00Mcontext length (tokens)full attentionLing hybrid(KDA:MLA 5:1)
context: 635K tokensfull-attn KV: 208 GBLing hybrid: 38 GB5.5× smaller

This is the lever behind "1M-token context" being a design target rather than a marketing number. It is not free — a linear-attention state is a lossy summary, not a perfect record — which is exactly why Ling keeps full attention in the mix.

Gated MLA: one full-attention layer per group for exact recall

Every group's sixth block is a Gated MLA layer — Multi-head Latent Attention with RoPE and a learned sigmoid gate. MLA compresses keys and values into a low-rank latent before attending, which shrinks the KV cache of the full-attention layers themselves; RoPE gives the positional structure that makes long-range exact recall work. The left panel's callout says it plainly: the 1M-token context rides on RoPE-equipped MLA, while KDA carries the linear time complexity.

The division of labour is the whole point. KDA is cheap but forgetful; full attention is exact but expensive. A 5:1 interleave keeps one exact-recall layer in every group so the lossy linear layers have something precise to anchor to — you get most of full attention's fidelity at a fraction of its memory. This is the same bet Moonshot made in Kimi K3, and the resemblance is not subtle (more on that below).

The MoE: 8 of 512, plus a shared expert, kept balanced

Ling-3.0-flash's feed-forward is a fine-grained MoE: 512 routed experts, of which only 8 fire per token — an activation ratio of 1/64 — plus 1 shared expert that runs on every token to carry the common, always-useful computation. That extreme sparsity is what lets a 124B model spend only ~5.1B parameters per token: the compute is that of a ~5B model while the knowledge capacity is that of a 124B one.

At 1/64 activation two problems that are mild in a denser MoE turn first-order. Routing has to be learned well or most of the capacity is wasted, and load balance matters even more — if a few experts hog the tokens, the rest never train and the effective model collapses to something far smaller than 124B. Ling's answer is ALF-LB (adaptive load balancing): rather than a single brittle auxiliary-loss coefficient, it adapts the balancing pressure per expert so utilisation stays even without destabilising training — the same spirit as K3's aux-loss-free balancing, aimed at keeping all 512 experts alive.

Two more structural details worth stating:

Rounding out the sheet: a 157k-token vocabulary, an embedding dimension of 2,560, and the 7-group hybrid stack above.

The Kimi K3 resemblance

If this all sounds familiar, it should. Kimi K3 is built on the same three bets — KDA for constant-size long-context memory, full attention interleaved for exact recall, and an extreme-but-stable sparse MoE with a balancing scheme that avoids a brittle aux-loss knob. Ling-3.0-flash runs the same playbook at a very different scale: 124B/5.1B for a fast production model versus K3's 2.8T/~50B frontier system, and 8-of-512 routing versus K3's 16-of-896. The convergence is the story — two independent open labs arriving at the same architecture for efficient long-context reasoning strongly suggests this hybrid-linear + sparse-MoE recipe is where open models are settling.

The benchmarks

On its launch suite, inclusionAI compares the Ling-3.0-flash(RC3)-Thinking build against a field of thinking models: its own 1T Ring-2.6-1T, MiniMax-M2.7, Step-3.7-Flash-high, Deepseek-v4-flash-max, Nemotron-3-Super-120B, GPT-5.4-mini-high, and Claude-Sonnet-4.6-maxthink. The full grid:

A 12-panel grouped bar chart of Ling-3.0-flash(RC3)-Thinking against Ring-2.6-1T-expert, MiniMax-M2.7, Step-3.7-Flash-high, Deepseek-v4-flash-max, Nemotron-3-Super-120B, GPT-5.4-mini-high and Claude-Sonnet-4.6-maxthink across SWE-Bench Pro, SWE-Bench Multilingual, Terminal-Bench v2.1-AA, Tau3-banking-AA, MCP-Atlas, SkillsBench, WideSearch, BrowseComp, IFBench, SysBench, MRCR-128k and Multi-IF. Ling-3.0-flash is highlighted in blue and leads or ties on most agentic panels.
Ling-3.0-flash(RC3)-Thinking vs a field of thinking models across coding, agentic, long-context and instruction-following benchmarks (inclusionAI, launch report).

The headline result is coding. On SWE-Bench Pro the 124B model edges the entire field — including the 1T sibling and every frontier opponent it was tested against:

SWE-Bench Pro (%)
Ling-3.0-flash
56.63
Step-3.7-Flash
56.3
MiniMax-M2.7
56.2
Ring-2.6-1T
53.9
Deepseek-v4
52.6
Claude-Sonnet-4.6
48.29
GPT-5.4-mini
47.88
Nemotron-3-120B
34.06
0204060

Long-context and instruction-following are where the hybrid stack should pay off, and it does. On MRCR-128k it sits second, just behind Claude and comfortably ahead of the 1T Ring and everything else — while GPT-5.4-mini, MiniMax and Step fall off a cliff:

MRCR-128k — long context (%)
Claude-Sonnet-4.6
92.46
Ling-3.0-flash
90.78
Ring-2.6-1T
90.06
Deepseek-v4
88.5
GPT-5.4-mini
56.09
Nemotron-3-120B
40.76
Step-3.7-Flash
39.19
MiniMax-M2.7
27.68
050100

On SysBench (system-prompt adherence) it's in a three-way near-tie at the top with Claude and Deepseek:

SysBench (%)
Claude-Sonnet-4.6
94.85
Deepseek-v4
93.86
Ling-3.0-flash
93.63
GPT-5.4-mini
93.31
Step-3.7-Flash
91.38
Nemotron-3-120B
90.73
Ring-2.6-1T
86.47
MiniMax-M2.7
86.19
050100

It is not a clean sweep. On Terminal-Bench v2.1-AA — long-horizon, tool-heavy agent work — Claude-Sonnet-4.6 is well clear and Deepseek leads the open pack; Ling lands mid-field, ahead of its own 1T sibling but not the frontier:

Terminal-Bench v2.1-AA (%)
Claude-Sonnet-4.6
71.2
Deepseek-v4
62
Ling-3.0-flash
57
GPT-5.4-mini
55.81
MiniMax-M2.7
55
Ring-2.6-1T
43.1
Step-3.7-Flash
39.3
Nemotron-3-120B
39
020406080

The pattern is consistent with the architecture: Ling is strongest where structured recall and instruction adherence dominate (SWE-Bench Pro, MRCR-128k, SysBench, IFBench), and merely competitive on the longest-horizon agent loops where a top proprietary model still pulls ahead. For a 124B model activating ~5.1B parameters, being in that conversation — and beating a 1T model at 1/12 the active compute — is the result.

The take

Strip away the "beats a 1T model" headline and what's genuinely useful about Ling-3.0-flash is a coherent, reproducible recipe: KDA buys a linear-time, constant-memory path to very long context; a 1-in-6 Gated MLA layer buys back the exact recall linear attention loses; an 8-of-512 + shared-expert MoE with ALF-LB buys 124B of capacity at ~5B of active compute and keeps all the experts trained; and MTP plus dense early blocks make the whole thing converge and decode fast. That it is essentially the Kimi K3 architecture at 1/22 the size is the most telling part — the frontier recipe for efficient long-context reasoning is now open, and it runs on a single node.


Sources: the Ling-3.0-flash model card and inclusionAI's launch materials (architecture, hybrid KDA/MLA interleave, MoE configuration, benchmarks), the Kilo announcement (124B/5.1B, 256K→1M context), and inclusionAI's launch benchmark chart (reproduced above). Benchmark numbers are quoted from inclusionAI's own report for the RC3-Thinking build. The architecture diagram is a house-style recreation of the launch figure; the KV-vs-state chart is illustrative (order-of-magnitude, to show the shape).

Cite this article

For attribution, please use the following reference or BibTeX:

Satyajit Ghana, "Ling-3.0-flash: a 124B open MoE that runs like a 5B and reaches for 1M tokens", ai.thesatyajit.com, July 2026.

bibtex
@misc{ghana2026ling30flash,
  author = {Satyajit Ghana},
  title  = {Ling-3.0-flash: a 124B open MoE that runs like a 5B and reaches for 1M tokens},
  url    = {https://ai.thesatyajit.com/articles/ling-3-0-flash},
  year   = {2026}
}
share