Q
Qwen/Qwen3-235B-A22B-Thinking-2507
模型介绍模型推理文件和版本分析
下载使用量0

[!NOTE] 包含 Unsloth 聊天模板修复!
对于 llama.cpp,请使用 --jinja 参数

Unsloth Dynamic 2.0 实现了卓越的准确性,性能超越其他主流量化方法。

Qwen3-235B-A22B-Thinking-2507

Chat

主要亮点

在过去三个月中,我们持续提升 Qwen3-235B-A22B 的思考能力,同时改进推理的质量与深度。我们荣幸地推出 Qwen3-235B-A22B-Thinking-2507,主要增强如下:

  • 推理任务性能显著提升,涵盖逻辑推理、数学、科学、编程及通常需要人类专业知识的学术基准测试——在开源思考模型中实现最先进成果。
  • 通用能力大幅增强,包括指令遵循、工具使用、文本生成及与人类偏好的对齐。
  • 256K 长上下文理解能力优化。

注意:本版本延长了思考时长。强烈建议用于高度复杂的推理任务。

image/jpeg

模型概述

Qwen3-235B-A22B-Thinking-2507 具有以下特性:

  • 类型:因果语言模型
  • 训练阶段:预训练与后训练
  • 参数数量:总计2350亿,激活220亿
  • 非嵌入参数数量:2340亿
  • 层数:94层
  • 注意力头数(GQA):Q为64个,KV为4个
  • 专家数量:128个
  • 激活专家数量:8个
  • 上下文长度:原生支持262,144 tokens

注意:本模型仅支持思考模式。

此外,为确保模型进入思考状态,默认对话模板会自动包含 </think>。因此,模型输出中仅包含 </think> 而无显式开头 </think> 标签属于正常现象。

更多详情,包括基准测试评估、硬件要求和推理性能,请参阅我们的 博客、GitHub 和 文档。

性能表现

Deepseek-R1-0528OpenAI O4-miniOpenAI O3Gemini-2.5 ProClaude4 Opus ThinkingQwen3-235B-A22B ThinkingQwen3-235B-A22B-Thinking-2507
知识
MMLU-Pro85.081.985.985.6-82.884.4
MMLU-Redux93.492.894.994.494.692.793.8
GPQA81.081.4*83.3*86.479.671.181.1
SuperGPQA61.756.4-62.3-60.764.9
推理
AIME2587.592.7*88.9*88.075.581.592.3
HMMT2579.466.777.582.558.362.583.9
LiveBench 2024112574.775.878.382.478.277.178.4
HLE17.7#18.1*20.321.610.711.8#18.2#
代码
LiveCodeBench v6(25.02-25.05)68.771.858.672.548.955.774.1
CFEval2099192920432001-20562134
OJBench33.633.325.438.9-25.632.5
对齐
IFEval79.192.492.190.889.783.487.8
Arena-Hard v2$72.259.380.872.559.161.579.7
Creative Writing v386.378.887.785.983.884.686.1
WritingBench83.278.485.383.179.180.388.3
智能体
BFCL-v363.867.272.467.261.870.871.9
TAU2-Retail64.971.076.371.3-40.471.9
TAU2-Airline60.059.070.060.0-30.058.0
TAU2-Telecom33.342.060.537.4-21.945.6
多语言
MultiIF63.578.080.377.8-71.980.6
MMLU-ProX80.679.083.384.7-80.081.0
INCLUDE79.480.886.685.1-78.781.0
PolyMATH46.948.749.752.2-54.760.1

* 对于 OpenAI O4-mini 和 O3,我们采用中等推理力度,标有 * 的分数除外,这些分数使用高推理力度生成。

# 根据 HLE 的官方评估标准,标有 # 的分数指非多模态模型,仅在纯文本子集上进行评估。

$ 为保证可复现性,我们报告由 GPT-4.1 评估的胜率。

& 对于高难度任务(包括 PolyMATH 以及所有推理和代码任务),我们使用 81,920 tokens 的输出长度。其他所有任务的输出长度设为 32,768。

快速入门

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

若使用 transformers<4.51.0,您将遇到以下错误:

KeyError: 'qwen3_moe'

以下是一段代码片段,展示了如何使用模型根据给定输入生成内容。

from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "Qwen/Qwen3-235B-A22B-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-235B-A22B-Thinking-2507 --tp 8 --context-length 262144  --reasoning-parser deepseek-r1
  • vLLM:
    vllm serve Qwen/Qwen3-235B-A22B-Thinking-2507 --tensor-parallel-size 8 --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来充分发挥Qwen3的智能体能力。Qwen-Agent内部封装了工具调用模板和工具调用解析器,大幅降低了编码复杂度。

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

from qwen_agent.agents import Assistant

# Define LLM
# Using Alibaba Cloud Model Studio
llm_cfg = {
    'model': 'qwen3-235b-a22b-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-235B-A22B-Thinking-2507 --served-model-name Qwen3-235B-A22B-Thinking-2507 --tensor-parallel-size 8 --max-model-len 262144`.
#
# llm_cfg = {
#     'model': 'Qwen3-235B-A22B-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)

最佳实践

为实现最佳性能,我们建议采用以下设置:

  1. 采样参数:

    • 建议使用 Temperature=0.6、TopP=0.95、TopK=20 和 MinP=0。
    • 在支持的框架中,可将 presence_penalty 参数调整为 0 到 2 之间,以减少无意义的重复。但需注意,较高的参数值偶尔可能导致语言混杂,并略微降低模型性能。
  2. 充足的输出长度:对于大多数查询,建议使用 32,768 个 token 的输出长度。在数学和编程竞赛等高度复杂问题的基准测试中,建议将最大输出长度设置为 81,920 个 token。这能为模型提供足够的空间来生成详细且全面的响应,从而提升整体性能。

  3. 标准化输出格式:在进行基准测试时,建议通过提示词标准化模型输出。

    • 数学问题:在提示词中加入“请逐步推理,并将最终答案放在 \boxed{} 内。”
    • 多项选择题:在提示词中添加以下 JSON 结构以规范响应:“请在 answer 字段中仅用选项字母展示您的选择,例如:"answer": "C"。”
  4. 历史记录中不含思考内容:在多轮对话中,历史模型输出应仅包含最终输出部分,无需包含思考过程。Jinja2 提供的聊天模板已实现此功能。但对于未直接使用 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}, 
}