12GB 显存跑起 35B MoE:Qwen3.6 正在改写本地 Agent 入场券

125 阅读10分钟

最近本地大模型圈有个帖子挺抓眼球:

有人用 RTX 3060 12GB 跑起了 Qwen3.6-35B-A3B

乍一看,这句话很像硬件玄学:一张几年前的消费级显卡,怎么突然能碰 35B 模型了?

但这里面真正值得聊的,不是“RTX 3060 一夜封神”,而是本地 AI 的门槛正在被一整套工程手段往下压:MoE 架构、GGUF 量化、CPU/GPU 混合 offload、KV cache 调参,再加上 MTP 这类推理优化。

换句话说,这不是老显卡突然变强了。

是模型和推理栈开始更会“过日子”了。

先看这次到底跑出了什么

这次最核心的案例来自 Reddit r/LocalLLaMA。

一位用户给出的配置是:

  • GPU: RTX 3060 12GB
  • 内存: 32GB DDR4-3200
  • 系统:Windows
  • CUDA:13.x
  • 模型:Qwen3.6-35B-A3B-MTP-IQ4_XS.gguf
  • 框架:llama.cpp

作者的结论很直接:12GB VRAM 对这个模型来说,是一个 practical size。

原因在于,它能让足够多的 MoE blocks 留在 GPU 上,同时还留出 16k / 32k 这种日常 coding agent 会真正用到的上下文空间。

原帖里有一组 llama-bench 数据:

  • -ncmoe 18
  • pp512: ~914 t/s
  • tg128: ~46.8 t/s

简单说,pp512 更接近 prompt processing,也就是模型读输入的速度;tg128 更接近生成速度。

这组数字不该被理解成官方基准,但它至少说明一件事:这不是“勉强点亮模型”的级别,而是已经进入了可以认真调参、认真试用的区间。

同一天,另一个帖子更激进。

有人用 RTX 4070 Super 12GB ,配合最新 llama.cpp 和 MTP PR,跑 Qwen3.6-35B-A3B,标题里直接写了 128K context80 tok/s+

搜索结果片段里能看到其中一项 benchmark:code_cpp ... rate=0.925 tok/s=81.8。也就是说,这个测试里的 draft token 接受率约 92.5% ,生成速度约 81.8 tok/s

两个案例的硬件、系统、模型量化版本都不一样,不能粗暴放在一张表里比。

但它们共同指向了一个趋势:12GB 显存不再只是 7B、8B、14B 模型的舒适区,它开始摸到 35B MoE 的门槛。

35B 为什么能和 12GB 扯上关系?

MoE、量化、offload 与 MTP 如何共同压低本地推理门槛 MoE、量化、offload 与 MTP 如何共同压低本地推理门槛

这里最容易误会的一点是:

不是把一个完整的 35B dense 模型,以 BF16 精度,硬塞进 12GB 显存。

如果有人这么写,那基本可以直接拉进“标题党观察名单”。

Qwen3.6-35B-A3B 是 MoE,也就是 Mixture-of-Experts。官方模型卡里写得很清楚:它有 35B total parameters ,但每个 token 大约只激活 3B parameters

35B total 与 3B active 的 MoE 稀疏激活示意 35B total 与 3B active 的 MoE 稀疏激活示意

这就像一个公司名义上有 35B 人才库,但每次项目开会只叫来其中一小组专家。

总规模很大,实际每一步参与计算的人没那么多。

这就是 A3B 的意义。

再往下看,社区跑的也不是原始大模型,而是 GGUF 量化版本,比如 IQ4_XS、UD-Q4_K_XL 这类低比特权重。量化会牺牲一部分精度和稳定性,但能显著降低内存占用。

最后是 offload。

llama.cpp 可以把部分权重和 MoE blocks 放到 CPU / 系统内存侧处理,把更吃速度的部分尽量留给 GPU。原帖里反复出现的 -ncmoe,控制的正是这类 MoE 分配策略。

所以,12GB 能跑起来,不是某一个参数创造奇迹。

它更像是把一辆小车的后备箱、后座、车顶行李架都用上了:不优雅,但能装;不豪华,但能出发。

这件事为什么和 Agent 有关?

Qwen3.6-35B-A3B 不是一个单纯“陪你聊天”的模型。

官方介绍里,它的重点就是 agentic coding 、工具调用、仓库级推理和更稳定的开发者体验。

几个关键参数也能看出它的方向:

  • 总参数: 35B
  • 激活参数: 3B
  • MoE: 256 experts ,每次激活 8 routed + 1 shared
  • 原生上下文: 262,144 tokens
  • 可扩展上下文:最高 1,010,000 tokens
  • MTP:trained with multi-steps
  • License:Apache-2.0

官方 benchmark 里,它在一些 coding / agent 相关测试上也挺能打:

  • SWE-bench Verified: 73.4
  • SWE-bench Pro: 49.5
  • Terminal-Bench 2.0: 51.5
  • Claw-Eval Avg: 68.7

当然,官方 benchmark 和社区 12GB 显卡测试不是一回事。

官方测试通常有更标准的推理环境、更大的上下文、更完整的 serving 配置;社区测试则更像“我手里这台机器,能不能把它跑起来并且能用”。

但正因为这样,这两个视角放在一起才有意思。

如果一个面向 coding agent 的 35B MoE 模型,开始能在 RTX 3060 这类消费级显卡上跑出 32k coding profile ,那它对普通开发者就不只是一个展示模型。

它开始接近一种很现实的工具:把代码、文档、私有项目留在本地,让模型在自己的机器上处理一部分任务。

MTP 在这里扮演什么角色?

这次资料里还出现了 MTP,也就是 Multi-Token Prediction。

它可以粗略理解成:模型不是每次只猜一个 token,而是先多猜几个,再让主模型检查。猜得准,就少走几步;猜不准,再回到正常生成。

Qwen3.6-35B-A3B 官方写明支持 multi-step MTP。社区里也有人把 MTP layers graft 到 Unsloth Dynamic 2.0 XL 量化版本上,并且把这些 draft heads 用 Q8_0 精度保存。

原因很实际:MTP heads 相对基础模型很小,用 Q8_0 的额外体积不算夸张,但能尽量保持 draft 质量。

不过,这里也不能写得太轻松。

要在 llama.cpp 里跑这类 MTP GGUF,并不是下载模型就万事大吉。资料里明确提到,需要自编译 llama.cpp,并合入 PR #22673 的 MTP/speculative decoding 支持。

这就意味着,现阶段 MTP 更像给动手能力强的玩家准备的改装件。

它能提速,但也会把门槛从“会下载模型”提高到“会编译、会看报错、会处理依赖”。

会折腾的人很兴奋。

普通用户可能刚打开终端就开始怀疑人生。

12GB 的价值,不是性能天花板,而是心理门槛

12GB、24GB、48GB 本地 Agent 体验门槛对比 12GB、24GB、48GB 本地 Agent 体验门槛对比

为什么这件事值得单独写?

因为 12GB 是一个非常现实的数字。

24GB 显卡当然更舒服。48GB 专业卡当然更像正经本地工作站。多卡方案更不用说,预算和电费都很有存在感。

但对大量普通开发者来说,12GB 才是更常见的硬件现实。

RTX 3060 12GB、RTX 4070 Super 12GB,这些不是数据中心里的稀有装备,而是很多人真的买过、用过,甚至现在还插在电脑里的显卡。

如果这些卡开始能跑一个 35B-A3B 级别的 coding model,哪怕需要量化,哪怕需要 offload,哪怕需要花时间调参,它都会改变一件事:

本地 Agent 不再天然等于“你先去买张 4090”。

这不意味着 12GB 会替代 24GB 或 48GB。

它更像一个心理门槛被推开了。

以前很多人会觉得,本地 Agent 离自己太远;现在可能会开始想:我这张老卡,是不是也能先跑一个能用的版本?

这个变化,比单纯多跑出几十 tok/s 更有传播价值。

冷水也得提前泼

这类消息最容易被写过头,所以边界必须说清楚。

第一,这些是社区测试,不是官方 benchmark。

Reddit 上的数字很有参考价值,但硬件、系统、驱动、量化版本、上下文长度、参数设置都会影响结果。换一台机器,结果可能完全不同。

第二,12GB 跑 35B-A3B,靠的是 MoE、量化和 offload。

它不是完整 BF16 权重全放进显存,更不是所有任务都能跑得又快又稳。

第三,128K context 这个数字要谨慎看。

标题里写 128K 很刺激,但 Agent 真正工作时,关键不是“能不能设到 128K”,而是长上下文下的速度、稳定性、工具调用格式、循环输出和尾延迟。

第四,MTP 还有明显工程门槛。

目前很多玩法需要特定 GGUF、自编译 llama.cpp,甚至跟进尚未完全进入主线的 PR。普通用户想开箱即用,还得等工具链继续成熟。

第五,低比特量化和 CUDA 版本也可能踩坑。

有 GGUF 指南提到,CUDA 13.2 在低比特推理上曾出现问题,遇到乱码可能需要回退到 CUDA 13.1。原帖写的是 CUDA 13.x,所以这里不能简单说“CUDA 13 都稳定”。

所以,更准确的说法是:

12GB 显卡开始能碰到 35B MoE 的可用边界,但这条边界还很依赖折腾能力。

本地 Agent 的竞争正在换题

过去聊本地模型,大家经常只问三件事:

显存够不够?

速度快不快?

成本省不省?

这些问题当然还重要,但现在更关键的问题变成了:一套本地推理栈,能不能在有限硬件上做出合理取舍。

模型端有 MoE 和 MTP。

量化端有 GGUF、UD、IQ 这些不同路线。

框架端有 llama.cpp、vLLM、SGLang、KTransformers。

硬件端则不再只是“买更贵的卡”,而是研究怎么把有限显存、系统内存、CPU 和 KV cache 配合起来。

这其实是本地 AI 走向实用的必经阶段。

真正让普通人用起来的技术,往往不是单点性能最强,而是能在普通设备上做出足够好的体验。

12GB 跑 Qwen3.6-35B-A3B,距离“人人本地超级 Agent”还很远。

但它已经把问题从“完全不可能”,推进到了“如果愿意折腾,好像可以试试”。

这一步很小,但方向很重要。

最后说句人话

RTX 3060 跑 Qwen3.6-35B-A3B,不代表老显卡突然变成了 H100。

也不代表本地模型马上能替代云端最强模型。

它更像一个信号:本地 Agent 的入场券,正在从高端工作站慢慢往普通开发者电脑里挪。

如果你有 24GB 或 48GB 显卡,体验当然会更舒服。

但如果一张 12GB 显卡也能跑起一个还不错的本地 coding model,很多人就会重新想一个问题:

哪些任务必须发到云端?

哪些任务其实可以留在自己电脑里慢慢做?

这个问题,可能才是 Qwen3.6-35B-A3B 这波社区测试真正有意思的地方。

原文与参考链接

  • Reddit:Qwen 35B-A3B is very usable with 12GB of VRAM

www.reddit.com/r/LocalLLaM…

  • Reddit:80 tok/sec and 128K context on 12GB VRAM with Qwen3.6 35B A3B and llama.cpp MTP

www.reddit.com/r/LocalLLaM…

  • Qwen3.6-35B-A3B Hugging Face

huggingface.co/Qwen/Qwen3.…

  • Qwen3.6-35B-A3B-MTP-GGUF

huggingface.co/havenoammo/…

  • llama.cpp MTP PR #22673

github.com/ggml-org/ll…