Qwen3
💜 Qwen Chat   |   🤗 Hugging Face   |   🤖 ModelScope   |    📑 Paper    |    📑 Blog    |   📖 Documentation
🖥️ Demo   |   💬 WeChat (微信)   |   🫨 Discord  
先前 Qwen3 版本
Qwen3 (又名 Qwen3-2504)
我们很高兴地宣布发布 Qwen3,这是 Qwen 系列大语言模型的最新成员。
这些模型代表了我们迄今为止最先进、最智能的系统,基于我们构建 QwQ 和 Qwen2.5 的经验进行了改进。
我们向公众开放 Qwen3 的权重,包括密集模型和混合专家(MoE)模型。
Qwen3 的亮点包括:
- 多种规模的密集模型和混合专家(MoE)模型,提供 0.6B、1.7B、4B、8B、14B、32B 以及 30B-A3B、235B-A22B 版本。
- 在思考模式(用于复杂逻辑推理、数学和编程)和非思考模式(用于高效通用聊天)之间无缝切换,确保在各种场景下的最佳性能。
- 推理能力显著增强,在数学、代码生成和常识逻辑推理方面超越了先前的 QwQ(思考模式)和 Qwen2.5 指令模型(非思考模式)。
- 卓越的人类偏好对齐,在创意写作、角色扮演、多轮对话和指令遵循方面表现出色,提供更自然、引人入胜和沉浸式的对话体验。
- 智能体能力专长,能够在思考和非思考模式下精确集成外部工具,并在基于智能体的复杂任务中达到开源模型的领先性能。
- 支持 100 多种语言和方言,具备强大的多语言指令遵循和翻译能力。
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen3-30B-A3B-Instruct-2507"
# 加载分词器和模型
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
# 准备模型输入
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)
# 执行文本补全
generated_ids = model.generate(
**model_inputs,
max_new_tokens=16384
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
content = tokenizer.decode(output_ids, skip_special_tokens=True)
print("content:", content)
> [!Note]
> Qwen3-Instruct-2507 仅支持非思考模式,其输出中不会生成 ``from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/Qwen3-30B-A3B-Thinking-2507"
# 加载分词器和模型
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
# 准备模型输入
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)
# 执行文本补全
generated_ids = model.generate(
**model_inputs,
max_new_tokens=32768
)
output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
# 解析思考内容
try:
# rindex 查找 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) # 没有开头的 <think> 标签
print("content:", content)
> [!Note]
> Qwen3-Thinking-2507 仅支持思考模式。
> 此外,为了强制模型思考,默认的聊天模板会自动包含 `为先前 Qwen3 模型切换思考/非思考模式
默认情况下,Qwen3 模型会在响应前进行思考。 这可以通过以下方式控制:
enable_thinking=False:将enable_thinking=False传递给 `tokenizer.apply_chat_template` 将严格阻止模型生成思考内容。/think和/no_think指令:在系统或用户消息中使用这些词语来指示 Qwen3 是否应该思考。在多轮对话中,遵循最新的指令。
./llama-cli -hf Qwen/Qwen3-8B-GGUF:Q8_0 --jinja --color -ngl 99 -fa -sm row --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0 -c 40960 -n 32768 --no-context-shift
# 按 CTRL+C 退出
要使用 API 服务器,请在终端中运行以下命令:
./llama-server -hf Qwen/Qwen3-8B-GGUF:Q8_0 --jinja --reasoning-format deepseek -ngl 99 -fa -sm row --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0 -c 40960 -n 32768 --no-context-shift --port 8080
一个简单的 Web 前端将位于 `http://localhost:8080`,而一个 OpenAI 兼容的 API 将位于 `http://localhost:8080/v1`。
更多指南,请参考[我们的文档](https://qwen.readthedocs.io/en/latest/run_locally/llama.cpp.html)。
> [!Note]
> llama.cpp 采用“旋转上下文管理”,通过驱逐较早的令牌来实现无限生成。
> 这可以通过参数配置,上述命令有效地禁用了它。
> 更多详情,请参考[我们的文档](https://qwen.readthedocs.io/en/latest/run_locally/llama.cpp.html#llama-cli)。
### Ollama
[安装 Ollama](https://ollama.com/) 后,您可以使用以下命令启动 Ollama 服务(建议使用 Ollama v0.9.0 或更高版本):
ollama serve
# 使用 ollama 时需要保持此服务运行
要拉取模型检查点并运行模型,请使用 `ollama run` 命令。您可以通过向 `qwen3` 添加后缀来指定模型规模,例如 `:8b` 或 `:30b-a3b`:
ollama run qwen3:8b
# 设置参数,输入 "/set parameter num_ctx 40960" 和 "/set parameter num_predict 32768"
# 要退出,输入 "/bye" 并按 ENTER
# 对于 Qwen3-2504 模型,
# - 要启用思考(默认),输入 "/set think"
# - 要禁用思考,输入 "/set nothink"
您也可以通过其 OpenAI 兼容的 API 访问 Ollama 服务。
请注意,您需要 (1) 在使用 API 时保持 `ollama serve` 运行,并且 (2) 在使用此 API 之前执行 `ollama run qwen3:8b` 以确保模型检查点已准备就绪。
默认情况下,API 位于 `http://localhost:11434/v1/`。
更多详情,请访问 [ollama.ai](https://ollama.com/)。
> [!Note]
> Ollama 的命名可能与 Qwen 的原始命名不一致。
> 例如,截至 2025 年 8 月,Ollama 中的 `qwen3:30b-a3b` 指向 `qwen3:30b-a3b-thinking-2507-q4_K_M`。
> 使用前请查看 python -m sglang.launch_server --model-path Qwen/Qwen3-30B-A3B-Instruct-2507 --port 30000 --context-length 262144
对于 Qwen3-Thinking-2507,
python -m sglang.launch_server --model-path Qwen/Qwen3-30B-A3B-Thinking-2507 --port 30000 --context-length 262144 --reasoning-parser deepseek-r1
对于 Qwen3,命令如下:
python -m sglang.launch_server --model-path Qwen/Qwen3-8B --port 30000 --context-length 131072 --reasoning-parser qwen3
一个 OpenAI 兼容的 API 将位于 `http://localhost:30000/v1`。
> [!Note]
> 由于 SGLang 对 API 请求进行了预处理,丢弃了所有 `reasoning_content` 字段,因此**使用 Qwen3 思考模型进行多步工具调用**的质量可能不理想,因为这需要相关的思考内容存在。在修复工作进行期间,作为一种变通方法,我们建议按原样传递内容,不提取思考内容,聊天模板将正确处理。
### vLLM
[vLLM](https://github.com/vllm-project/vllm) 是一个用于 LLM 的高吞吐量和内存高效的推理和服务引擎。
建议使用 `vllm>=0.9.0`。
对于 Qwen3-Instruct-2507,
vllm serve Qwen/Qwen3-30B-A3B-Instruct-2507 --port 8000 --max-model-len 262144
对于 Qwen3-Thinking-2507,
vllm serve Qwen/Qwen3-30B-A3B-Thinking-2507 --port 8000 --max-model-len 262144 --enable-reasoning --reasoning-parser deepseek_r1
对于 Qwen3,命令如下:
vllm serve Qwen/Qwen3-8B --port 8000 --max-model-len 131072 --enable-reasoning --reasoning-parser qwen3
一个 OpenAI 兼容的 API 将位于 `http://localhost:8000/v1`。
> [!Note]
> 由于 vLLM 对 API 请求进行了预处理,丢弃了所有 `reasoning_content` 字段,因此**使用 Qwen3 思考模型进行多步工具调用**的质量可能不理想,因为这需要相关的思考内容存在。在修复工作进行期间,作为一种变通方法,我们建议按原样传递内容,不提取思考内容,聊天模板将正确处理。
### TensorRT-LLM
[TensorRT-LLM](https://github.com/NVIDIA/TensorRT-LLM) 是 NVIDIA 的开源 LLM 推理引擎,提供了包括自定义注意力内核、量化等在内的优化,适用于 NVIDIA GPU。Qwen3 在其重新架构的 [PyTorch 后端](https://nvidia.github.io/TensorRT-LLM/torch.html)中得到支持。建议使用 `tensorrt_llm>=0.20.0rc3`。更多详情请参考 [README](https://github.com/NVIDIA/TensorRT-LLM/blob/main/examples/models/core/qwen/README.md#qwen3) 页面。
trtllm-serve Qwen/Qwen3-8B --host localhost --port 8000 --backend pytorch
一个 OpenAI 兼容的 API 将位于 `http://localhost:8000/v1`。
### MindIE
要在 Ascend NPU 上部署,请访问 [Modelers](https://modelers.cn/) 并搜索 Qwen3。
## 基于 Qwen3 构建
### 工具使用
对于工具使用能力,我们建议查看 [Qwen-Agent](https://github.com/QwenLM/Qwen-Agent),它提供了这些 API 的封装,以支持工具使用或函数调用,并支持 MCP。
使用 Qwen3 进行工具调用也可以通过 SGLang、vLLM、Transformers、llama.cpp、Ollama 等进行。
请遵循我们文档中的指南,了解如何启用支持。
### 微调
我们建议您使用训练框架,包括 [Axolotl](https://github.com/OpenAccess-AI-Collective/axolotl)、[UnSloth](https://github.com/unslothai/unsloth)、[Swift](https://github.com/modelscope/swift)、[Llama-Factory](https://github.com/hiyouga/LLaMA-Factory) 等,通过 SFT、DPO、GRPO 等方式微调您的模型。
## 许可协议
我们所有开源权重的模型均采用 Apache 2.0 许可。
您可以在相应的 Hugging Face 仓库中找到许可文件。
## 引用
如果您觉得我们的工作有帮助,请随时引用我们。
@article{qwen3,
title={Qwen3 Technical Report},
author={An Yang and Anfeng Li and Baosong Yang and Beichen Zhang and Binyuan Hui and Bo Zheng and Bowen Yu and Chang Gao and Chengen Huang and Chenxu Lv and Chujie Zheng and Dayiheng Liu and Fan Zhou and Fei Huang and Feng Hu and Hao Ge and Haoran Wei and Huan Lin and Jialong Tang and Jian Yang and Jianhong Tu and Jianwei Zhang and Jianxin Yang and Jiaxi Yang and Jing Zhou and Jingren Zhou and Junyang Lin and Kai Dang and Keqin Bao and Kexin Yang and Le Yu and Lianghao Deng and Mei Li and Mingfeng Xue and Mingze Li and Pei Zhang and Peng Wang and Qin Zhu and Rui Men and Ruize Gao and Shixuan Liu and Shuang Luo and Tianhao Li and Tianyi Tang and Wenbiao Yin and Xingzhang Ren and Xinyu Wang and Xinyu Zhang and Xuancheng Ren and Yang Fan and Yang Su and Yichang Zhang and Yinger Zhang and Yu Wan and Yuqiong Liu and Zekun Wang and Zeyu Cui and Zhenru Zhang and Zhipeng Zhou and Zihan Qiu},
journal = {arXiv preprint arXiv:2505.09388},
year={2025}
}
@article{qwen2.5,
title = {Qwen2.5 Technical Report},
author = {An Yang and Baosong Yang and Beichen Zhang and Binyuan Hui and Bo Zheng and Bowen Yu and Chengyuan Li and Dayiheng Liu and Fei Huang and Haoran Wei and Huan Lin and Jian Yang and Jianhong Tu and Jianwei Zhang and Jianxin Yang and Jiaxi Yang and Jingren Zhou and Junyang Lin and Kai Dang and Keming Lu and Keqin Bao and Kexin Yang and Le Yu and Mei Li and Mingfeng Xue and Pei Zhang and Qin Zhu and Rui Men and Runji Lin and Tianhao Li and Tingyu Xia and Xingzhang Ren and Xuancheng Ren and Yang Fan and Yang Su and Yichang Zhang and Yu Wan and Yuqiong Liu and Zeyu Cui and Zhenru Zhang and Zihan Qiu},
journal = {arXiv preprint arXiv:2412.15115},
year = {2024}
}
@article{qwen2,
title = {Qwen2 Technical Report},
author = {An Yang and Baosong Yang and Binyuan Hui and Bo Zheng and Bowen Yu and Chang Zhou and Chengpeng Li and Chengyuan Li and Dayiheng Liu and Fei Huang and Guanting Dong and Haoran Wei and Huan Lin and Jialong Tang and Jialin Wang and Jian Yang and Jianhong Tu and Jianwei Zhang and Jianxin Ma and Jin Xu and Jingren Zhou and Jinze Bai and Jinzheng He and Junyang Lin and Kai Dang and Keming Lu and Keqin Chen and Kexin Yang and Mei Li and Mingfeng Xue and Na Ni and Pei Zhang and Peng Wang and Ru Peng and Rui Men and Ruize Gao and Runji Lin and Shijie Wang and Shuai Bai and Sinan Tan and Tianhang Zhu and Tianhao Li and Tianyu Liu and Wenbin Ge and Xiaodong Deng and Xiaohuan Zhou and Xingzhang Ren and Xinyu Zhang and Xipin Wei and Xuancheng Ren and Yang Fan and Yang Yao and Yichang Zhang and Yu Wan and Yunfei Chu and Yuqiong Liu and Zeyu Cui and Zhenru Zhang and Zhihao Fan},
journal = {arXiv preprint arXiv:2407.10671},
year = {2024}
}
## 联系我们
如果您有兴趣给我们的研究团队或产品团队留言,请加入我们的 [Discord](https://discord.gg/z3GAxXZ9Ce) 或 [微信群](assets/wechat.png)!