Qwen3 模型本地部署与应用
阿里推出第三代Qwen3大模型系列,包含8个参数规模从0.6B到235B的密集型和MoE模型,支持多模态输入和128K超长上下文。
今年,继 QvQ、Qwen2.5-VL 和 Qwen2.5-Omni 之后,Qwen 团队又发布了他们的最新模型系列 – Qwen3。
这一次,他们发布的不是一个模型,而是八种不同的模型 – 从 6 亿参数模型到 2,350 亿参数模型–与 OpenAI 的 o1、Gemini 2.5 Pro、DeepSeek R1 等顶级模型竞争。
在本文中,我们将详细探讨 Qwen3 模型,了解它们的功能、架构、亮点、性能和应用。
目录
前言
Qwen3 由阿里巴巴集团开发,是 Qwen 模型的第三代产品,旨在出色地完成编码、推理和语言处理等各种任务。Qwen3 系列由 8 个不同的模型组成,参数分别为 235B、30B、32B、14B、8B、4B、1.7B 和 0.6B。所有模型都是多模态的,这意味着它们可以接受文本、音频、图像甚至视频输入,并已免费提供。
这些模型可与 o1、o3-mini、Grok 3、Gemini 2.5 Pro 等顶级模型竞争。事实上,最新系列的 Qwen 模型不仅在性能上优于流行模型,而且在可比参数类别上比现有的 Qwen 系列模型有了显著改进。例如,Qwen-30B-A3B(300 亿参数,30 亿激活参数)模型优于全部激活 320 亿参数的 QwQ-32B 参数模型。
一、Qwen3模型简介
Qwen3 系列包含 8 个模型,其中两个是专家混合模型(MoE),另外 6 个是密集模型。下表列出了所有这些模型的详细信息:
| 模型名称 | 参数总数 | 激活参数(适用于 MoE 模型) | 模型类型 |
| Qwen3-235B-A22B | 235 Billion | 22 Billion | MoE(专家混合体) |
| Qwen3-30B-A3B | 30 Billion | 3 Billion | MoE(专家混合体) |
| Qwen3-32B | 32 Billion | N/A | Dense |
| Qwen3-14B | 14 Billion | N/A | Dense |
| Qwen3-8B | 8 Billion | N/A | Dense |
| Qwen3-4B | 4 Billion | N/A | Dense |
| Qwen3-1.7B | 1.7 Billion | N/A | Dense |
| Qwen3-0.6B | 0.6 Billion | N/A | Dense |
在 Qwen3-235B-A22B 和 Qwen3-30B-A3B 等 MoE 模型中,网络的不同部分或 “专家 ”会根据不同的输入被激活,因此效率很高。在 Qwen3-14B 等密集模型中,所有网络部分都会根据每个输入激活。
二、Qwen3 亮点
Qwen3 是 Qwen 系列中的最新一代大型语言模型,提供了一整套密集型和专家混合(MoE)模型。基于广泛的训练,Qwen3 在推理、指令遵循、代理能力和多语言支持方面取得了突破性进展,具有以下关键特性:
- 在单个模型中无缝切换思考模式(用于复杂逻辑推理、数学和编码)和非思考模式(用于高效、通用对话),确保在各种场景下的最佳性能。
- 显著增强了其推理能力,在数学、代码生成和常识逻辑推理方面超过了之前的 QwQ(在思考模式下)和 Qwen2.5 指令模型(在非思考模式下)。
- 卓越的人类偏好对齐,在创意写作、角色扮演、多轮对话和指令遵循方面表现出色,提供更自然、引人入胜和沉浸式的对话体验。
- 擅长代理能力,能够在思考和非思考模式下与外部工具精确集成,并在复杂的基于代理的任务中达到开源模型的领先性能。
- 支持 100 多种语言和方言,具有强大的多语言指令遵循和翻译能力。
三、模型应用
以Qwen3-32B模型为例。
Qwen3-32B 具有以下特点:
- 类型:因果语言模型
- 训练阶段:预训练 & 后训练
- 参数数量:328 亿
- 非嵌入参数数量:312 亿
- 层数:64
- 注意力头数(GQA):Q 为 64,KV 为 8
- 上下文长度:原生 32,768 和 使用 YaRN 可达 131,072 个令牌。
1. 模型下载
可前往 huggingface 和 modelscope 下载模型,这里提供一个从 modelscope 下载模型的python脚本。
# -*- coding: utf-8 -*-
# @author: yang
# from modelscope.hub.api import HubApi
# api = HubApi()
# api.login('85dadb24-a85c-4173-b697-1f2364399fbb')
from modelscope.hub.snapshot_download import snapshot_download
import argparse
parser = argparse.ArgumentParser(description='port conf')
parser.add_argument('--repo_id', type=str, default="Qwen/Qwen3-32B", required=False)
parser.add_argument('--local_dir', type=str, default="/data/LLM/llm_weights", required=False)
parser.add_argument('--ignore_patterns', type=list, default=["README.md"], required=False)
parser.add_argument('--revision', type=str, default='master', required=False)
"""
baichuan-inc/Baichuan2-13B-Chat
qwen/Qwen1.5-72B-Chat-GPTQ-Int8
qwen/Qwen1.5-72B-Chat-GPTQ-Int4
"""
args = parser.parse_args()
model_dir = snapshot_download(args.repo_id, cache_dir=args.local_dir, revision=args.revision)
print(f"large language model weights at: {model_dir}")
主要修改下述两个参数即可:
--repo_id :modelscope 模型名称
--local_dir :模型下载保存地址

2. 模型部署
运行下述代码在机器上运行Qwen3-32B模型
CUDA_VISIBLE_DEVICES=0 vllm serve /weights/Qwen/Qwen3-32B \
--served-model-name Qwen3-32B \
--reasoning-parser qwen3 \
--max-num-seqs 128 \
--enable-auto-tool-choice --tool-call-parser hermes \
--gpu-memory-utilization 0.6 \
--tensor-parallel-size 1 \
--port 6792 \
--max-model-len 30000 \
--enforce-eager
基础参数
/weights/Qwen/Qwen3-32B
作用:指定模型权重文件的存储路径。
说明:加载位于
/weights/Qwen/目录下的Qwen3-32B模型服务配置
--served-model-name Qwen3-32B
作用:定义服务暴露的模型名称。
说明:客户端请求时需通过此名称指定模型(例如 OpenAI 格式请求中的
model字段)。
--port 6792
作用:设置服务监听的网络端口。
说明:服务将通过
6792端口接收请求(如http://localhost:6792)。推理能力扩展
--reasoning-parser qwen3
作用:启用针对 Qwen3 的推理结果解析器。
说明:优化模型输出(如 JSON、函数调用等结构化数据)的解析逻辑,适配 Qwen3 的响应格式。
--enable-auto-tool-choice
作用:允许模型自动选择工具(Tool)。
说明:当请求中包含工具定义时,模型可自主决定是否调用工具及选择哪个工具。
--tool-call-parser hermes
作用:指定工具调用结果的解析器。
说明:使用
hermes解析器处理模型返回的工具调用参数(如解析 JSON 参数)。性能与资源
--gpu-memory-utilization 0.6
作用:设置 GPU 显存使用率上限。
说明:限制显存占用不超过总显存的 60%,避免 OOM(内存溢出)。
--tensor-parallel-size 1
作用:指定张量并行(Tensor Parallelism)的 GPU 数量。
说明:
1表示单卡运行(不跨卡拆分模型)。
--max-num-seqs 128
作用:设置最大并发处理序列数。
说明:同时处理的请求数上限为 128(高并发场景需更高显存)。
--max-model-len 30000
作用:定义模型最大上下文长度(Token 数)。
说明:输入 + 输出的总 Token 数不超过 30,000(需模型本身支持长上下文)。
--enforce-eager
作用:强制使用 Eager 模式执行(禁用 CUDA Graph 优化)。
说明:牺牲部分性能换取兼容性,避免某些环境下的图优化错误。
3. 快速开始
3.1 curl方式
curl http://localhost:6792/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "Qwen3-32B",
"messages": [
{"role": "user", "content": "Give me a short introduction to large language models."}
],
"temperature": 0.6,
"top_p": 0.95,
"top_k": 20,
"max_tokens": 32768
}'
3.2 python方式
from openai import OpenAI
# Set OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:6792/v1"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
chat_response = client.chat.completions.create(
model="Qwen3-32B",
messages=[
{"role": "user", "content": "Give me a short introduction to large language models."},
],
max_tokens=32768,
temperature=0.6,
top_p=0.95,
extra_body={
"top_k": 20,
},
)
print("Chat response:", chat_response)
4. 思考与非思考模式
Qwen3 模型会在回复前进行思考。这种行为可以通过硬开关(完全禁用思考)或软开关(模型遵循用户关于是否应该思考的指令)来控制。
硬开关在 vLLM 中可以通过以下 API 调用配置使用。
curl http://localhost:6792/v1/chat/completions -H "Content-Type: application/json" -d '{
"model": "Qwen3-32B",
"messages": [
{"role": "user", "content": "Give me a short introduction to large language models."}
],
"temperature": 0.7,
"top_p": 0.8,
"top_k": 20,
"max_tokens": 8192,
"presence_penalty": 1.5,
"chat_template_kwargs": {"enable_thinking": false}
}'
from openai import OpenAI
# Set OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:6792/v1"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
chat_response = client.chat.completions.create(
model="Qwen3-32B",
messages=[
{"role": "user", "content": "Give me a short introduction to large language models."},
],
max_tokens=8192,
temperature=0.7,
top_p=0.8,
presence_penalty=1.5,
extra_body={
"top_k": 20,
"chat_template_kwargs": {"enable_thinking": False},
},
)
print("Chat response:", chat_response)
请注意,enable_thinking并非OpenAI API定义的参数,具体传入方式可能因推理框架不同而不同。
要完全禁用思考,您可以在启动模型时使用自定义聊天模板:
vllm serve Qwen/Qwen3-8B --chat-template ./qwen3_nonthinking.jinja
响应消息除了包含 content 字段外,还会有一个名为 reasoning_content 的字段,其中包含模型生成的思考内容。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)