BuildIndependently confirmed2 publishers2 min readPublished
Qwen3 opens eight models with thinking and non-thinking modes, six dense ones under Apache 2.0
Qwen released eight open-weight Qwen3 models, two MoE and six dense, that each support thinking and non-thinking modes. On the model card, one chat-template argument, enable_thinking, picks the mode and defaults to True.
The Engineer · Build desk

Key figures: Qwen3-30B-A3B activates 3 billion of its 30 billion total parameters; Qwen3-235B-A22B activates about 9.4 percent of its parameters; Qwen says QwQ-32B has 10 times the activated parameters of Qwen3-30B-A3B.
| Figure | Value | Note | Claim |
|---|---|---|---|
| Qwen3-30B-A3B activated parameters, of 30 billion total | 3 billion | 2 | |
| Qwen3-235B-A22B, about | 9.4% activated | 16 | |
| Qwen: QwQ-32B vs 30B-A3B | 10 times activated | 17 |
What happened
- The two MoE models are Qwen3-235B-A22B, with 235 billion total and 22 billion activated parameters, and Qwen3-30B-A3B, with 30 billion total and 3 billion activated.
- The six dense models are Qwen3-32B, 14B, 8B, 4B, 1.7B and 0.6B, all released under the Apache 2.0 license.
- For an OpenAI-compatible endpoint, the model card calls for sglang 0.4.6.post1 or later, or vllm 0.8.5 or later.
- Qwen says its 30B-A3B beats QwQ-32B, a model with 10 times the activated parameters, and that the 4B can rival Qwen2.5-72B-Instruct.
Why it matters
- decision Chat-only routes need thinking turned off at whatever builds the prompt, because the card says an unset flag engages thinking mode.
- cost Every request left on the default path generates a reasoning trace before the answer. The Qwen pages publish no token counts for either mode, so the saving on the chat path has to be measured on your own prompts.
- constraint Teams pinned to older transformers, SGLang or vLLM releases have an upgrade to do before they can test the switch at all.
- capability One checkpoint per size can back both a reasoning route and a chat route, so a fleet holds one set of weights for each model it runs.
SGLang and vLLM expose the same enable_thinking flag in the APIs they create, and the card sends readers to Qwen's documentation for both [4][6]. That puts the decision wherever the prompt is built, so each route can set it. We think that is the right place for it: one loaded model, two behaviours, in any of the eight models [14].
Splitting the output is the client's job. The card's example finds the last occurrence of token 151668, which is </think>, and treats everything before it as thinking content [10]. When the token is missing, the example catches the ValueError and sets the split index to 0, so the whole output becomes the answer [10]. The same parsing code therefore tolerates output with no thinking block.
The same example sets max_new_tokens to 32768 [12]. That equals the 32,768 context length listed for the 0.6B [11][15]. The reasoning trace and the answer draw on one allowance. For endless repetition, the card's remedy is to set presence_penalty to 1.5 and to read the Best Practices section for the other sampling parameters [13].
Serving flags differ by framework. SGLang takes --reasoning-parser qwen3, while the vLLM command uses --enable-reasoning with --reasoning-parser deepseek_r1 [8]. The vLLM line for a Qwen model names a DeepSeek parser, so the two lines are not interchangeable. On the library side, transformers below 4.51.0 fails with KeyError: 'qwen3' [9].
The headline results are Qwen's, on Qwen's workload [17]. The two MoE models activate a small share of their weights: 3 of 30 billion is 10 percent, and 22 of 235 billion is about 9.4 percent [16]. For the 30B-A3B win over QwQ-32B to transfer, your prompts would have to resemble Qwen's evaluation tasks and run in the same mode with similar sampling settings. The same condition applies to the 4B against Qwen2.5-72B-Instruct.
Qwen also argues that putting both modes in one model gives stable, efficient control of the thinking budget, and says performance rises smoothly with the reasoning budget allocated [18]. That is a claim about a curve on Qwen's tasks. On the non-thinking side, Qwen describes "quick, near-instant responses" for simpler questions where speed matters more than depth [1].
What to watch
- Independent tokens-per-answer and latency measurements for each mode on SGLang and vLLM would settle what the cheap chat path actually saves.
- Third-party runs of Qwen's thinking-budget curve on workloads other than Qwen's own would show whether the smooth scaling holds outside its evaluation suite.
- Any change to the vLLM command on the model card away from the deepseek_r1 parser name would signal a dedicated qwen3 parser in vLLM.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence55
- Adoption
- Insufficient
- Hype gap+25
- Incentives60
- Confidence70
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
Qwen3 models support two modes: in thinking mode the model reasons step by step before the final answer; in non-thinking mode it provides 'quick, near-instant responses, suitable for simpler questions where speed is more important than depth'.
- [2]
Qwen is open-weighting two MoE models: Qwen3-235B-A22B with 235 billion total and 22 billion activated parameters, and Qwen3-30B-A3B with 30 billion total and 3 billion activated parameters.
- [3]
Six dense Qwen3 models are open-weighted under the Apache 2.0 license: Qwen3-32B, Qwen3-14B, Qwen3-8B, Qwen3-4B, Qwen3-1.7B and Qwen3-0.6B.
- [4]
On the model card, enable_thinking is an argument to tokenizer.apply_chat_template that switches between thinking and non-thinking modes; the default is True.
- [5]
By default Qwen3 has thinking capabilities enabled, similar to QwQ-32B; setting enable_thinking=True or leaving it at the default makes the model engage its thinking mode.
- [6]
The enable_thinking switch is also available in APIs created by SGLang and vLLM, and the card refers SGLang and vLLM users to Qwen's documentation.
- [7]
To create an OpenAI-compatible API endpoint, the card says to use sglang>=0.4.6.post1 or vllm>=0.8.5.
- [8]
The card's SGLang command uses --reasoning-parser qwen3; its vLLM command is 'vllm serve Qwen/Qwen3-0.6B --enable-reasoning --reasoning-parser deepseek_r1'.
- [9]
With transformers older than 4.51.0, loading Qwen3 raises KeyError: 'qwen3'.
- [10]
The card's example code looks for the last occurrence of token 151668 (</think>) in the output ids to split thinking content from final content; if the token is not found (ValueError) the index is set to 0.
- [11]
Qwen3-0.6B has a context length of 32,768.
- [12]
The card's generation example sets max_new_tokens=32768.
- [13]
If users encounter significant endless repetitions, the card says to refer to the Best Practices section for sampling parameters and to set presence_penalty to 1.5.
- [14]
Qwen3 has eight open-weight models in this release.
- [15]
The example's max_new_tokens equals the 0.6B model's full context length.
- [16]
Qwen3-30B-A3B activates 10 percent of its parameters and Qwen3-235B-A22B activates about 9.4 percent.
- [17]
Qwen says Qwen3-30B-A3B outcompetes QwQ-32B with 10 times of activated parameters, and that even a tiny model like Qwen3-4B can rival the performance of Qwen2.5-72B-Instruct.
- [18]
Qwen says that integrating the two modes greatly enhances the model's ability to implement stable and efficient thinking budget control, and that Qwen3 shows scalable and smooth performance improvements correlated with the reasoning budget allocated.
Sources
2 independent publishers whose own reporting we read for this story.
- huggingface.coYou can find the model on HF here →
1 article · October 11, 2026
- Qwen3: Think Deeper, Act Faster | Qwen
qwenlm.github.io
1 article · April 28, 2025
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.