🌠Qwen3-Next:本地运行指南

在您的设备上本地运行 Qwen3-Next-80B-A3B-Instruct 与 Thinking 版本!

Qwen 于 2025 年 9 月发布了 Qwen3-Next,它们是带有思考(Thinking)和指令(Instruct)模型变体的 80B MoEs,基于 Qwen3。Qwen3-Next 具有 256K 上下文,采用全新架构(MoEs 与 Gated DeltaNet + 门控注意力的混合),专门针对较长上下文长度的快速推理进行了优化。Qwen3-Next 的推理速度比 Qwen3-32B 快 10 倍。

运行 Qwen3-Next Instruct运行 Qwen3-Next Thinking

Qwen3-Next-80B-A3B 动态 GGUF: 指令(Instruct)arrow-up-right思考(Thinking)arrow-up-right

⚙️ 使用指南

circle-check

为了获得最佳性能,Qwen 推荐以下设置:

指令(Instruct):
思考(Thinking):

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>)和指令(Instruct)两者的聊天模板如下:

<|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) 版本模型的指南。

指令:Qwen3-Next-80B-A3B-Instruct

鉴于这是一个非思考模型(non thinking),模型不会生成 <think> </think> 块(blocks)。

⚙️ 最佳实践

为了获得最佳性能,Qwen 建议以下设置:

  • 我们建议使用 temperature=0.7, top_p=0.8, top_k=20, and min_p=0.0 presence_penalty 在 0 到 2 之间(如果框架支持)以减少无尽的重复。

  • temperature = 0.7

  • top_k = 20

  • min_p = 0.00 (llama.cpp 的默认值为 0.1)

  • top_p = 0.80

  • presence_penalty = 0.0 到 2.0 (llama.cpp 的默认会关闭,但若要减少重复,你可以使用此设置)例如可尝试 1.0。

  • 原生支持最多 262,144 上下文,但你可以将其设为 32,768 令牌以减少内存使用

Llama.cpp:运行 Qwen3-Next-80B-A3B-Instruct 教程

  1. 获取最新的 llama.cppGitHub 这里arrow-up-right。你也可以按下面的构建说明操作。将 -DGGML_CUDA=ON 改为 -DGGML_CUDA=OFF 如果你没有 GPU 或者只想使用 CPU 推理。

  1. 你可以直接通过 HuggingFace 拉取:

  2. 通过以下方式下载模型(在安装 pip install huggingface_hub hf_transfer 之后)。你可以选择 UD_Q4_K_XL 或其他量化版本。

思考:Qwen3-Next-80B-A3B-Thinking

该模型原生仅支持思考模式并具有 256K 上下文窗口。默认聊天模板会自动添加 <think> ,所以你可能只会在输出中看到一个闭合的 </think> 标签。

⚙️ 最佳实践

为了获得最佳性能,Qwen 建议以下设置:

  • 我们建议使用 temperature=0.6, top_p=0.95, top_k=20, and min_p=0.0 presence_penalty 在 0 到 2 之间(如果框架支持)以减少无尽的重复。

  • temperature = 0.6

  • top_k = 20

  • min_p = 0.00 (llama.cpp 的默认值为 0.1)

  • top_p = 0.95

  • presence_penalty = 0.0 到 2.0 (llama.cpp 的默认会关闭,但若要减少重复,你可以使用此设置)例如可尝试 1.0。

  • 原生支持最多 262,144 上下文,但你可以将其设为 32,768 令牌以减少内存使用

Llama.cpp:运行 Qwen3-Next-80B-A3B-Thinking 教程

  1. 获取最新的 llama.cppGitHub 这里arrow-up-right。你也可以按下面的构建说明操作。将 -DGGML_CUDA=ON 改为 -DGGML_CUDA=OFF 如果你没有 GPU 或者只想使用 CPU 推理。

  1. 你可以直接通过 Hugging Face 拉取:

  2. 通过以下方式下载模型(在安装 pip install huggingface_hub hf_transfer 之后)。你可以选择 UD_Q4_K_XL 或其他量化版本。

🛠️ 提升生成速度

如果你有更多显存,可以尝试卸载更多 MoE 层,或将整层卸载。

通常, -ot ".ffn_.*_exps.=CPU" 会将所有 MoE 层卸载到 CPU!这实际上允许你将所有非 MoE 层放到 1 块 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 发布版本arrow-up-right 还引入了高吞吐量模式。使用 llama-parallel。在 这里arrow-up-right可以了解更多信息。你也可以 例如将 KV 缓存量化到 4 位 以减少 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 缓存,但你需要 使用 Flash Attention 编译 llama.cpp 支持,方法是 -DGGML_CUDA_FA_ALL_QUANTS=ON,并使用 --flash-attn 来启用它。安装 Flash Attention 之后,你就可以使用 --cache-type-v q4_1

最后更新于

这有帮助吗?