今年,继 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 3Gemini 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

基础参数

  1. /weights/Qwen/Qwen3-32B

    • 作用:指定模型权重文件的存储路径。

    • 说明:加载位于 /weights/Qwen/ 目录下的 Qwen3-32B 模型

服务配置

  1. --served-model-name Qwen3-32B

    • 作用:定义服务暴露的模型名称。

    • 说明:客户端请求时需通过此名称指定模型(例如 OpenAI 格式请求中的 model 字段)。

  2. --port 6792

    • 作用:设置服务监听的网络端口。

    • 说明:服务将通过 6792 端口接收请求(如 http://localhost:6792)。

推理能力扩展

  1. --reasoning-parser qwen3

    • 作用:启用针对 Qwen3 的推理结果解析器。

    • 说明:优化模型输出(如 JSON、函数调用等结构化数据)的解析逻辑,适配 Qwen3 的响应格式。

  2. --enable-auto-tool-choice

    • 作用:允许模型自动选择工具(Tool)。

    • 说明:当请求中包含工具定义时,模型可自主决定是否调用工具及选择哪个工具。

  3. --tool-call-parser hermes

    • 作用:指定工具调用结果的解析器。

    • 说明:使用 hermes 解析器处理模型返回的工具调用参数(如解析 JSON 参数)。

性能与资源

  1. --gpu-memory-utilization 0.6

    • 作用:设置 GPU 显存使用率上限。

    • 说明:限制显存占用不超过总显存的 60%,避免 OOM(内存溢出)。

  2. --tensor-parallel-size 1

    • 作用:指定张量并行(Tensor Parallelism)的 GPU 数量。

    • 说明1 表示单卡运行(不跨卡拆分模型)。

  3. --max-num-seqs 128

    • 作用:设置最大并发处理序列数。

    • 说明:同时处理的请求数上限为 128(高并发场景需更高显存)。

  4. --max-model-len 30000

    • 作用:定义模型最大上下文长度(Token 数)。

    • 说明:输入 + 输出的总 Token 数不超过 30,000(需模型本身支持长上下文)。

  5. --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 的字段,其中包含模型生成的思考内容。


Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐