🌠Qwen3-Next:本地运行指南
在您的设备上本地运行 Qwen3-Next-80B-A3B-Instruct 和 Thinking 版本!
Qwen 于 2025 年 9 月发布了 Qwen3-Next,它是具有思考(Thinking)和指令(Instruct)模型变体的 80B 专家混合(MoEs)。 Qwen3具有 256K 上下文,Qwen3-Next 采用全新架构(MoEs 与 Gated DeltaNet + Gated Attention 的混合),专门针对较长上下文长度的快速推理进行优化。Qwen3-Next 的推理速度比 Qwen3-32B 快 10 倍。
运行 Qwen3-Next Instruct运行 Qwen3-Next Thinking
Qwen3-Next-80B-A3B 动态 GGUF: 指令(Instruct) • 思考(Thinking)
⚙️ 使用指南
2025 年 12 月 6 日更新:Unsloth Qwen3-Next 现在已更新为使用 iMatrix 以提升性能。
思考模型使用 temperature = 0.6, 但指令模型使用 temperature = 0.7
思考模型使用 top_p = 0.95, 但指令模型使用 top_p = 0.8
为获得最佳性能,Qwen 建议以下设置:
Temperature = 0.7
Temperature = 0.6
Min_P = 0.00 (llama.cpp 的默认值为 0.1)
Min_P = 0.00 (llama.cpp 的默认值为 0.1)
Top_P = 0.80
Top_P = 0.95
TopK = 20
TopK = 20
presence_penalty = 0.0 到 2.0 (llama.cpp 默认将其关闭,但为减少重复可以使用此项)
presence_penalty = 0.0 到 2.0 (llama.cpp 默认将其关闭,但为减少重复可以使用此项)
适当的输出长度: 对于大多数查询,思考变体请使用输出长度为 32,768 tokens,而指令变体则为 16,384 。如果必要,你可以为思考模型增加最大输出长度。
适用于思考(thinking 包含 <think></think>) 和指令的聊天模板如下:
<|im_start|>user
嗨!<|im_end|>
<|im_start|>assistant
1+1 等于多少?<|im_end|>
<|im_start|>user
2<|im_end|>
<|im_start|>assistant📖 运行 Qwen3-Next 教程
下面是关于该 思考(Thinking) 和 指令(Instruct) 模型版本的指南。
Instruct:Qwen3-Next-80B-A3B-Instruct
鉴于这是一个非思考模型,模型不会生成 <think> </think> 块。
⚙️ 最佳实践
为实现最佳性能,Qwen 建议以下设置:
我们建议使用
temperature=0.7, top_p=0.8, top_k=20, 和 min_p=0.0presence_penalty如果框架支持,为减少无限重复建议在 0 到 2 之间设置。temperature = 0.7top_k = 20min_p = 0.00(llama.cpp 的默认值为 0.1)top_p = 0.80presence_penalty = 0.0 到 2.0(llama.cpp 的默认会将其关闭,但为减少重复你可以使用此项)例如可以尝试 1.0。本地原生支持最多
262,144上下文,但你可以将其设置为32,768tokens 以减少内存占用
✨ Llama.cpp:运行 Qwen3-Next-80B-A3B-Instruct 教程
获取最新的
llama.cpp在 此处的 GitHub。你也可以按下面的构建说明进行。将-DGGML_CUDA=ON更改为-DGGML_CUDA=OFF如果你没有 GPU 或只想进行 CPU 推理。 针对 Apple Mac / Metal 设备,设置-DGGML_CUDA=OFF然后像往常一样继续 - Metal 支持默认开启。
你可以直接通过 HuggingFace 拉取:
通过以下方式下载模型(在安装之后
pip install huggingface_hub hf_transfer)。你可以选择UD_Q4_K_XL或其他量化版本。
Thinking:Qwen3-Next-80B-A3B-Thinking
该模型仅原生支持思考模式和 256K 的上下文窗口。默认的聊天模板会自动添加 <think> ,因此你可能在输出中只看到一个闭合的 </think> 标签。
⚙️ 最佳实践
为实现最佳性能,Qwen 建议以下设置:
我们建议使用
temperature=0.6, top_p=0.95, top_k=20, 和 min_p=0.0presence_penalty如果框架支持,为减少无限重复建议在 0 到 2 之间设置。temperature = 0.6top_k = 20min_p = 0.00(llama.cpp 的默认值为 0.1)top_p = 0.95presence_penalty = 0.0 到 2.0(llama.cpp 的默认会将其关闭,但为减少重复你可以使用此项)例如可以尝试 1.0。本地原生支持最多
262,144上下文,但你可以将其设置为32,768tokens 以减少内存占用
✨ Llama.cpp:运行 Qwen3-Next-80B-A3B-Thinking 教程
获取最新的
llama.cpp在 此处的 GitHub。你也可以按下面的构建说明进行。将-DGGML_CUDA=ON更改为-DGGML_CUDA=OFF如果你没有 GPU 或只想进行 CPU 推理。
你可以直接通过 Hugging Face 拉取:
通过以下方式下载模型(在安装之后
pip install huggingface_hub hf_transfer)。你可以选择UD_Q4_K_XL或其他量化版本。
🛠️ 提升生成速度
如果你有更多显存,可以尝试卸载更多 MoE 层,或将整个层本身卸载(offload)。
通常, -ot ".ffn_.*_exps.=CPU" 会将所有 MoE 层卸载到 CPU!这实际上允许你将所有非 MoE 层放在一块 GPU 上,从而提高生成速度。如果你有更多 GPU 容量,可以自定义正则表达式以适配更多层。
如果你有稍多的 GPU 内存,尝试 -ot ".ffn_(up|down)_exps.=CPU" 这会卸载上投影和下投影的 MoE 层。
尝试 -ot ".ffn_(up)_exps.=CPU" 如果你有更多的 GPU 内存。这只会卸载上投影的 MoE 层。
你也可以自定义正则表达式,例如 -ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU" 表示从第 6 层起卸载 gate、up 和 down 的 MoE 层。
最新的 llama.cpp 版本 还引入了高吞吐量模式。使用 llama-parallel。在此处阅读更多内容 这里。你也可以 例如将 KV 缓存量化为 4 bit 以减少 VRAM / RAM 的移动,这也可以使生成过程更快。 下一节 讨论了 KV 缓存量化。
📐 如何适配长上下文
要适配更长的上下文,你可以使用 KV 缓存量化 将 K 和 V 缓存量化到更低位数。这也可以由于减少 RAM / VRAM 数据移动而提高生成速度。K 量化的可用选项(默认是 f16)包括下列项。
--cache-type-k f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1
你应当使用那些 _1 变体以获得稍高的准确性,尽管速度会略慢。例如 q4_1, q5_1 因此尝试使用 --cache-type-k q4_1
你也可以对 V 缓存进行量化,但你需要 在编译 llama.cpp 时启用 Flash Attention 支持 通过 -DGGML_CUDA_FA_ALL_QUANTS=ON,并使用 --flash-attn 来启用它。安装 Flash Attention 之后,你就可以使用 --cache-type-v q4_1

最后更新于
这有帮助吗?

