Qwen3:通义千问新一代开源大模型,思考与非思考一键切换
📖 简介
📝 详细介绍
Qwen3:把“深度思考”变成运行时可选项
此前使用开源大模型时,你通常要在两类模型之间做痛苦二选一:需要严谨逻辑的任务用 reasoning model,但无论问“1+1”还是“这段代码哪里错了”,它都给你先输出一大段思维链;追求低延迟就只能用 non-reasoning model,但遇到复杂问题就明显力不从心。
Qwen3 用一套模型参数解决了这个取舍:同一份权重、同一个部署进程内,你可以按请求粒度决定是否开启深度思考。想快就快,想深就深,不需要部署两个服务。
GitHub 概览
下表数据为评测撰写时快照,仓库指标仍在增长。
| 项目 | QwenLM/Qwen3 |
|---|---|
| Stars | 约 40k |
| 语言 | Python / C / CUDA |
| 开源协议 | Apache-2.0 |
| 最近更新 | 2026 年 4 月 |
项目背景
Qwen3 由阿里的通义实验室(QwenLM)开源。它不仅是 Qwen2.5 的常规升级,而是对“推理到底该放在哪一层”的一次重新设计。
DeepSeek-R1 证明了 CoT 推理对复杂任务的巨大价值,但代价是延迟和计算成本双高。Qwen3 想做的是:默认回复快,把“推理”变成一种显式启用的能力。所有 Qwen3 模型在指令微调阶段就混合了 thinking 和 non-thinking 两种路径。模型学到的不只是一堆任务知识,还包括“何时需要先推理”这个元技能。
核心功能解析
1. 思考 / 非思考:一个参数切换
Qwen3 通过在 prompt 后附加特殊的思考结束标记来实现切换。用户不需要换模型,只需要控制是否让模型输出完整推理过程。使用官方 Hugging Face 集成,核心参数是 enable_thinking:
from transformers import Qwen3ForCausalLM, AutoTokenizer
model = Qwen3ForCausalLM.from_pretrained(
"Qwen/Qwen3-32B", device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-32B")
prompt = "设计一个支持断点续传的文件下载器"
messages = [{"role": "user", "content": prompt}]
text = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
inputs = tokenizer([text], return_tensors="pt").to(model.device)
# 打开思考模式
gen_ids = model.generate(**inputs, enable_thinking=True)
# 关闭思考模式
gen_ids = model.generate(**inputs, enable_thinking=False)
关闭 enable_thinking 后,模型不再生成 <think> 标记内的推理 token,而是像普通指令模型一样直接给出答案。这个决策可以在 API 层做成请求级开关,而不用部署两套模型。
2. 混合推理训练:不是“套壳” R1
Qwen3 训练数据里把任务分成三类:必须思考、禁止思考、可思考可不思考。模型在学习阶段就内化了分类能力,所以在关闭思考模式时不会因为推理链被截断而崩溃,其基础能力明显强于把 R1 的思考过程硬删掉的模型。
实际使用中,一个问题在思考连结束标记前,模型还支持输出 <tool_call> 结构化工具调用,这让 Qwen3 天然适合做 Agent 基座。
<think>用户需要下载工具,我计划先给出核心架构…</think>
<tool_call>{"name":"get_weather","arguments":{"city":"北京"}}</tool_call>
3. 模型谱系覆盖密集与 MoE
Qwen3 同时提供两个技术路线的权重:传统 Dense 模型(0.6B 到 32B),以及激活参数高效的 MoE 模型(如 30B-A3B)。其中 Qwen3-30B-A3B 总参数 30B,但每次推理只激活 3B,显存占用和单 token 生成成本都接近 3B 模型。这给开发者提供了“用消费级显卡跑出 30B 经验水平”的选择。
快速上手
如果已经有 24GB 以上显存,直接跑 8B 是一个不错的起点:
pip install -U transformers accelerate
python -c "
from transformers import AutoModelForCausalLM, AutoTokenizer
pipe = pipeline('text-generation', model='Qwen/Qwen3-8B',
max_new_tokens=2048)
print(pipe('介绍一下快速排序', enable_thinking=True)[0])
"
注意:模型要求 transformers 为 4.53 以上版本,否则无法解析思考标记。官方仓库还提供了 vLLM / SGLang 部署配置脚本,生产环境建议用 vLLM 加载。Qwen3-30B-A3B 在 vLLM 下支持前缀缓存,配合非思考模式能达到非常低的响应延迟。
技术亮点
思考链是普通 token,而不是特殊机制
很多团队做 reasoning model 时会引入专门的“推理模块”,或为思考 token 单独设计 sampling 逻辑。Qwen3 没有给思考链任何特殊待遇:它把 CoT 做成普通文本,用 <think> 边界 token 包裹。思考与否只是 prompt/输出分布的不同。这个设计保证了模型可以继续使用标准 causal LM 训练、标准 KV cache、标准投机采样。
AI 项目推荐
大模型- 标签
- #大模型 #阿里云 #MoE #混合推理 #开源
- 浏览
- 👁️ 8
- 发布日期
- 2026-09-09