4G 显存老显卡怎么跑模型:llama.cpp 加 GGUF 配置

手头有块 4G 显存的老显卡,好几年前买的,平时就看看视频。今年想在家跑个本地大模型,一开始图省事装 Ollama,拉了个 7B 的模型,一跑就报 CUDA out of memory,显存直接爆掉。后来换 llama.cpp 配 GGUF 量化模型,才算在这张卡上把模型跑起来。这篇把配置和踩的坑写下来。

先说我为什么换到 llama.cpp

Ollama 用起来确实省事,但它默认把整个模型往显存里塞,4G 显存根本装不下 7B 的模型。llama.cpp 不一样,它有个参数能控制模型前多少层放显卡、剩下的层放内存让 CPU 算,这一下就把显存门槛降下来了。这个思路叫层卸载,是我这次能跑起来的关键。

模型格式也得换。Ollama 拉的是它自己封装好的包,llama.cpp 只认 GGUF 格式。GGUF 是一种量化格式,把模型权重按精度压一压,体积小很多,牺牲一点效果换能跑。

GGUF 去哪下

Hugging Face 上搜模型名加 GGUF 就行,比如 Qwen2.5-7B-Instruct-GGUF。挑文件看名字里的量化档位,Q4_K_M 是 4bit 量化里比较平衡的一档,一般先拿它。7B 的 Q4_K_M 文件大概 4.4G 左右,光文件就快顶满显存了,所以层卸载必须用上。

我最后用的是 3B 的模型,Q4_K_M 文件 1.9G 左右,能整段塞进显存,速度也顺。7B 的留着在更强的机器上跑。

关键参数 -ngl

llama.cpp 跑模型的命令长这样:

llama-cli -m qwen2.5-3b-instruct-q4_k_m.gguf -ngl 20

-m 指模型文件,-ngl 是 gpu layers 的缩写,意思是把模型前 20 层放到显卡上算。这个数字没有标准答案,得看模型总层数和你的显存。我的土办法是先给个大值,跑一下看任务管理器里显存占用,爆了就减半,稳定了再往上加。

3B 的模型 4G 显存能全放下,我把 -ngl 给到 99,让它能放多少放多少。7B 的话 -ngl 给 10 到 15 之间,剩下的层 CPU 扛。

CPU 和 GPU 混着跑的速度

层卸载以后,显卡算一部分,CPU 算一部分,速度肯定不如全显存,但比全 CPU 强太多。3B 模型在这张卡上每秒大概能出十几个字,日常问答够用。7B 的只能放几层进显存,大部分靠 CPU,出字慢不少,我试了一次就换回 3B 了。

哪些模型别碰

我踩完坑的结论是,4G 显存这张卡:

  1. 14B 以上的别想,量化完也好几个 G,显存放不下
  2. 7B 的能跑但吃力,适合不急的场合
  3. 3B 和更小的模型是主力,Q4 量化档就够
  4. 别开太长的上下文,显存会跟着涨

还有个坑是编译。llama.cpp 官网给的是源码,Windows 上要自己编译,命令是 cmake -B build -DGGML_CUDA=ON 然后 cmake --build build --config Release -j。嫌麻烦就去 GitHub releases 页面下现成的 Windows 包,里面带 CUDA 支持,解压就能用,我最后就是用的现成包。

这篇是本地大模型系列里讲低配显卡怎么跑的一篇。前面写过怎么给模型套网页界面、怎么按显存选模型,后面打算写量化档位 Q4 和 Q8 的差别、还有 Ollama 部署报错的排查,都是自己踩过的。想看后续的可以关注账号。

相关推荐
测试界的小码农8 小时前
【Linux 命令实战(06):Linux 文件权限管理,掌握 chmod、chown、chgrp】
linux·运维·服务器
afumu8 小时前
Go 写一个只监听 127.0.0.1 的控制服务:鉴权、白名单、危险命令拦截
后端·安全·go
johnjincaaaa9 小时前
猿人学第 18 题「jsvmp 洞察先机」逆向通关实录
javascript·后端
用户4702784004059 小时前
C语言编译与链接
后端·开源
你三大爷9 小时前
从 Hessian 迁移到 protostuff:深嵌套模型反序列化耗时与高并发类加载锁的根治实战
后端·架构
IT枫斗者枫哥9 小时前
子线程断言失败,JUnit 为什么还显示通过?
java·后端
一条破秋裤10 小时前
【1114】【并发控制】【笔记】
linux
stark张宇11 小时前
Vibe Coding 入门实战:用 Claude Code 跑通 AI 产品开发流程(上)
后端·claude·vibecoding
2035去旅行11 小时前
ADB的底层原理
linux·adb·嵌入式·arm·soc
武子康11 小时前
单卡 A6000 跑 Qwen-Drive:怎样留下可比较的第一条基线?
linux·人工智能·深度学习