Skip to main content

Deployment

For all methods and hardware platforms, see the official SGLang installation guide. The two paths below match the Python / Docker toggle in the command panel.
Qwen3.8-Flash-Next support is not in a tagged release yet, so build the model-support PR rather than installing from PyPI:
Command
Model support lands in #36497. Once it is in a release, uv pip install sglang is enough and this whole step goes away.
Then run the Python output of the command panel below in that environment.
Pick your hardware + quantization to generate the launch command.

Playground

The Playground is where you experiment with SGLang features beyond the verified matrix. The Deploy panel above only emits combinations the SGLang team has signed off on; the Playground lets you turn on additional knobs on top of whichever cell the Deploy panel is currently showing.

1. Model Introduction

Qwen3.8-Flash-Next is a multimodal Mixture-of-Experts model released as an early preview of the architecture Qwen4 is being built on — the same role Qwen3-Next played for Qwen3.5, whose hybrid Gated DeltaNet + Gated Attention design then carried through the Qwen3.5, Qwen3.6, Qwen3.7 and Qwen3.8 series. Qwen is publishing the architectural changes ahead of the full Qwen4 family so the community can evaluate them independently. It has 176B total parameters — 51B of which is an N-gram embedding table — and 6B active per token. Against Qwen3.7-Plus it cuts both training and inference cost substantially (training takes roughly 1/9 as much) while holding comparable overall quality. It takes text and images in, and the hosted production variant is served as qwen3.8-flash on QwenCloud. The upgrades span four axes:
  • Attention — GDN + QSA hybrid. Three of every four layers use Gated DeltaNet, which compresses history into a fixed-size recurrent state; the fourth is global attention running Qwen Sparse Attention (QSA). A lightweight indexer aggregates the sequence into micro-blocks, scores importance at block level, and selects the relevant regions — so the indexing overhead shrinks along with the attention itself. Unlike approaches that reuse indices across layers, QSA compresses independently per layer, which suits an architecture that interleaves GDN and attention. Qwen measures up to 10.2× prefill and 6.6× decode speedups for the QSA attention kernel at 1M tokens.
  • Residual — Gated Residual (GR). The single residual stream widens into four parallel branches, with an element-wise dynamic gate controlling how much each layer reads from and writes back to each branch. Qwen reports one branch naturally becoming a long-range bus. The gate also suppresses activation outliers, and the residual state can be held in FP8.
  • Embedding — N-gram Embedding. Lookups keyed on the local context (current token plus a few preceding ones) rather than a single token, adding 51B parameters at almost no extra per-token compute. Because lookup addresses are known in advance, the table can live in host memory and be prefetched asynchronously alongside model compute. The final model uses a single such layer near the start of the network.
  • Optimization — Muon. Muon for the genuine 2-D linear maps (attention, GDN and MoE expert weights), AdamW for embeddings, the MoE router and GR’s low-rank parameters, with fused QKV / SwiGLU / GDN projections split before orthogonalization. The scaling law was refit for the new architecture, and batch-size warmup was dropped — it cost 18.8% more optimizer steps without improving the result.
Carried over from Qwen3-Next and refined through the Qwen3.5–Qwen3.8 series: an ultra-sparse MoE (large expert pool, few routed experts per token plus one shared expert) with global load balancing; a multi-step-trained MTP module, whose own full-attention layers are QSA as well, which is what keeps speculative acceptance high in practice; and the training-stability set of zero-centered RMSNorm with weight decay on norm weights, attention output gating, and normalized MoE router initialization. Context length: 262,144 native, extensible to 1,000,000 tokens with YaRN. License: see the model card’s LICENSE. Recommended generation: Qwen has not published sampling recommendations for this preview. SGLang applies the checkpoint’s own generation_config.json, so leave temperature / top_p unset unless you have a measured reason not to. Each precision is its own repository:
PrecisionRepositoryWhere it runs
BF16Qwen/Qwen3.8-Flash-NextH200, B200, B300, GB300, MI350X, MI355X
FP8Qwen/Qwen3.8-Flash-Next-FP8H200, B200, B300, GB300, MI350X, MI355X
NVFP4RadixArk/Qwen3.8-Flash-Next-NVFP4B200, B300, GB300 (Blackwell only)
Resources: Qwen’s announcement.

2. Advanced Usage

The model argument in the examples below is the BF16 repo id. Every precision is a separate repo, so model has to be the checkpoint the server was actually launched with — …-Flash-Next-FP8 or …-Flash-Next-NVFP4. The Deploy panel’s cURL snippet always shows the right id for the cell you have selected.

2.1 Reasoning

Qwen3.8-Flash-Next always reasons — thinking cannot be turned off. --reasoning-parser auto (toggle Reasoning Parser in the Parsers card of the Playground above) lets SGLang pick the matching parser from the checkpoint’s chat template, and splits the thinking into reasoning_content, leaving content as the answer alone. The resolved name is logged at startup if you want to pin it explicitly later. Depth is requested with reasoning_effort. Qwen documents xhigh (the default), medium and low for the hosted model; SGLang forwards whatever you pass into the checkpoint’s chat template.
Example
Output

2.2 Tool Calling

Add --tool-call-parser auto (toggle Tool Call Parser in the Parsers card of the Playground above) to surface structured tool calls via message.tool_calls. As with the reasoning parser, SGLang resolves the concrete detector from the chat template at startup. No Deploy cell sets it, so this is an opt-in: add the flag to the generated command, or flip the chip in the Playground. Because this model always thinks, the final assistant turn can put text in reasoning_content rather than content — print both so a bare None doesn’t mislead you.
Example
Output