For the complete documentation index, see llms.txt. This page is also available as Markdown.

🌠Qwen3-Coder:如何在本地运行

使用 Unsloth Dynamic 量化在本地运行 Qwen3-Coder-30B-A3B-Instruct 和 480B-A35B。

Qwen3-Coder 是 Qwen 全新一系列编码智能体模型,提供 30B(Qwen3-Coder-Flash)和 480B 参数版本。 Qwen3-480B-A35B-Instruct 实现了业界顶尖(SOTA)的代码性能,可与 Claude Sonnet-4、GPT-4.1 以及 Kimi K2相媲美,在 Aider Polygot 上达到 61.8%,并支持 256K(可扩展至 1M)token 上下文。

我们还上传了带原生 1M 上下文长度 的 Qwen3-Coder,使用 YaRN 扩展,并提供全精度 8bit 和 16bit 版本。 Unsloth 现在还支持 Qwen3-Coder 的微调和 RL

运行 30B-A3B运行 480B-A35B

Qwen3 Coder - Unsloth Dynamic 2.0 GGUF:

Dynamic 2.0 GGUF(用于运行)
1M 上下文 Dynamic 2.0 GGUF

🖥️ 运行 Qwen3-Coder

下面是针对该 30B-A3B 以及 480B-A35B 模型变体

⚙️ 推荐设置

的指南。Qwen 对两个模型都推荐以下推理设置:

temperature=0.7, top_p=0.8, top_k=20, repetition_penalty=1.05

  • 温度 0.7

  • Top_K 20

  • Min_P 0.00(可选,但 0.01 也很好,llama.cpp 默认是 0.1)

  • Top_P 0.8

  • 重复惩罚 1.05

  • 聊天模板:

    <|im_start|>user
    嗨!<|im_end|>
    <|im_start|>assistant
    1+1 等于多少?<|im_end|>
    <|im_start|>user
    2<|im_end|>
    <|im_start|>assistant
  • 推荐上下文输出:65,536 个 token(可增加)。详情见这里。

带换行未渲染的聊天模板/提示格式

工具调用的聊天模板 (获取旧金山当前温度)。关于如何格式化工具调用的更多细节见这里。

提醒一下,这个模型只支持非思考模式,且不会在输出中生成 <think></think> 块。同时,指定 enable_thinking=False 已经不再需要。

运行 Qwen3-Coder-30B-A3B-Instruct:

要让我们的动态 4-bit 量化达到每秒 6+ token 的推理速度,至少需要 18GB 统一内存 (VRAM 与 RAM 合计)或者 18GB 系统 RAM 。一般来说,可用内存应当与所用模型大小相当或更大。例如,UD_Q8_K_XL 量化(全精度)大小为 32.5GB,至少需要 33GB 统一内存 (VRAM + RAM)或者 33GB RAM ,才能获得最佳性能。

注意: 模型可以在小于其总大小的内存上运行,但这会降低推理速度。只有在追求最快速度时才需要最大内存。

由于这是一个非思考模型,因此无需设置 thinking=False ,模型也不会生成 <think> </think> 块。

遵循 以上最佳实践。它们与 480B 模型相同。

🦙 Ollama:运行 Qwen3-Coder-30B-A3B-Instruct 教程

  1. 安装 ollama 如果你还没安装的话!你只能运行最大 32B 的模型。

  1. 运行模型!注意如果失败,你可以在 ollama serve另一个终端里调用。我们将所有修复和建议参数(温度等)都包含在 params 中,位于我们的 Hugging Face 上传里!

Llama.cpp:运行 Qwen3-Coder-30B-A3B-Instruct 教程

  1. 获取最新的 llama.cpp 默认开启 GitHub 仓库。你也可以按照下面的构建说明进行。将 -DGGML_CUDA=ON-DGGML_CUDA=OFF 改为适用于没有 GPU 或只想进行 CPU 推理的情况。 对于 Apple Mac / Metal 设备,设置 -DGGML_CUDA=OFF 然后照常继续——Metal 支持默认开启。

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

  2. 下载模型(安装 pip install huggingface_hub hf_transfer 之后)。你可以选择 UD_Q4_K_XL 或其他量化版本。如果下载卡住,请参见 Hugging Face Hub,XET 调试

运行 Qwen3-Coder-480B-A35B-Instruct:

要让我们的 1-bit 量化达到每秒 6+ token 的推理速度,我们建议至少使用 150GB 统一内存 (VRAM 与 RAM 合计)或者 150GB 系统 RAM 。一般来说,可用内存应当与所用模型大小相当或更大。例如,Q2_K_XL 量化大小为 180GB,至少需要 180GB 统一内存 (VRAM + RAM)或者 180GB RAM ,才能获得最佳性能。

注意: 模型可以在小于其总大小的内存上运行,但这会降低推理速度。只有在追求最快速度时才需要最大内存。

遵循 以上最佳实践。它们与 30B 模型相同。

📖 Llama.cpp:运行 Qwen3-Coder-480B-A35B-Instruct 教程

对于 Coder-480B-A35B,我们将专门使用 Llama.cpp 进行优化推理,并提供丰富的选项。

  1. 获取最新的 llama.cpp 默认开启 GitHub 仓库。你也可以按照下面的构建说明进行。将 -DGGML_CUDA=ON-DGGML_CUDA=OFF 改为适用于没有 GPU 或只想进行 CPU 推理的情况。

  2. 你可以直接使用 llama.cpp 下载模型,但我通常建议使用 huggingface_hub 。直接使用 llama.cpp 的话,请执行:

  3. 或者,通过(安装 pip install huggingface_hub hf_transfer 之后)下载模型。你可以选择 UD-Q2_K_XL,或其他量化版本。

  4. 以对话模式运行模型并尝试任意提示词。

  5. 编辑 --threads -1 用于 CPU 线程数, --ctx-size 262114 用于上下文长度, --n-gpu-layers 99 用于将多少层卸载到 GPU。如果 GPU 显存不足,请尝试调整它。如果你只做 CPU 推理,也请将其移除。

🛠️ 提升生成速度

如果你有更多 VRAM,可以尝试卸载更多 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 还引入了高吞吐模式。使用 llama-parallel。阅读更多关于它的内容 这里。你也可以 将 KV cache 量化为 4bit ,例如减少 VRAM/RAM 之间的数据移动,这也能让生成过程更快。

📐如何适配长上下文(256K 到 1M)

要适配更长上下文,你可以使用 KV 缓存量化 将 K 和 V cache 量化到更低比特。这也能因为减少 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

你也可以量化 V cache,但你需要 使用 Flash Attention 编译 llama.cpp ,通过 -DGGML_CUDA_FA_ALL_QUANTS=ON,并使用 --flash-attn 来启用它。

我们还通过 YaRN scaling 上传了 100 万上下文长度的 GGUF 这里.

🧰 工具调用修复

我们已经成功通过 llama.cpp --jinja 修复了工具调用,专门用于通过 llama-server提供服务!如果你下载的是我们的 30B-A3B 量化版本,无需担心,因为这些版本已经包含我们的修复。对于 480B-A35B 模型,请:

  1. 从 https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/tree/main/UD-Q2_K_XL 下载第一个文件(UD-Q2_K_XL),并替换你当前的文件

  2. 使用 snapshot_download ,就像 https://docs.unsloth.ai/basics/qwen3-coder-how-to-run-locally#llama.cpp-run-qwen3-tutorial 中所示,它会自动覆盖旧文件

  3. 通过以下方式使用新的聊天模板 --chat-template-file。见 GGUF 聊天模板chat_template.jinja

  4. 另外,我们还在 https://huggingface.co/unsloth/Qwen3-Coder-480B-A35B-Instruct-GGUF/blob/main/Qwen3-Coder-480B-A35B-Instruct-UD-IQ1_M.gguf 提供了一个单独的 150GB UD-IQ1_M 文件(这样 Ollama 也能工作)

这应该能解决诸如以下问题:https://github.com/ggml-org/llama.cpp/issues/14915

使用工具调用

为了格式化用于工具调用的提示词,我们用一个示例来展示。

我创建了一个名为 get_current_temperature 的 Python 函数,它应该获取某个地点的当前温度。现在我们创建了一个占位函数,它总是返回 21.6 摄氏度。你应该把它改成真正的函数!!

然后使用 tokenizer 创建完整提示词:

💡性能基准

这些官方基准测试针对完整 BF16 检查点。要使用它,只需使用我们上传的 Q8_K_XL、Q8_0、BF16 检查点——这些版本同样也可以使用 MoE 卸载等技巧!

以下是 480B 模型的基准结果:

智能体编程

基准
Qwen3‑Coder 480B‑A35B‑Instruct
Kimi‑K2
DeepSeek‑V3-0324
Claude 4 Sonnet
GPT‑4.1

Terminal‑Bench

37.5

30.0

2.5

35.5

25.3

SWE‑bench Verified 配合 OpenHands (500 轮)

69.6

70.4

SWE‑bench Verified 配合 OpenHands (100 轮)

67.0

65.4

38.8

68.0

48.6

SWE‑bench Verified 配合 Private Scaffolding

65.8

72.7

63.8

SWE‑bench Live

26.3

22.3

13.0

27.7

SWE‑bench Multilingual

54.7

47.3

13.0

53.3

31.5

Multi‑SWE‑bench mini

25.8

19.8

7.5

24.8

Multi‑SWE‑bench flash

27.0

20.7

25.0

Aider‑Polyglot

61.8

60.0

56.9

56.4

52.4

Spider2

31.1

25.2

12.8

31.1

16.5

智能体浏览器使用

基准
Qwen3‑Coder 480B‑A35B‑Instruct
Kimi‑K2
DeepSeek‑V3 0324
Claude Sonnet‑4
GPT‑4.1

WebArena

49.9

47.4

40.0

51.1

44.3

Mind2Web

55.8

42.7

36.0

47.4

49.6

智能体工具使用

基准
Qwen3‑Coder 480B‑A35B‑Instruct
Kimi‑K2
DeepSeek‑V3 0324
Claude Sonnet‑4
GPT‑4.1

BFCL‑v3

68.7

65.2

56.9

73.3

62.9

TAU‑Bench 零售

77.5

70.7

59.1

80.5

TAU‑Bench 航空

60.0

53.5

40.0

60.0

最后更新于

这有帮助吗?