ΒΆPaper Feed

Issue 34 Β· Project 04 HF model AI / ML trending #1 βœ“ read

Qwen/Qwen3.8-Flash-Next

image-text-to-text Β· transformers

TL;DR: Qwen3.8-Flash-Next is an open-weight, image/video-capable multimodal LLM that serves as a public preview of the Qwen4 architecture: 125B total parameters with only 6B activated, mixing Gated DeltaNet linear attention with block-sparse full attention, plus a 51B-parameter n-gram embedding table pitched as a cheap, offload-friendly axis for parameter scaling. It's worth your attention less for the scores (which are good) than as a concrete statement of where one frontier lab thinks efficient long-context architecture is going.

What's actually new here

Four things, per the card:

Hybrid attention with QSA. The layer stack is 48 layers arranged as 12 Γ— (3 Γ— (GatedDeltaNet β†’ MoE) β†’ 1 Γ— (QSA β†’ MoE)) β€” three linear-attention layers for every one "real" attention layer. The real attention is now Qwen Sparse Attention (QSA), which selects at the micro-block level rather than per-token, using a lightweight MQA indexer (4 query heads, 1 shared key head, dim 128) with a budget of 512 blocks / 2048 attended tokens. This is in the same family as DeepSeek's sparse-attention indexer, but with coarser block granularity, and the 3:1 ratio keeps the KV cache tiny (only 2 KV heads at dim 256 in the QSA layers).

N-gram embedding as a scaling axis. A 20M-entry bigram/trigram embedding table (51B params) injected at layer 2. The framing is the interesting part: embeddings are lookup-only, so this is parameter scaling that costs almost no FLOPs and β€” unlike MoE experts β€” can be offloaded to host memory with predictable access patterns. It's the "memory layers" idea taken seriously at scale in a production-track model.

Gated Residual. The residual stream is widened into 4 branches (bottleneck rank 320), with an element-wise data-dependent read gate and a per-branch scalar write gate. Claimed benefit: finer per-layer control over what flows through the residual without destabilizing deep training.

Training recipe. Muon + AdamW split by weight category, no batch-size warmup (start directly at target batch size, guided by refitted scaling laws), enabling larger learning rates and fewer optimizer steps.

One of 12 repeated groups (48 layers total) Gated DeltaNet β†’ MoE Γ— 3 (linear, O(1) state) QSA β†’ MoE Γ— 1 block-sparse attention budget 2048 tokens … Γ— 12 N-gram embedding @ layer 2 20M bi/trigrams Β· 51B params lookup-only β†’ offloadable MoE: 512 experts 10 routed + 1 shared active Gated residual 4 branches
Only 12 of 48 layers do (sparse) attention; the rest are linear recurrence. Total β‰ˆ180B params (125B core + 51B n-gram + 4B MTP), 6B active per token.

Evidence

All numbers are vendor-reported. The agentic results are the standout claim β€” a 6B-active model beating much larger dense/MoE baselines:

Agentic benchmarks (vendor-reported)score02040608062.555.856SWE-bench Pro55.727.641.3JobBench73.550.670.3Toolathlon Verified84.581AndroidWorldQwen3.8-Flash-Next (6B active)Qwen3.7-Plus (17B active)DeepSeek-V4-Flash (13B active)From the model card; DeepSeek not evaluated on AndroidWorld

Also strong on general reasoning (GPQA Diamond 91.7, LiveCodeBench v6 91.9) and vision (ERQA 72.3, RealWorldQA 88.5, LVBench 76.6). Grains of salt: several benchmarks are in-house (CoWorkBench, RecreationBench), some public benchmarks were "corrected" and baselines re-evaluated by Qwen themselves, and the headline claim β€” long-context latency reduction from QSA β€” has no numbers in the card at all. The architecture-ablation evidence presumably lives in the technical report.

What's there and what to expect

Weights in safetensors, config, and a thorough deployment guide (Transformers, vLLM, SGLang, TokenSpeed) are in the repo. No training data, and the license is "other" β€” check it before commercial use. This is explicitly an experimental preview; the production version (Qwen3.8-Flash) is API-only.

Practical notes: ~180B params total means multi-GPU or aggressive offload (the n-gram table is the natural offload target β€” that's the point). Native context is 262K, extended to 1M via static YaRN with documented rope_parameters overrides, with the usual caveat that static YaRN hurts short-context performance. Thinking mode is on by default with a reasoning_effort knob (low/medium/xhigh) and a preserve_thinking option that keeps reasoning traces across turns for agentic KV-cache reuse β€” a nice API-level detail worth stealing.

Try it

vllm serve Qwen/Qwen3.8-Flash-Next
pip install -U openai
export OPENAI_BASE_URL="http://localhost:8000/v1" OPENAI_API_KEY="EMPTY"
from openai import OpenAI
client = OpenAI()
r = client.chat.completions.create(
    model="Qwen/Qwen3.8-Flash-Next",
    messages=[{"role": "user", "content": "Write a Python function to merge two sorted linked lists."}],
    reasoning_effort="xhigh",
)
print(r.choices[0].message.content)

Model card: https://huggingface.co/Qwen/Qwen3.8-Flash-Next