许可证:Apache-2.0
许可证链接:https://huggingface.co/Qwen/Qwen3-4B-GGUF/blob/main/LICENSE
任务标签:文本生成
基础模型:Qwen/Qwen3-4B
Qwen3-4B-GGUF
Qwen3亮点
Qwen3是通义千问系列大语言模型的最新版本,提供了一系列密集型和混合专家(MoE)模型。基于大规模训练,Qwen3在推理、指令遵循、智能体能力和多语言支持方面取得了突破性进展,主要特点包括:
- 独特支持单模型内思维模式(用于复杂逻辑推理、数学和编程)与非思维模式(用于高效通用对话)无缝切换,确保在各种场景下获得最佳性能。
- 推理能力显著增强,在数学、代码生成和常识逻辑推理方面超越了之前的QwQ(思维模式)和Qwen2.5指令模型(非思维模式)。
- 卓越的人类偏好对齐,在创意写作、角色扮演、多轮对话和指令遵循方面表现优异,提供更自然、引人入胜的对话体验。
- 擅长智能体能力,能在思维和非思维模式下精准集成外部工具,在开源模型中实现复杂智能体任务的领先性能。
- 支持100多种语言和方言,具备强大的多语言指令遵循和翻译能力。
模型概览
Qwen3-4B具有以下特点:
-
类型:因果语言模型
-
训练阶段:预训练与后训练
-
参数量:40亿
-
非嵌入参数量:36亿
-
层数:36
-
注意力头数(GQA):查询头32个,键值头8个
-
上下文长度:原生支持32,768 tokens,通过YaRN扩展至131,072 tokens。
-
量化版本:q4_K_M、q5_0、q5_K_M、q6_K、q8_0
更多细节,包括基准评估、硬件要求和推理性能,请参考我们的博客、GitHub和文档。
快速开始
llama.cpp
查看我们的llama.cpp文档获取更多使用指南。
建议克隆llama.cpp
并按官方指南安装。我们遵循llama.cpp的最新版本。
以下演示假设您在llama.cpp
仓库中运行命令。
./llama-cli -hf Qwen/Qwen3-4B-GGUF:Q8_0 --jinja --color -ngl 99 -fa -sm row --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0 --presence-penalty 1.5 -c 40960 -n 32768 --no-context-shift
ollama
查看我们的ollama文档获取更多使用指南。
通过一条命令即可运行Qwen3:
ollama run hf.co/Qwen/Qwen3-4B-GGUF:Q8_0
思维模式与非思维模式切换
您可以在用户提示或系统消息中添加/think
和/no_think
来逐轮切换模型的思维模式。在多轮对话中,模型会遵循最近的指令。
以下是一个多轮对话示例:
> 你是谁 /no_think
<think>
</think>
我是通义千问,由阿里云开发的大规模语言模型。[...]
> "strawberries"中有多少个'r'? /think
<think>
好的,让我们看看。用户问单词"strawberries"中字母'r'出现了多少次。[...]
</think>
单词strawberries包含3个字母r。[...]
处理长文本
Qwen3原生支持高达32,768 tokens的上下文长度。对于输入输出总长度远超此限制的对话,建议使用RoPE缩放技术有效处理长文本。我们已验证模型通过YaRN方法在131,072 tokens上下文长度下的性能。
在llama.cpp
中启用YARN:
./llama-cli ... -c 131072 --rope-scaling yarn --rope-scale 4 --yarn-orig-ctx 32768
[!注意]
所有知名开源框架均实现静态YaRN,即缩放因子不随输入长度变化,可能影响短文本性能。
建议仅在需要处理长上下文时添加rope_scaling
配置。
同时建议根据需要调整factor
。例如,若应用典型上下文长度为65,536 tokens,设置factor
为2.0更佳。
[!提示]
阿里云Model Studio提供的端点默认支持动态YaRN,无需额外配置。
最佳实践
为获得最佳性能,建议以下设置:
-
采样参数:
- 思维模式(
enable_thinking=True
)使用Temperature=0.6
、TopP=0.95
、TopK=20
、MinP=0
和PresencePenalty=1.5
。勿用贪心解码,否则可能导致性能下降和无限重复。
- 非思维模式(
enable_thinking=False
)建议使用Temperature=0.7
、TopP=0.8
、TopK=20
、MinP=0
和PresencePenalty=1.5
。
- 量化模型建议设置
presence_penalty
为1.5以抑制重复输出。可调整presence_penalty
参数至0-2之间。较高值偶尔可能导致语言混杂和轻微性能下降。
-
充足输出长度:建议大多数查询使用32,768 tokens输出长度。对于数学和编程竞赛等高复杂度问题基准测试,建议设置最大输出长度为38,912 tokens,为模型提供充足空间生成详细全面的回答,从而提升整体性能。
-
标准化输出格式:基准测试时建议使用提示词标准化模型输出。
- 数学问题:提示中加入"请逐步推理,并将最终答案放在\boxed{}中。"
- 选择题:提示中添加以下JSON结构标准化响应:"请在
answer
字段中仅显示选项字母,如"answer": "C"
。"
-
历史记录中不含思维内容:多轮对话中,历史模型输出应仅包含最终输出部分,无需包含思维内容。提供的Jinja2聊天模板已实现此功能。对于未直接使用Jinja2聊天模板的框架,需开发者自行确保遵循最佳实践。
引用
如果您觉得我们的工作有帮助,欢迎引用。
@misc{qwen3,
title = {Qwen3},
url = {https://qwenlm.github.io/blog/qwen3/},
author = {Qwen Team},
month = {四月},
year = {2025}
}