12GB 显卡跑 35B 大模型不是梦:MTP 技术让 Qwen 35B A3B 飙到 80 tok/s
12GB 显卡跑 35B 大模型不是梦:MTP 技术让 Qwen 35B A3B 飙到 80 tok/s
小新软件平替你有没有想过,一张 12GB 显存的 RTX 4070 Super 就能跑 35B 参数的大模型,而且还能达到 80 tok/s 的生成速度、128K 的超长上下文?这不是理论数据,而是 Reddit 用户 janvitos 在 r/LocalLLaMA 上实测的结果(帖子获得 667+ 赞)。
核心原理:通过 MTP(Multi-Token Prediction,多令牌预测)技术,llama.cpp 可以在每次推理时预测多个 token,大幅提升生成速度。配合 CPU offloading(
-fitt参数),12GB 显卡可以同时加载 35B 模型的主体 + MTP 草稿模型 + KV 缓存,实现 80%+ 的草稿接受率。
前提条件
硬件要求
| 组件 | 原帖配置 | 最低建议 |
|---|---|---|
| GPU | RTX 4070 Super 12GB | 8GB VRAM(性能会降低) |
| CPU | AMD Ryzen 7 9700X | 任意 8 核以上 |
| 内存 | 48GB DDR5-6000 | 32GB DDR4/DDR5 |
| 系统 | CachyOS(强烈推荐) | Windows / Linux / macOS 均可 |
💡 关键技巧:原帖作者将显示器接在 iGPU(核显)上,独显不负责显示输出,这样 12GB VRAM 全部可用于推理。如果你的独显是主显卡,需要预留一部分 VRAM 给显示,
-fitt值可能需要调大。
软件要求
- llama.cpp:最新版本(2026-05-19 起 MTP 支持已合并到 master 分支,直接下载 最新 release 即可)
- 模型文件:Qwen3.6-35B-A3B-MTP-GGUF(Unsloth UD XL 量化 + MTP 层)
概述
整个配置的核心思路是:
- MTP 技术:让模型在每次推理时预测多个 token,而非逐个生成
- CPU Offloading:模型主体太大无法完全放入 12GB VRAM,部分层卸载到 CPU
-fitt参数:精确控制 GPU 上保留多少空间给 MTP 草稿模型和 KV 缓存- iGPU 显示:独显不负责显示,VRAM 全部用于推理
第一步:下载 llama.cpp
MTP 支持已于 2026-05-19 合并到 llama.cpp master 分支,直接下载最新 release 即可,无需手动编译。
前往 llama.cpp Releases 下载最新版本,根据你的硬件选择对应的后端:
- NVIDIA 显卡:下载
cuda-12或cuda-13版本 - AMD 显卡:下载
rocm版本 - Intel 显卡 / 纯 CPU:下载
vulkan版本 - macOS:下载
apple版本
第二步:下载模型
1 | # 安装 huggingface-cli(如果没有) |
可用量化版本:
| 量化 | 文件大小 | 说明 |
|---|---|---|
| Q2_K_XL | 12.3 GB | 最小,质量有损 |
| Q3_K_XL | 16.5 GB | 较小 |
| Q4_K_XL | 21.7 GB | 推荐,平衡 |
| Q5_K_XL | 25.6 GB | 较高质量 |
| Q6_K_XL | 30.5 GB | 高质量 |
| Q8_K_XL | 36.6 GB | 最高质量 |
💡 提示:虽然 Q4_K_XL 文件有 21.7GB,但通过
-fitt参数,只有部分层在 GPU 上运行,其余在 CPU 上运行,因此 12GB VRAM 完全够用。
第三步:启动 llama-server
原帖完整命令(RTX 4070 Super 12GB)
1 | llama-server \ |
关键参数解析
| 参数 | 值 | 说明 |
|---|---|---|
-fitt |
1536 | 最关键参数。指定在 GPU 上保留多少 MB 空间给 MTP 草稿模型和 KV 缓存。1536 = 1.5GB |
-c |
131072 | 上下文长度 128K tokens |
-n |
32768 | 最大生成长度 32K tokens |
-fa |
on | 启用 Flash Attention |
-ctk / -ctv |
q8_0 | KV 缓存键值使用 Q8 量化 |
-ctkd / -ctvd |
q8_0 | MTP 草稿模型的 KV 缓存也用 Q8 量化 |
-ctxcp |
64 | 上下文计算精度 |
--spec-type |
draft-mtp | 启用 MTP 草稿模型 |
--spec-draft-n-max |
2 | 每次最多预测 2 个额外 token |
--no-mmap |
— | 禁用内存映射,提高稳定性 |
--mlock |
— | 锁定内存防止换出 |
💡
-fitt调优:如果你的独显是主显卡(负责显示输出),1536 可能太小,导致 VRAM 不够。建议先试 2048 或 2560,逐步降低找到最佳值。
第四步:理解 MTP 的工作原理
什么是 MTP?
MTP(Multi-Token Prediction)是 Qwen3.6 模型的特殊功能。普通模型每次只预测一个 token,而 MTP 模型在每次推理时会同时预测多个 token。
为什么能加速?
llama.cpp 利用 MTP 草稿模型进行投机解码(Speculative Decoding):
- MTP 草稿模型快速预测 2-3 个 token
- 主模型验证这些预测是否正确
- 正确的预测直接接受,错误的从头生成
- 由于草稿接受率高达 80%+,实际速度大幅提升
--spec-draft-n-max 的取舍
| 值 | 速度 | 接受率 | 说明 |
|---|---|---|---|
| 2 | 较快 | 更高 | 推荐,最佳平衡点 |
| 3 | 略快 | 较低 | 接受率下降,整体收益不大 |
第五步:运行基准测试
使用官方 MTP 基准测试脚本验证性能:
1 | # 下载基准测试脚本 |
原帖基准测试结果
| 任务 | 预测 token | 草稿 token | 接受 token | 接受率 | 速度 (tok/s) |
|---|---|---|---|---|---|
| code_python | 192 | 132 | 125 | 94.7% | 80.8 |
| code_cpp | 58 | 40 | 37 | 92.5% | 81.8 |
| explain_concept | 192 | 152 | 114 | 75.0% | 70.0 |
| summarize | 53 | 40 | 32 | 80.0% | 75.4 |
| qa_factual | 192 | 144 | 119 | 82.6% | 77.8 |
| translation | 22 | 16 | 13 | 81.2% | 81.9 |
| creative_short | 192 | 160 | 111 | 69.4% | 69.2 |
| stepwise_math | 192 | 144 | 119 | 82.6% | 76.5 |
| long_code_review | 192 | 148 | 117 | 79.0% | 73.2 |
平均速度约 76 tok/s,代码类任务最高可达 81.8 tok/s。
Windows 环境测试结果(来自评论区)
以下数据来自 Reddit 评论区的社区用户实测:
RTX 3060 12GB + R5 5600 + 32GB RAM(Windows)
| 任务 | 接受率 | 速度 (tok/s) |
|---|---|---|
| code_python | 78.4% | 40.3 |
| code_cpp | 92.5% | 49.3 |
| explain_concept | 78.4% | 41.6 |
| summarize | 80.0% | 44.4 |
| qa_factual | 82.6% | 45.6 |
| stepwise_math | 88.4% | 46.7 |
| long_code_review | 80.8% | 43.5 |
来源:Reddit 用户 ItsRektTime
RTX 3060 12GB + Ryzen 9 5950X + 40GB RAM(Windows 11 Pro)
| 任务 | 接受率 | 速度 (tok/s) |
|---|---|---|
| code_python | 88.5% | 38.9 |
| code_cpp | 72.8% | 35.0 |
| explain_concept | 67.7% | 33.7 |
| qa_factual | 72.8% | 35.2 |
| stepwise_math | 76.4% | 35.8 |
来源:Reddit 用户 RaspNAS(使用 Q3_K_XL 量化)
RTX 5060 Ti 16GB(Windows 11)
- 无 MTP:约 55 tok/s
- 有 MTP:约 66 tok/s
- MTP 提升约 +15%
来源:Reddit 用户 the_masel
常见问题(FAQ)
Q: 8GB 显卡能跑吗?
A: 理论上可以,但需要更激进的 CPU offloading。-fitt 值需要调大(如 3000+),速度会明显下降。Reddit 评论中有用户尝试在 RTX 3060 6GB 笔记本上运行,但需要进一步调优。
Q: Windows 支持吗?
A: 支持。使用 Vulkan 后端或 CUDA 后端均可。Docker 方式在 Windows 上也可用(需安装 WSL2 + Docker Desktop)。
Q: MTP 会影响输出质量吗?
A: 不会。MTP 只影响生成速度,不影响模型本身的输出质量。草稿模型的预测会被主模型验证,错误的预测会被修正。
Q: 128K 上下文的实际体验如何?
A: 原帖作者设置了 128K 上下文(-c 131072),但实际使用中 32K 是最佳性价比区间。超过 32K 后,部分用户报告质量有所下降(Qwen3 从 95% 降至 75%),但这取决于具体任务。
Q: 需要 CachyOS 吗?
A: 不是必须的,但原帖作者强烈推荐。CachyOS 是一个针对性能优化的 Arch Linux 衍生版,对本地推理有明显的性能提升。
Q: 和普通 llama.cpp(无 MTP)相比快多少?
A: 根据评论区用户反馈,MTP 大约提升 15-30% 的 tok/s。一位使用 RTX 5060 Ti 16GB 的用户报告:无 MTP 约 55 tok/s,有 MTP 约 66 tok/s。
进阶技巧
1. 调整 -fitt 以适配不同显卡
1 | # RTX 4070 Super(独显不显示):1536 |
2. 降低上下文以提升速度
如果不需要 128K 上下文,减小 -c 可以释放更多 VRAM 给推理:
1 | # 32K 上下文(推荐日常使用) |
3. 使用 --models-preset 简化配置
创建配置文件避免每次输入长命令:
1 | # models/qwen35b-mtp.yaml |
⚠️ 注意:评论区有用户报告
--models-preset模式下 mtp-bench.py 会报 400 错误。如果遇到这个问题,改用命令行直接传参。
总结
通过本教程,你已经掌握了在 12GB 显卡上运行 Qwen3.6 35B A3B 的完整流程:
- ✅ 构建带 MTP 支持的 llama.cpp(或使用 Docker 预构建镜像)
- ✅ 下载 MTP 量化模型
- ✅ 理解
-fitt参数的核心作用 - ✅ 启动 llama-server 并运行基准测试
- ✅ 掌握
-fitt调优和上下文调整技巧
MTP 技术是本地推理的一个重要突破——它让 12GB 显卡也能流畅运行 35B 参数的大模型,速度达到 80 tok/s,上下文长度 128K。对于没有 24GB+ 显卡的用户来说,这是目前最佳的性价比方案。
📖 原帖:Reddit r/LocalLLaMA
📦 模型下载:HuggingFace
🔧 MTP PR:llama.cpp #22673
📊 基准测试:mtp-bench.py





