HuggingFace镜像/Qwen3-30B-A3B-Thinking-2507
模型介绍模型推理文件和版本分析
下载使用量0

Qwen3-30B-A3B-Thinking-2507

Chat

核心亮点

过去三个月,我们持续扩展了Qwen3-30B-A3B的思维能力,显著提升了推理的质量与深度。现隆重推出Qwen3-30B-A3B-Thinking-2507版本,主要增强包括:

  • 推理任务性能大幅提升:在逻辑推理、数学运算、科学分析、编程实践及需要人类专业知识的学术基准测试中表现卓越
  • 通用能力显著优化:包括指令遵循、工具调用、文本生成以及与人类偏好的对齐度
  • 256K长文本理解能力强化

注意:本版本思维长度有所增加,强烈推荐用于高复杂度推理场景。

image/jpeg

模型概览

Qwen3-30B-A3B-Thinking-2507 具备以下特性:

  • 模型类型:因果语言模型
  • 训练阶段:预训练&后训练
  • 参数量:总参数量30.5B,激活参数量3.3B
  • 非嵌入参数量:29.9B
  • 层数:48
  • 注意力头数(GQA):Q头32个,KV头4个
  • 专家总数:128
  • 激活专家数:8
  • 上下文长度:原生支持262,144 tokens

注:本模型仅支持思维模式运行,且无需再指定enable_thinking=True参数

特别说明:为强制启用思维模式,默认对话模板已自动包含<think>标签。因此当模型输出仅显示闭合标签</think>而未见起始标签时,此属正常现象。

更多技术细节(包括基准测试、硬件需求及推理性能)请参阅我们的博客、GitHub及技术文档。

性能表现

Gemini2.5-Flash-ThinkingQwen3-235B-A22B ThinkingQwen3-30B-A3B ThinkingQwen3-30B-A3B-Thinking-2507
知识能力
MMLU-Pro81.982.878.580.9
MMLU-Redux92.192.789.591.4
GPQA82.871.165.873.4
SuperGPQA57.860.751.856.8
推理能力
AIME2572.081.570.985.0
HMMT2564.262.549.871.4
LiveBench 2024112574.377.174.376.8
编程能力
LiveCodeBench v6 (25.02-25.05)61.255.757.466.0
CFEval1995205619402044
OJBench23.525.620.725.1
对齐能力
IFEval89.883.486.588.9
Arena-Hard v2$56.761.536.356.0
Creative Writing v385.084.679.184.4
WritingBench83.980.377.085.0
智能体能力
BFCL-v368.670.869.172.4
TAU1-Retail65.254.861.767.8
TAU1-Airline54.026.032.048.0
TAU2-Retail66.740.434.258.8
TAU2-Airline52.030.036.058.0
TAU2-Telecom31.621.922.826.3
多语言能力
MultiIF74.471.972.276.4
MMLU-ProX80.280.073.176.4
INCLUDE83.978.771.974.4
PolyMATH49.854.746.152.6

$ 为确保结果可复现,本表采用GPT-4.1评估的胜率数据。

& 对于高难度任务(包括PolyMATH及所有推理和编程任务),我们设置输出长度为81,920 tokens。其他任务统一采用32,768 tokens的输出长度。

快速开始

Qwen3-MoE的代码已集成至最新版Hugging Face transformers库,建议您使用最新版本的transformers。

若使用transformers<4.51.0版本,将会遇到以下报错:

KeyError: 'qwen3_moe'

以下包含一段代码示例,演示如何基于给定输入使用模型生成内容。

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "Qwen/Qwen3-30B-A3B-Thinking-2507"

# load the tokenizer and the model
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    torch_dtype="auto",
    device_map="auto"
)

# prepare the model input
prompt = "Give me a short introduction to large language model."
messages = [
    {"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)

# conduct text completion
generated_ids = model.generate(
    **model_inputs,
    max_new_tokens=32768
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist() 

# parsing thinking content
try:
    # rindex finding 151668 (</think>)
    index = len(output_ids) - output_ids[::-1].index(151668)
except ValueError:
    index = 0

thinking_content = tokenizer.decode(output_ids[:index], skip_special_tokens=True).strip("\n")
content = tokenizer.decode(output_ids[index:], skip_special_tokens=True).strip("\n")

print("thinking content:", thinking_content) # no opening <think> tag
print("content:", content)

部署时,您可以使用sglang>=0.4.6.post1或vllm>=0.8.5来创建兼容OpenAI的API端点:

  • SGLang方式:
    python -m sglang.launch_server --model-path Qwen/Qwen3-30B-A3B-Thinking-2507 --context-length 262144  --reasoning-parser deepseek-r1
  • vLLM方式:
    vllm serve Qwen/Qwen3-30B-A3B-Thinking-2507 --max-model-len 262144 --enable-reasoning --reasoning-parser deepseek_r1

注意:若遇到内存不足(OOM)问题,可尝试调低上下文长度参数。但由于模型推理可能需要更长的token序列,我们强烈建议尽可能保持上下文长度大于131,072。

本地运行时,Ollama、LMStudio、MLX-LM、llama.cpp和KTransformers等应用也已支持Qwen3模型。

智能体应用

Qwen3在工具调用方面表现卓越。我们推荐使用Qwen-Agent来充分发挥其智能体能力。Qwen-Agent内置了工具调用模板和解析器,可大幅降低编码复杂度。

您可以通过MCP配置文件定义可用工具,使用Qwen-Agent的集成工具,或自行集成其他工具。

from qwen_agent.agents import Assistant

# Define LLM
# Using Alibaba Cloud Model Studio
llm_cfg = {
    'model': 'qwen3-30b-a3b-thinking-2507',
    'model_type': 'qwen_dashscope',
}

# Using OpenAI-compatible API endpoint. It is recommended to disable the reasoning and the tool call parsing
# functionality of the deployment frameworks and let Qwen-Agent automate the related operations. For example, 
# `VLLM_USE_MODELSCOPE=true vllm serve Qwen/Qwen3-30B-A3B-Thinking-2507 --served-model-name Qwen3-30B-A3B-Thinking-2507 --tensor-parallel-size 8 --max-model-len 262144`.
#
# llm_cfg = {
#     'model': 'Qwen3-30B-A3B-Thinking-2507',
# 
#     # Use a custom endpoint compatible with OpenAI API:
#     'model_server': 'http://localhost:8000/v1',  # api_base without reasoning and tool call parsing
#     'api_key': 'EMPTY',
#     'generate_cfg': {
#         'thought_in_content': True,
#     },
# }


# Define Tools
tools = [
    {'mcpServers': {  # You can specify the MCP configuration file
            'time': {
                'command': 'uvx',
                'args': ['mcp-server-time', '--local-timezone=Asia/Shanghai']
            },
            "fetch": {
                "command": "uvx",
                "args": ["mcp-server-fetch"]
            }
        }
    },
  'code_interpreter',  # Built-in tools
]

# Define Agent
bot = Assistant(llm=llm_cfg, function_list=tools)

# Streaming generation
messages = [{'role': 'user', 'content': 'https://qwenlm.github.io/blog/ Introduce the latest developments of Qwen'}]
for responses in bot.run(messages=messages):
    pass
print(responses)

超长文本处理技术

为支持超长上下文处理(最高达100万token),我们整合了两项核心技术:

  • 双块注意力机制 (DCA):一种长度外推方法,将长序列分割为可处理的块状结构,同时保持全局语义连贯性。
  • MInference稀疏注意力:通过聚焦关键token交互的稀疏注意力机制,显著降低计算开销。

这些创新技术协同工作,在超过256K token的序列上同时提升了生成质量与推理效率。在处理接近100万token的序列时,系统相比标准注意力实现可获得最高3倍加速。

完整技术细节请参阅Qwen2.5-1M技术报告。

如何启用100万token上下文支持

[!注意]
要有效处理100万token上下文,用户需准备约240GB显存总量,涵盖模型参数、KV缓存存储及峰值激活内存需求。

步骤1:更新配置文件

下载模型后,将config.json内容替换为config_1m.json,该文件已包含长度外推与稀疏注意力的相关配置。

export MODELNAME=Qwen3-30B-A3B-Thinking-2507
huggingface-cli download Qwen/${MODELNAME} --local-dir ${MODELNAME}
mv ${MODELNAME}/config.json ${MODELNAME}/config.json.bak
mv ${MODELNAME}/config_1m.json ${MODELNAME}/config.json

第二步:启动模型服务器

完成配置更新后,选择通过 vLLM 或 SGLang 部署模型服务。

方案一:使用vLLM

运行支持100万上下文长度的Qwen模型:

pip install -U vllm \
    --torch-backend=auto \
    --extra-index-url https://wheels.vllm.ai/nightly

随后启用双分块闪存注意力机制启动服务器:

VLLM_ATTENTION_BACKEND=DUAL_CHUNK_FLASH_ATTN VLLM_USE_V1=0 \
vllm serve ./Qwen3-30B-A3B-Thinking-2507 \
  --tensor-parallel-size 4 \
  --max-model-len 1010000 \
  --enable-chunked-prefill \
  --max-num-batched-tokens 131072 \
  --enforce-eager \
  --max-num-seqs 1 \
  --gpu-memory-utilization 0.85 \
  --enable-reasoning --reasoning-parser deepseek_r1
关键参数
参数用途
VLLM_ATTENTION_BACKEND=DUAL_CHUNK_FLASH_ATTN启用定制注意力核以实现长上下文高效处理
--max-model-len 1010000设置最大上下文长度约100万token
--enable-chunked-prefill支持超长输入的块状预填充(避免内存溢出)
--max-num-batched-tokens 131072控制预填充阶段的批处理大小,平衡吞吐量与内存占用
--enforce-eager禁用CUDA图捕获(双块注意力机制必需)
--max-num-seqs 1因极端内存消耗限制并发序列数
--gpu-memory-utilization 0.85设置模型执行器可用的GPU内存占比

方案二:使用SGLang

首先克隆并安装专用分支:

git clone https://github.com/sgl-project/sglang.git
cd sglang
pip install -e "python[all]"

启动支持DCA的服务器:

python3 -m sglang.launch_server \
    --model-path ./Qwen3-30B-A3B-Thinking-2507 \
    --context-length 1010000 \
    --mem-frac 0.75 \
    --attention-backend dual_chunk_flash_attn \
    --tp 4 \
    --chunked-prefill-size 131072 \
    --reasoning-parser deepseek-r1
关键参数
参数作用
--attention-backend dual_chunk_flash_attn启用双分块闪存注意力机制
--context-length 1010000定义最大输入长度
--mem-frac 0.75用于静态分配的内存比例(模型权重和KV缓存内存池)。若出现内存不足错误,可适当调小该值
--tp 4张量并行度(需与模型分片配置匹配)
--chunked-prefill-size 131072长序列预填充分块大小,避免内存溢出

故障排查:

  1. 出现错误:"模型最大序列长度(xxxxx)超过KV缓存可存储的最大token数" 或 "RuntimeError: 内存不足,请尝试增加--mem-fraction-static参数"

    KV缓存预留显存不足:

    • vLLM方案:可尝试降低max_model_len或增加tensor_parallel_size与gpu_memory_utilization。也可减少max_num_batched_tokens,但会显著降低推理速度
    • SGLang方案:可尝试降低context-length或增加tp与mem-frac。也可减少chunked-prefill-size,但会显著降低推理速度
  2. 出现错误:"torch.OutOfMemoryError: CUDA显存不足"

    激活权重预留显存不足。可尝试降低gpu_memory_utilization或mem-frac,但需注意这会减少KV缓存可用显存

  3. 出现错误:"输入提示(xxxxx tokens) + 前瞻槽位(0)过长,超出块管理器容量" 或 "输入长度(xxx tokens)超过模型上下文长度(xxx tokens)"

    输入序列过长。建议缩短输入或增加max_model_len/context-length

长上下文性能

我们在RULER基准测试的1M版本上进行评估:

模型名称平均准确率4k8k16k32k64k96k128k192k256k384k512k640k768k896k1000k
Qwen3-30B-A3B (Thinking)70.696.794.494.593.482.678.474.570.663.160.056.351.048.447.248.2
Qwen3-30B-A3B-Thinking-2507 (全注意力)91.499.6100.099.899.297.496.896.894.889.490.284.082.681.980.177.5
Qwen3-30B-A3B-Thinking-2507 (稀疏注意力)91.5100.099.299.198.597.397.196.995.889.089.385.584.880.079.979.6
  • 所有模型均启用双分块注意力机制
  • 因评估耗时,每个长度使用260个样本(13个子任务,每个任务20样本)
  • 为避免冗长推理,设置思维预算为8,192个token

最佳实践

为获得最佳性能,我们推荐以下配置方案:

  1. 采样参数设置:

    • 建议采用Temperature=0.6、TopP=0.95、TopK=20及MinP=0组合
    • 在支持框架中可将presence_penalty参数值设为0到2之间以减少无限循环现象。但需注意,过高数值可能导致偶发性的语言混杂现象及模型性能轻微下降
  2. 合理输出长度:

    • 常规查询建议使用32,768 tokens的输出长度
    • 针对数学竞赛/编程竞赛等高复杂度问题的基准测试,建议将最大输出长度设为81,920 tokens。该设置能为模型提供充分响应空间,生成详尽完整的解决方案,从而显著提升整体表现
  3. 标准化输出格式: 建议通过提示词规范模型输出格式:

    • 数学问题:在提示词中加入"请逐步推演,并将最终答案置于\boxed{}中"
    • 选择题:在提示词中添加以下JSON结构以统一应答格式:"请在answer字段中仅显示选项字母,例如"answer": "C""
  4. 历史记录处理规范: 在多轮对话中,历史模型输出应仅保留最终应答部分,无需包含思考过程。该规范已在提供的Jinja2聊天模板中实现。对于未直接使用该模板的框架,需开发者自行确保遵循此最佳实践

引用说明

如认为我们的工作对您有所帮助,欢迎引用我们的成果

@misc{qwen3technicalreport,
      title={Qwen3 Technical Report}, 
      author={Qwen Team},
      year={2025},
      eprint={2505.09388},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2505.09388}, 
}