8GB 显存能不能跑 35B 级别模型,关键不只看模型总参数量,还要看模型结构、量化格式和推理框架的调度方式。
这次案例的核心思路是:使用 Qwen3.6-35B-A3B 这类 MoE 模型的 GGUF 量化版本,再通过 llama.cpp 的 CUDA 加速、CPU Offload、MoE 参数调度和 KV Cache 量化,把显存压力分摊到 GPU 与内存之间。这样一来,RTX 3070 8GB 这类老显卡也有机会跑起 35B 级别的本地多模态模型。
需要先说明一点:这不是“8GB 显存完整装下 35B 模型”。更准确的理解是,显卡负责更适合 GPU 的计算部分,部分专家层和缓存压力由系统内存承担。实际体验会受到内存容量、CPU 性能、模型量化格式、上下文长度和参数设置影响。
测试环境
这类配置对内存比较敏感。参考环境如下:
- CPU:Intel Core i7-12700 级别
- GPU:NVIDIA RTX 3070 8GB
- 内存:64GB
- 系统:Windows 11
- 推理框架:llama.cpp CUDA 版本
- 模型格式:GGUF
如果只有 16GB 或 32GB 内存,也不是完全不能尝试,但 35B MoE 模型在加载和长上下文推理时更容易触发内存压力。想要稳定使用,64GB 内存会更稳。
为什么 8GB 显存也有机会跑 35B
Qwen3.6-35B-A3B 的关键点在于 MoE 架构。它的总参数规模是 35B,但每次推理并不是所有参数都同时激活,而是只激活其中一部分专家参数。
这会带来两个结果:
- 总模型文件仍然很大,需要足够磁盘和内存承载。
- 单次推理的活跃计算量低于完整 35B Dense 模型。
llama.cpp 的 CPU Offload 和 MoE 相关参数可以进一步降低显存门槛。GPU 主要承担注意力和部分高收益计算,CPU 与内存承担一部分专家层权重。代价是速度、响应延迟和稳定性会更依赖整机配置,而不是只看显卡型号。
准备 llama.cpp
Windows 用户可以直接下载 llama.cpp 的预编译 CUDA 版本。需要注意三点:
- 显卡驱动要足够新,CUDA 运行环境要和下载的 llama.cpp 包匹配。
- 下载后建议放在一个不含中文和特殊字符的路径下,方便批处理脚本调用。
- 模型文件统一放到
models目录,避免命令里写太长路径。
如果是 AMD、Intel 显卡或纯 CPU 环境,也可以选择 Vulkan、HIP、SYCL 或 CPU 版本,但参数和性能表现会不同。本文重点仍然是 NVIDIA 显卡上的 CUDA 路线。
下载模型和多模态投影文件
本次使用的模型是:
Qwen3.6-35B-A3B-UD-Q4_K_M.gguf
量化格式选择 Q4_K_M,主要是为了在精度、体积和速度之间取得平衡。显存较小的机器不建议一开始就尝试更高精度版本,否则加载失败或系统频繁换页的概率会明显上升。
如果要使用图片理解能力,还需要同时准备多模态投影文件,例如:
mmproj-BF16.gguf
这个文件非常重要。只下载主模型通常只能完成文本推理;如果缺少 mmproj,网页 UI 里可能看不到正常的图片上传能力,或者上传后无法完成视觉理解。
建议目录结构保持简单:
|
|
RTX 3070 8GB 启动参数
下面是一份面向 RTX 3070 8GB 的启动脚本示例。路径需要改成你自己的 llama.cpp 所在目录。
|
|
启动后在浏览器访问:
|
|
如果页面可以打开,并且模型能正常回复,就说明服务已经启动成功。首次加载模型可能会比较慢,期间不要急着重复运行多个实例,否则更容易把内存占满。
关键参数怎么理解
-ngl 99 表示尽量把可放到 GPU 的层放到显卡上。实际能放多少,取决于模型结构、量化格式和显存占用。
--n-cpu-moe 999 用来让 MoE 专家层更多走 CPU 侧,降低显存压力。它是这类小显存运行大 MoE 模型的关键参数之一。
--flash-attn on 开启 Flash Attention,有助于降低注意力计算的开销。是否可用取决于当前 llama.cpp 版本和显卡支持情况。
-c 32768 设置上下文长度。长上下文会显著增加 KV Cache 压力,如果启动失败或推理很慢,可以先降到 8192 或 16384。
--cache-type-k q4_0 和 --cache-type-v q4_0 用于量化 KV Cache,能节省内存和显存,但可能对输出质量和速度有轻微影响。
-b 512 与 -ub 128 控制批处理相关参数。小显存环境下,不要一开始就把批量参数设得太激进。
常见问题
如果启动时报显存不足,可以先降低上下文长度,例如把 -c 32768 改成 -c 8192,再尝试减小 -b 和 -ub。
如果图片上传按钮不可用,优先检查 --mmproj 路径是否正确,以及使用的 mmproj 是否和模型匹配。
如果模型加载后响应很慢,通常不是显卡完全没工作,而是大量权重或专家层由 CPU 与内存承担。可以观察任务管理器里的 GPU、CPU、内存和磁盘占用,判断瓶颈在哪里。
如果输出格式异常,确认是否启用了 --jinja,并检查当前模型是否需要对应聊天模板。
如果服务启动后浏览器打不开,检查 --host 和 --port 设置,确认 8080 端口没有被其他程序占用。
适合谁尝试
这套方案适合手上已有 RTX 3070、RTX 4060 Laptop、RTX 3060 8GB 这类 8GB 显存设备,但又想尝试更大 MoE 模型的用户。
它不适合追求极致速度的人。小显存运行 35B MoE 本质上是在用内存和 CPU 换显存门槛,能跑起来是一回事,是否足够流畅是另一回事。
如果目标是日常高频聊天,7B、8B、14B 模型可能更舒服。如果目标是体验更大 MoE 模型、多模态能力和本地部署边界,那么 RTX 3070 8GB 加 64GB 内存仍然有尝试价值。
小结
RTX 3070 8GB 能运行 Qwen3.6-35B-A3B 的关键,不是显存突然变大,而是 MoE 架构、GGUF 量化、llama.cpp CPU Offload 和 KV Cache 优化共同降低了门槛。
这类方案最值得关注的地方,是它让旧显卡仍然能参与本地大模型实验。只要接受速度和稳定性上的取舍,8GB 显存机器也可以成为本地 AI 模型测试平台,而不只是运行小模型的入门设备。