刚接触本地大模型时,我犯过一个看似很蠢的错误:我的显卡有 12GB 显存,看到一个模型文件只有 8GB,心想”12 大于 8,肯定能跑”。结果一跑就卡成 PPT,查了半天才发现自己完全理解错了。

这篇文章就把我踩过的坑和最终沉淀下来的用法整理出来,给同样想在自己电脑上跑大模型的你。

为什么”显存大于模型文件”还不够

这是新手最容易踩的直觉误区:模型文件的大小,不等于运行时占的显存。

跑模型时,显存里要装的东西远不止权重这一项:

占显存的东西 说明
模型权重 就是那个几个 GB 的模型文件
KV cache 生成时缓存上下文,对话越长占得越多
计算缓冲区 推理时的中间激活值、临时内存
运行时开销 推理框架自身 + 系统进程

举个例子:一个 8.1GB 的模型,权重占掉大半,再加 2-3GB 的上下文缓存、1-2GB 的计算缓冲区,几乎正好顶满 12GB 的天花板。

所以真实情况是:

  • 短对话:能跑,不爆
  • 长对话 / 长文档:爆显存 → 框架自动把一部分塞回 CPU → 生成速度从每秒几十个 token 掉到个位数,卡到没法用

“能跑”和”跑得舒服”是两回事。 判断一个模型适不适合你的显卡,不能只看文件大小,还要看它的参数量、你的显存余量,以及你平时要用多长的上下文。

为什么选 Ollama

选 Ollama 的原因很简单:它是目前把”本地跑大模型”门槛降到最低的工具。

  • 一条命令拉起模型,不用手动配置 CUDA、不用管理 Python 环境
  • 自带模型管理,下载、删除、切换都极简
  • 自带 HTTP API,任何程序都能直接调用,方便写脚本
  • 跨平台,Windows / macOS / Linux 通吃

装好之后它是一个后台服务(默认端口 11434),ollama run 只是它的命令行客户端。

模型管理命令

查看已装模型

1
ollama list

输出模型名、ID、大小、修改时间。我机器上现在的阵容:

1
2
3
qwen3:8b          5.2 GB   # 中文主力
deepseek-r1:14b 9.0 GB # 推理专攻
gemma3:12b 8.1 GB # 英文复杂推理

下载模型

1
ollama pull qwen3:8b

首次下载较慢,但会自动断点续传。国内用户下载大模型经常卡,可以走镜像加速:

1
OLLAMA_LIBRARY_HOST=https://ollama.buaa.cloud ollama pull qwen3:8b

查看详情 / 删除 / 复制

1
2
3
ollama show qwen3:8b   # 架构、参数、上下文长度、量化等级
ollama rm qwen3:8b # 删除,模型都是几个 GB 起步,不用的及时清
ollama cp qwen3:8b my # 复制改名,偶尔用于自定义模型

运行模型

交互式聊天

1
ollama run qwen3:8b

进入对话模式,直接打字。内置几个斜杠命令:

1
2
3
4
/bye        退出
/? 查看全部斜杠命令
/set ... 改参数,比如 /set temperature 0.8
/save 名字 把当前对话和参数保存为自定义模型

一次性提问(脚本友好)

1
ollama run qwen3:8b "帮我写一个冒泡排序的 Python 代码"

跑完直接出结果、自动退出,非常适合写脚本时调用。

传入整段文本

1
ollama run qwen3:8b < 文章.txt

把文件内容喂给模型,比如让它总结、翻译、改写。

常用生成参数

1
2
3
4
5
6
7
8
# 控制随机性(0=死板,1=正常,2=放飞)
ollama run qwen3:8b --temperature 0.3 "解释什么是区块链"

# 限制最大输出长度
ollama run qwen3:8b --num-predict 200 "写一首五言绝句"

# 设定角色
ollama run qwen3:8b --system "你是一位毒舌的编程导师" "看看我这段代码"

看真实推理速度

1
ollama run --verbose qwen3:8b "测试"

最后会输出 eval rate: xx tokens/s。这是诊断神器——如果速度突然从几十掉到个位数,基本可以断定显存爆了、模型掉到 CPU 上了。

进程管理

1
2
ollama ps         # 看哪个模型在内存中、占了多大显存
ollama stop qwen3:8b # 手动卸载模型

模型空闲 5 分钟会自动卸载,日常不用手动管,但 ollama ps 对排查显存问题很有用。

从程序里调用

Ollama 自带 HTTP API,任何语言都能调:

1
2
3
4
5
curl http://localhost:11434/api/generate -d '{
"model": "qwen3:8b",
"prompt": "你好",
"stream": false
}'

Python 更简单:

1
2
from ollama import chat
print(chat(model="qwen3:8b", messages=[{"role": "user", "content": "你好"}])["message"]["content"])

这意味着你可以在自己的脚本、服务、自动化流程里直接调本地模型,不需要额外接任何云 API。

针对 3060 12GB 的模型选择建议

最后给和我一样用 RTX 3060 12GB 的朋友一个参考:

场景 选谁 理由
日常写作、聊天、编程 qwen3:8b 中文强、只占 5.2G、留足显存跑长上下文
数学、逻辑、复杂推理 deepseek-r1:14b 推理链突出,但显存紧,别开太长上下文
纯英文复杂推理 gemma3:12b 英文强,但 8.1G 权重 + 上下文容易顶满 12G,长对话会爆

核心原则一句话:选模型不是看”文件多大我显存多大”,而是看”权重 + 上下文缓存 + 计算开销”能不能在你的显存里舒服地待着。 模型小一点、中文更强、跑得更快,往往比硬上大模型体验好得多。

本地大模型的门槛已经低到一条命令,剩下的就是挑对模型、理解显存的脾气。祝你跑得顺利。