Ollama 模型体积 2026:每个模型到底需要多少内存
拉了个大模型结果机器卡死,是本地跑 LLM 最常见的翻车方式。这篇把体积算法、量化档位、常用模型的真实占用、上下文吃多少内存讲清楚,附一张按机器内存反推安全模型的对照表。
Ollama 模型体积 2026:每个模型到底需要多少内存
本地跑大模型翻车的方式高度统一:拉了个看起来很厉害的模型,加载到一半机器卡死,风扇狂转,鼠标都动不了。原因不是模型坏了,是体积没算清楚。这篇把体积怎么算、量化怎么选、上下文多吃多少内存讲透,最后给一张按机器配置反推的表。
一、体积的算法只有一行
模型文件大小约等于 参数量 × 每权重位数 ÷ 8。
- 7B 模型,16 位精度:7 × 10⁹ × 2 字节 ≈ 14GB
- 7B 模型,4 位量化:7 × 10⁹ × 0.5 字节 ≈ 3.5GB,实际文件通常 4GB 出头,因为量化时有一小部分权重保留更高精度
这就是量化的全部意义:用一点精度换掉四分之三的体积。日常对话里 4 位和 16 位的差别,多数人听不出来;写代码、做数学题这类任务上,差距能感觉到。
二、量化档位怎么读
Ollama 模型名后面的 q4_K_M、q8_0 就是量化档位。
| 后缀 | 位数 | 体积相对值 | 质量 | 什么时候用 |
|---|---|---|---|---|
q2_K |
约 2~3 位 | 最小 | 明显掉 | 极限凑内存,不推荐 |
q4_0 |
4 位 | 小 | 一般 | 老格式,能用 q4_K_M 就用它 |
q4_K_M |
4 位混合 | 小 | 好 | 默认首选,体积和质量最平衡 |
q5_K_M |
5 位混合 | 中 | 更好 | 内存有富余时 |
q8_0 |
8 位 | 约两倍 | 接近原版 | 追求质量、内存充足 |
f16 |
16 位 | 约四倍 | 原版 | 微调、评测用,日常不划算 |
同一模型不同档位的体积,模型页上都标着,选之前看一眼比猜准。
三、常用模型的真实占用
下表是 4 位量化档的大致体积,用来做心算参考,具体数字以 ollama.com 模型页为准。
| 模型 | 4位体积参考 | 典型用途 | 建议内存 |
|---|---|---|---|
qwen2.5:1.5b |
1GB 上下 | 补全、分类、极低配机器 | 4GB |
llama3.2:3b |
2GB 上下 | 轻量对话、摘要 | 6GB |
qwen2.5:7b |
4~5GB | 中文主力,写作与问答兼顾 | 16GB |
llama3.1:8b |
4~5GB | 英文通用 | 16GB |
gemma2:9b |
5~6GB | 英文理解 | 16GB |
qwen2.5:14b |
9GB 上下 | 代码、长文写作明显更强 | 32GB |
qwen2.5:32b |
20GB 上下 | 接近可用的本地生产力 | 64GB 或 24GB 显存 |
llama3.1:70b |
40GB 上下(4位) | 服务器级别 | 96GB 以上 |
看这张表的正确姿势不是"我能跑哪个最大的",而是"留多少余量"。模型装进内存只是开始,系统、浏览器、编辑器还要吃饭。
四、上下文是把隐形刀
模型的常驻内存由权重决定,但处理长文本时还要额外分配缓存(KV cache),长度和内存基本成正比。
粗算:上下文从 4K 提到 32K,缓存占用涨到 8 倍。一张 8GB 显存的卡跑 7B 模型,权重占了 5GB,剩下的空间只够几千 token 上下文;上下文一开大,模型就被迫切一部分到 CPU,速度掉一个数量级。
实用做法:
# 显式限制上下文,防止爆内存
ollama run qwen2.5:7b --context-length 8192
或者直接在 Modelfile 里写死 PARAMETER num_ctx 8192,以后每次都用这个配置。
五、按机器反推:一张表
| 机器 | 安全模型体积 | 能跑什么 |
|---|---|---|
| 8GB 内存笔记本 | 4GB 以内 | 1.5B~3B 模型,7B 勉强且慢 |
| 16GB 内存 | 7~9GB | 7B/8B 舒服,14B 吃力 |
| 32GB 内存 | 16~20GB | 14B 舒服,32B 可跑 |
| 8GB 显存显卡 | 5~6GB | 7B 全在卡上,14B 要切 |
| 16GB 显存 | 12GB | 14B 全在卡上 |
| 24GB 显存 | 20GB | 32B 全在卡上 |
| 64GB 统一内存(Apple Silicon) | 40GB | 70B 4 位能跑 |
经验法则:机器内存 ≥ 模型体积 × 2,这一倍余量是给系统和上下文的,省掉它就会换来卡顿。
六、拉之前怎么查,不用先下载
# 看已装模型的真实体积
ollama list
# 看某个模型的分层和参数量
ollama show <模型名> --modelfile
# 看当前加载占用了多少
ollama ps
ollama ps 的 SIZE 列是运行时实际占用,比文件体积更有参考价值,因为它包含上下文缓存。
七、显存和内存的分工
- 全在显存:最快,每秒几十个 token,聊天感觉接近在线服务
- 全在内存(CPU):慢,每秒几个 token,适合后台跑摘要
- 混合:Ollama 自动按层切分,能跑但速度看切走了多少
升级顺序上,纯 CPU 推理的机器加内存比换显卡划算;已经有 8GB 显卡的机器,换 16GB 显存的收益比加内存大。
常见问题
Q:模型体积显示 4.7GB,为什么 ollama ps 显示占用 6GB?
A:差额是上下文缓存和运行时开销,正常现象。开长上下文时差额更大。
Q:q4_K_M 和 q4_0 差多少?
A:体积接近,q4_K_M 用混合精度保住了关键层,质量通常更好,没有理由选 q4_0。
Q:能不能只加载一部分模型? A:Ollama 会把放不下的层放到 CPU,但它的目标是"能跑",不是"跑得快"。真跑不动就换小模型。
Q:模型拉下来占了两份空间? A:不会。Ollama 用内容寻址存 blob,同一份权重被多个模型引用时只存一次。
相关文章
❓ 常见问题
Why did my PC freeze?
The model + overhead exceeded RAM and the OS swapped to disk - hard. Reduce model size or context.
What does q4 vs q8 mean for quality?
q8 is closer to full precision (better quality, 2x size); q4 is the standard tradeoff.
Can I run a 70B on 16GB?
Only heavily quantized (q2-q3) and slowly - not recommended.
Does context length affect memory?
Yes - KV cache grows with context; 128k context on a small machine will OOM. Keep it modest.
本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。