一、Qwen3
Qwen3
是 Qwen
系列大型语言模型的最新成员。该系列共包含8
款模型,2
款参数30B
、235B
的混合专家模型和6
款参数0.6B
、1.7B
、4B
、8B
、14B
、32B
的稠密模型,每款模型均获得同尺寸开源模型的最佳性能。
其中旗舰模型 Qwen3-235B-A22B
在代码、数学、通用能力等基准测试中,与 DeepSeek-R1
、OpenAI-o1
、OpenAI-o3-mini
、Grok-3
和 Gemini-2.5-Pro
等顶级模型相比,表现出极具竞争力的结果。
小型的 MoE
模型 Qwen3-30B-A3B
的激活参数数量是 QwQ-32B
的 10%
,表现也更胜一筹,甚至像 Qwen3-4B
这样的小模型也能匹敌 Qwen2.5-72B-Instruct
的性能。
Qwen3
模型其中比较有特色的亮点,支持两种思考模式,并且可以灵活切换:
-
思考模式:在这种模式下,模型会逐步推理,经过深思熟虑后给出最终答案。这种方法非常适合需要深入思考的复杂问题。
-
非思考模式:在此模式中,模型提供快速、近乎即时的响应,适用于那些对速度要求高于深度的简单问题。
模式的切换无需更换模型,可直接通过 enable_thinking
参数控制,例如:
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=True # True is the default value for enable_thinking.
)
对于 vLLM
框架,可通过 --reasoning-parser
和 --enable-reasoning
控制思考模式:
vllm serve Qwen/Qwen3-30B-A3B \
--enable-reasoning \
--reasoning-parser deepseek_r1
Qwen3
还提供了软切换机制,允许用户在 enable_thinking=True
时动态控制模型的行为。只需在提示或系统消息中添加 /think
和 /no_think
来逐轮切换模型的思考模式。在多轮对话中,模型会遵循最近的指令。
更多亮点介绍可参考官方 Github:
Qwen3-30B-A3B ModelScope
地址:
Qwen3-30B-A3B huggleface
地址:
本次本地部署 Qwen3-30B-A3B
推理优化框架采用 vLLM
,使用 Open-WebUI
交互测试,依赖的版本如下:
torch==2.5.1+cu118
modelscope==1.23.1
transformers==4.49.0
vllm==0.7.2
二、vLLM 部署 Qwen3-30B-A3B
首先使用 modelscope
下载 QWQ-32B
模型到本地:
modelscope download --model="Qwen/Qwen3-30B-A3B" --local_dir Qwen3-30B-A3B
使用 vLLM
读取模型启动API
服务。
export CUDA_VISIBLE_DEVICES=0,1
vllm serve "Qwen3-30B-A3B" \
--host 0.0.0.0 \
--port 8060 \
--dtype bfloat16 \
--tensor-parallel-size 2 \
--cpu-offload-gb 0 \
--gpu-memory-utilization 0.8 \
--max-model-len 8126 \
--api-key token-abc123 \
--enable-prefix-caching \
--enable-reasoning \
--reasoning-parser deepseek_r1\
--trust-remote-code
关键参数说明:
export CUDA_VISIBLE_DEVICES=0,1
:指定所使用的GPU
。dtype
: 数据类型,其中bfloat16
,16
位浮点数,适合NVIDIA A100
等设备。tensor-parallel-size
:Tensor
并行的数量,当多GPU
分布式推理时使用,建议和GPU
的数量一致。cpu-offload-gb
:允许将部分模型权重或中间结果卸载到CPU
的内存中,单位为GB
。,模拟GPU
内存扩展,如果部署的模型大于了显存大小可以设置该参数,但是推理速度会大大下降。gpu-memory-utilization
:设置GPU
内存利用率的上限。max-model-len
:允许模型最大处理的Token
数,该参数越大占用显存越大。enable-prefix-caching
:启用前缀缓存减少重复计算。
显存占用情况:
如果启动显存不足,可适当调整 gpu-memory-utilization
和 max-model-len
参数,或通过 cpu-offload-gb
将部分模型权重卸载到内存中。
启动成功后,可通过 /v1/models
接口可查看模型列表:
curl http://127.0.0.1:8060/v1/models -H "Authorization: Bearer token-abc123"
测试API
方式交互,默认思考模式:
curl http://127.0.0.1:8060/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer token-abc123" \
-d '{
"model": "Qwen3-30B-A3B",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "你是谁"}
]
}'
非思考模式测试:
curl http://127.0.0.1:8060/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer token-abc123" \
-d '{
"model": "Qwen3-30B-A3B",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "你是谁/no_think"}
]
}'
三、Open-WebUI 交互测试
连接 Qwen3-30B-A3B
模型。
模型ID
可以留空,会自动从 /v1/models
接口中获取。
保存后,回到对话窗口, 可在左上角选择 Qwen3-30B-A3B
模型:
对话测试
问题:三人三台三桶水,九人九天几桶水
问题:找规律:
24,14,26,33,46,( )
提示: 24/2+14=26/no_think