> 调研日期:2026-07-13 > 范围:开源(含 Apache-2.0 / MIT / 社区量化)大语言模型,目标硬件为 12GB 显存 GPU(如 RTX 3060 12GB / RTX 4070 / RTX 5070),允许”部分权重卸载至 CPU 内存”的混合推理。 > 核心结论先抛:12GB 是”7B–14B 全量上 GPU、20B–32B 需卸载”的分水岭。
—
〇、总纲:显存到底被谁吃了?
常人之误,以为”模型文件多大,显存就占多大”。大谬。推理时显存三项并吞:
| 占用项 | 说明 | 可否压缩 |
|---|---|---|
| 权重(weights) | 模型本体参数,量化后为主力开销 | 靠量化(Q8→Q4→Q2) |
| KV 缓存 | 随上下文长度线性增长,"长对话"才是真杀手 | 靠 KV 量化(q8_0)、缩短上下文 |
| 运行时开销 | CUDA context、激活值临时缓冲,约 0.8–1.2GB | 基本固定 |
故同一模型,开 4K 上下文与开 32K 上下文,显存可差数 GB。量化(GGUF 格式 Q系列)是 12GB 档的命门——它把 16bit 权重压到 4bit,体积约缩至 1/4,质量损失 Q4_K_M 仅约 8%、Q5_K_M 仅约 5%。
—
一、能在 12GB 跑的开源模型清单(按”适配程度”分四档)
第一档:全量驻留 GPU(无需卸载,体验最佳)
| 模型 | 参数量 | Q4 量化体积 | 12GB 适配 | 擅长 |
|---|---|---|---|---|
| Qwen2.5 / Qwen3 7B–8B | 7–8B | ~4.9–6.1 GB | ✅ 宽松 | 中文、通用、代码(Qwen3 强) |
| Llama 3.1 / 3.3 8B | 8B | ~5.5–6.1 GB | ✅ 宽松 | 生态最大、128K 上下文 |
| Gemma 3 / 4 4B–12B | 4–12B | 4B≈2.6GB;12B≈6.6GB(int4) / 7GB(Q4) | ✅ 宽松(12B 甚至 8GB 卡可跑) | 多模态(图+文)、四语均衡 |
| Mistral 7B / Mistral NeMo 12B | 7–12B | ~8 GB(Q4) | ✅ NeMo 12B 为此档定制 | 推理强、128K 上下文 |
| Phi-4 14B | 14B | ~8 GB(Q4) | ✅ | 小模型性能王、结构化任务、速度快 |
| DeepSeek-R1-Distill 7B(Qwen 基座) | 7B | ~4.9–5.4 GB | ✅ 宽松 | 推理/数学(蒸馏自 R1) |
| Qwen2.5-Coder 7B / 14B | 7–14B | 14B≈10.2GB | ✅ 14B 偏紧 | 代码生成 |
> 关键新知:Gemma 3 / Gemma 4 的 QAT(量化感知训练)版 是 12GB 档的宝藏。谷歌在训练阶段就让模型”习惯低精度”,故 int4 版质量近乎不损:Gemma 3 12B 从 BF16 的 24GB 骤降至 6.6GB,8GB 笔记本卡即可跑;Gemma 4 12B 的 Q4_K_M 约 7GB、Q5_K_M 约 8.5GB。
第二档:卡在边界、需微量卸载(”差一口气”型)
| 模型 | Q4 体积 | 与 12GB 关系 | 表现 |
|---|---|---|---|
| DeepSeek-R1-Distill 14B(Qwen 基座) | ~10.2–12.3 GB | 12.3GB 略超 12GB,需 ~0.3GB 卸载到内存 | ~19–28 tok/s,推理最强档 |
| Gemma 4 12B Q8_0 | ~12.7 GB | 需 16GB,12GB 下须卸载 | 近无损但慢 |
> 实测:DeepSeek-R1 14B 在 RTX 3060 12GB 上跑 Q4_K_M,约 10–11% 权重溢出到系统内存,仍能 20 tok/s 左右可用,是”12GB 性价比甜点”——花 200 元二手卡即得 AIME 69.7% / MATH-500 93.9% 的推理力。
第三档:重度卸载(能跑但慢,5–10 tok/s)
| 模型 | Q4 体积 | 卸载比例 | 表现 |
|---|---|---|---|
| GPT-OSS 20B(OpenAI 开源) | Q2_K ~11GB | ~28 层上 GPU,余下交 CPU | 可用,编码/推理尚可 |
| Qwen3 MoE 30B-A3B | Q4 ~18GB | 大量层卸载 | 4–6 tok/s,慢但能对话 |
| DeepSeek-R1-Distill 32B | ~22–23 GB | 重度卸载 | 4–6 tok/s,"能跑勿用" |
第四档:基本别想(除非 48GB+ 或纯 CPU 龟速)
– Llama 3.3 / 4 70B:Q4 ~42GB,单 12GB 卡需 ~90% 卸载,<2 tok/s。 – DeepSeek-V3(671B MoE):最激进 1-bit 量化仍需 170GB,纯属云端物。 – Qwen3.6 35B-A3B:Q4_K_M ~19GB,需 24GB 才舒服。
—
二、横向比较分析(聚焦 12GB 实用维度)
维度一:中文能力
Qwen 家族(2.5 / 3 / 3.6)碾压。Qwen3 在中文任务近乎霸榜开源界;相较之下 Llama、Mistral、Gemma 中文弱一截。若步子哥以中文为主业,Qwen3 7B/14B 是默认答案。
维度二:推理 / 数学(”会想”的模型)
DeepSeek-R1 蒸馏系为王。14B 蒸馏版在 12GB 上即可获得接近闭源中级推理力,且支持”思考链”——但注意思考 token 会让输出变长 2–5 倍,需把上下文调到 16K+(Ollama 默认仅 4K,不够)。
维度三:代码
Qwen2.5-Coder 14B / 32B(32B 需卸载)、DeepSeek-R1 14B、DeepSeek-Coder-V2-Lite 16B(MoE 仅 2.4B 激活,8GB 卡可跑)。社区共识:Qwen2.5-Coder 32B 已超越老版 DeepSeek-Coder-V2。
维度四:多模态(图文)
Gemma 3 / 4 原生支持图片理解,且 12B 版塞得进 12GB,是”既要聊天又要看图”的最优解。
维度五:速度与体感
规律:模型越小、量化越狠,tok/s 越高。7B Q4 在 12GB 卡上常达 50–70 tok/s(流畅如流水);14B Q4 约 20–35 tok/s(舒适);一旦进入”卸载区”(20B+),速度断崖至个位数,体感如拨号上网。
—
三、核心问题:Ollama 支持”部分 GPU + 部分 CPU”推理吗?
答:不仅支持,且是其默认行为之一。 此即术语所称 split inference(混合推理 / 分层卸载)。
原理
Ollama 底层封装 llama.cpp 推理引擎。它按”层(layer)”切分模型: – 把尽可能多的层塞进 VRAM(快); – 塞不下的层留在系统 RAM,由 CPU 算(慢); – 每个 token 生成时,数据在 GPU 层与 CPU 层之间经 PCIe 总线来回搬运。
分层,而非把单层劈两半——这是理解卸载的关键。
自动模式(开箱即用)
Ollama 启动时会自动探测 VRAM,尽量多装层到 GPU,余下交 CPU。工程上有个经验阈值:当显存占用逼近约 85% 时,调度器主动开始把部分层挪向内存,避免在推理中途 OOM 崩溃(CUDA out of memory)。故你 ollama run deepseek-r1:14b 时,它大概率自动跑成”约 90% GPU + 10% 内存”的混合态——你什么都不用配。
验证之法:
ollama ps
看 %GPU 列:0% = 全 CPU;100% = 全 GPU;中间值 = 混合
手动模式(精细调参)
若自动探测失准(偶有”静默回退纯 CPU”的坑),可强行指定层:
法一:Modelfile 固化
FROM deepseek-r1:14b PARAMETER num_gpu 35 # 数字=层数中装 GPU 的部分,非百分比 PARAMETER num_ctx 16384
法二:API 单次覆盖
curl http://localhost:11434/api/generate -d ‘{ “model”: “llama3”, “prompt”: “Hello”, “options”: { “num_gpu”: 20 } }’
法三:环境变量持久化
OLLAMA_NUM_GPU=35 ollama serve
num_gpu 的数理:设模型 40 层,置 num_gpu=20 → 前 20 层在 GPU、后 20 层在 CPU。置 99 或 999(超层总数)即”全 GPU”,置 0 即纯 CPU。
混合推理的代价与甜点
– 代价:PCIe 搬运激活值是瓶颈,混合态常比全 GPU 慢 5–10 倍。每层额外 PCIe 传输叠加,batch_size>1 时开销指数上升——故混合推理务必保持 batch_size=1。
– 甜点:GPU 装得下 80%+ 层时,全装;装不下时,装到”不触发 swap”的最大层数。用 nvidia-smi -l 1 盯紧显存别越过 11GB 红线。
省显存的两记妙手
1. KV 缓存量化:--cache-type-k q8_0 --cache-type-v q8_0(llama.cpp),KV 占用约减半,质量几乎无损。14B Q4 + q8 KV,可在 12GB 上撑 16K 上下文。
2. 降上下文:Ollama 默认 4096,推理模型务必提到 16384;普通聊天 8192 足矣。
—
四、给 12GB 用户的实操推荐
场景化选型
| 你的主需 | 首选模型 | 命令 | 体感 |
|---|---|---|---|
| 中文万能助手 | Qwen3 7B / 14B (Q4) | ollama run qwen3:14b | 流畅,中文最佳 |
| 数学/推理/深度思考 | DeepSeek-R1-Distill 14B (Q4) | ollama run deepseek-r1:14b | 20+ tok/s,需 16K 上下文 |
| 代码辅助 | Qwen2.5-Coder 14B | ollama run qwen2.5-coder:14b | 舒适 |
| 图文多模态 | Gemma 4 12B (Q4) | ollama run gemma4:12b | 8GB 卡也能跑 |
| 极致轻量/边缘 | Phi-4 14B (Q4) 或 Gemma 4 2B | — | 8GB 显存轻松 |
三条铁律
1. 12GB 甜点区是 7B–14B 全量上 GPU;想上 20B+ 必走卸载,速度换智能,慎之。
2. 永远先 ollama ps 看 %GPU——若看到远低于 100%,你正为混合推理交”税”,可换更小量化或更小模型救回速度。
3. 推理模型(R1 系)务必把 num_ctx 拉到 16384 以上,否则思考链会被截断,等于自废武功。
—
五、一句话总结
> 12GB 显存,开源 LLM 之”小康线”也。7B–14B 诸模型(Qwen3、Gemma 4、DeepSeek-R1 蒸馏、Phi-4、Mistral NeMo)皆可全量驻 GPU,从容日用;欲窥 20B–32B 之境,须借 Ollama 分层卸载之术,以 CPU 内存为壑,代价是速度,然”能用”二字,已足慰草根。Ollama 之混合推理,本为内建,自动调度于 85% 显存红线之前,复可手调 num_gpu 精算层数——此即”部分 GPU、部分 CPU”之正解。
—
参考来源
– The Complete Guide to Running LLMs Locally in 2026 (dev.to) – What Can You Actually Run on 12GB VRAM? (insiderllm.com) – Ollama Mixed CPU/GPU Execution (theneuralbase.com, 2026-04 核实) – Ollama GPU Layer Debugging (craftrigs.com) – What Is GPU Offloading? (ai-tldr.dev) – 谷歌 Gemma 3 QAT 模型显存实测(腾讯云/机器之心/IT之家) – DeepSeek 蒸馏模型 GPU 适配表(promptquorum / insiderllm / specpicks / willitrunai) – GPT-OSS 20B Q2_K 12GB 优化版(aifasthub)
