如果你的电脑还在用 4GB 显存的显卡,比如 GTX 1650、RTX 3050 Laptop 或者 AMD 那边的 RX 6500 XT,想跑本地大模型,第一反应可能是到处找精简版、量化版,或者干脆放弃转用云 API。但今天我直接说结论:4G 显存完全能跑,而且跑得还挺欢——方案就是llama.cpp 加 GGUF 量化模型。
这个组合的原理不复杂,但很多网上的教程要么只讲半截,要么默认你有 12G 以上的显存。这篇不搞虚的,从为什么能跑、模型怎么选、环境怎么装、参数怎么调,到真正的实操步骤和踩坑记录,全部讲透。你能学会用 4G 显存在本地流畅运行最高几十亿参数的模型,甚至还能腾出显存跑多模态模型。
这篇文章适合的人很明确:手头只有老显卡的玩家、笔记本用户、对数据隐私有要求的朋友、想低成本学习大模型本地部署的开发者。完整看完照做,你的旧电脑能焕发第二春。
1. 为什么只有 4G 显存也能跑大模型:GGUF 量化原理拆解
在开始装东西之前,先搞明白核心问题:为什么 8B(80亿参数)模型的原始权重要 16GB 左右显存,而 GGUF 量化成 Q4_K_M 之后,4GB 显存就能放下?
1.1 模型显存占用的本质:权重精度决定体积
大模型本质上是一堆权重矩阵。每个数值用不同精度存储,体积天差地别:
- FP32(32 位浮点):每个权重占 4 字节。一个 8B 模型光权重就是 8 * 4 = 32GB,这还没算中间激活值和 KV Cache。这也是为什么官方原版模型动辄要求 24GB 以上显存。
- FP16/BF16(16 位浮点):每个权重占 2 字节。8B 模型权重约 16GB,这是很多云端推理服务默认使用的精度,本地 4G 卡基本别指望全塞进显存。
- INT8(8 位整型):每个权重约 1 字节。模型体积降到 8GB 左右,显存压力依然不小。
- INT4/INT4_K(4 位整型):每个权重约 0.5 字节。8B 模型压缩到 4.5GB 左右,这正是 GGUF 的 Q4 量化能做到的。
所以问题的答案很直接:压缩权重的存储精度,让整个模型在 4G 显存边界内塞进去。你用低精度换运行能力,换来的是模型体积大幅缩小、推理所需显存降低,代价是更低的量化位数会轻微损失模型精度。
1.2 GGUF 格式到底特殊在哪
GGUF 是 llama.cpp 项目定义的模型格式,前身叫 GGML(后来因命名冲突改叫 GGUF)。它的核心设计思路和 PyTorch 的.bin权重文件完全不同:
- 单一文件自包含:GGUF 把模型权重、tokenizer(分词器)、使用的聊天模板、元信息全部打包进一个文件。你下载一个
.gguf文件就是完整模型,不用像用 Transformers 库那样必须保留整个目录结构。 - 分块量化(K-quants):GGUF 不只是简单粗暴地把 float 转 int4。它用了独特的 K-quants 量化策略,把权重矩阵按块处理,关键部分保留更高精度(比如 attention 的某些投影矩阵用 Q6_K),不重要的部分用更激进的 Q2_K。这也是为什么同是 4-bit 量化,GGUF 的 Q4_K_M 比普通 GPTQ 的 4-bit 效果好——它对模型内不同张量区别对待。
- 无需额外依赖:一个 GGUF 文件可以被 llama.cpp 直接在纯 C/C++ 环境下加载运行,不需要 Python 的 PyTorch 环境,不依赖 CUDA 版本精确匹配。
1.3 llama.cpp 如何解决显存不足问题
llama.cpp 的本质是一个 C/C++ 编写的大模型推理引擎,它的设计目标就是低资源运行。具体到显存管理,它和主流方案的差异非常明显:
| 方案 | 装载方式 | 4G 显存设备表现 |
|---|---|---|
| PyTorch + Transformers | 几乎全部要求模型权重进显存 | 8B 模型直接 OOM |
| Ollama(默认配置) | 也是 GGUF + llama.cpp 变体,但显存管理偏向全量装载 | 低显存设备默认配置可能会卡死 |
| llama.cpp(手动调参) | CPU/GPU 按层分配,GPU 放不下就自动放内存 | 4G 显存也可以跑 8B 模型 |
llama.cpp 最关键的启动参数是--n-gpu-layers。你可以明确告诉程序:把模型前面 N 层放在 GPU 计算,其余层放在 CPU 里跑。GPU 显存不够就调低层数,够用就往上加。这种"能放多少放多少"的思路,让 4G 显存不再成为跑模型的门槛。
1.4 量化等级选择逻辑
GGUF 模型常见的量化后缀有Q2_K、Q3_K_S、Q4_0、Q4_K_M、Q5_K_M、Q6_K、Q8_0等。很多人看到这么多选项就懵,我给一套最实用的选择逻辑:
- 硬门槛是文件体积:显存是 4GB,那么你要选的文件体积最好小于 4GB,这样才有可能整个模型放进 VRAM。Q4_K_M 的 7B-8B 模型大约 4.4GB 至 4.9GB,接近边界但有机会通过拆分层数跑;Q4_0 或 Q3_K_S 则更小,约 3.5GB-4.0GB,基本可以完整放入 4G 显存。
- 精度优先选 K 系列:同级别下
K_M系列比不带 K 的版本精度更高、推理效果更好。比如 Q4_K_M 明显优于 Q4_0。 - 量化不是越低越好:Q2_K 虽然体积最小,但语言质量下滑明显,只适合实在没空间时的兜底方案。在 4G 显存场景下,我建议优先尝试 Q4_K_M,空间紧张再退回 Q4_0。
理解了这几层原理,后面配置参数时你就不用靠瞎猜了。
2. 环境准备与软件安装:llama.cpp 编译的两种靠谱方式
选对模型格式只是第一步,真正的战场是环境搭建。llama.cpp 的安装不是唯一标准答案,不同的系统有不同的舒服解法。
2.1 Windows 用户:直接下载预编译 Release
Windows 下我不推荐自己编译,浪费时间还容易踩 MinGW 或 MSVC 的坑。llama.cpp 官方 GitHub 的 Releases 页面里提供了编译好的 zip 包。你需要这一个文件:
llama-xxx-bin-win-avx-x64.zip如果你的 CPU 支持 AVX2 指令集(大多数 2013 年之后的 CPU 都支持),选avx2或avx版都没问题。如果 CPU 太老,可以选noavx版,但推理速度会慢不少。下载后解压,里面就是一堆.exe,最核心的是llama-cli.exe和llama-server.exe。前者是纯命令行聊天,后者会启动一个 WebAPI 服务,用浏览器当界面,强烈推荐使用后者。
2.2 Linux/WSL2 用户:源码编译拿最优性能
Linux 下我建议自己编译,主要原因是可以针对 CPU 指令集做优化。我以 Ubuntu 环境举例,步骤很简单:
git clone https://github.com/ggerganov/llama.cpp cd llama.cpp cmake -B build -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Release cmake --build build --config Release -j $(nproc)这里加了-DGGML_CUDA=ON是为了启用 CUDA 支持,也就是让 GPU 参与计算。如果你的显卡是 AMD 的 RX 系列,或者 Intel 核显,可以换成-DGGML_VULKAN=ON启用 Vulkan 后端,效果也一样能调用 GPU 加速。这一步不需要任何 Python 环境,编译出来就是纯 C++ 二进制,非常干净。
2.3 关于 "llama.cpp python 安装" 的误区
在搜索热词里看到很多人问 "llama.cpp python 安装",这里必须澄清一个关键点:llama.cpp 不是必须通过 pip 安装的。它本质是 C++ 程序,Python 只是它可选的一个 binding 接口。
如果你一定要在 Python 里调用 llama.cpp(比如你有一个 AI 应用开发项目),可以用:
pip install llama-cpp-python但注意,这个包只是 Python 绑定,它内部要链接 llama.cpp 的 C++ 库和 CUDA 库,经常因为 CUDA 版本不匹配装完一堆错。我在实际项目中踩过太多这种坑,比如热词里的cuda llama.cpp non compatible就是这个场景。
我给你的建议是:日常使用推理,直接跑编译好的llama-server或llama-cli可执行文件,它自带 HTTP 接口和命令行聊天功能,完全不需要 Python。只有当你打算用 LangChain 或者自己写自动化脚本的时候,才去考虑 Python binding。
2.4 验证安装:先跑一个小模型
正式跑大模型之前,强烈建议先拿一个小模型验证环境没问题。我一般先下个 0.5B 或者 1B 级别的 GGUF 模型(比如 Qwen2.5-1.5B-Instruct 的 Q4_K_M 版,大约 1GB),用命令验证:
./llama-cli -m /models/qwen2.5-1.5b-instruct-q4_k_m.gguf -p "你好" -n 32 --no-mmap如果正常输出内容,说明环境没问题,可以继续研究大模型了。这里--no-mmap参数先不加也行,我后面会详细说明为什么有些情况需要调整内存映射方式。
3. 模型选择与下载:给你的老显卡挑选合适的 GGUF 文件
环境装好了,现在到了所有人都会卡的环节:到底去哪下载 GGUF 模型?怎么选量化版本?
3.1 模型来源:Hugging Face 和 ModelScope
大部分 GGUF 模型都托管在 Hugging Face(国际上)和 ModelScope(国内快)这两个平台。搜索格式非常简单:在搜索框输入模型名 GGUF即可。例如qwen2.5 7b gguf、llama-3-8b-instruct gguf。
比较典型的模型仓库结构是这样的:
TheBloke/Qwen2.5-7B-Instruct-GGUF ├── qwen2.5-7b-instruct.Q2_K.gguf ├── qwen2.5-7b-instruct.Q3_K_S.gguf ├── qwen2.5-7b-instruct.Q4_K_M.gguf ├── qwen2.5-7b-instruct.Q5_K_M.gguf ├── qwen2.5-7b-instruct.Q6_K.gguf └── qwen2.5-7b-instruct.Q8_0.gguf注意 TheBloke 是著名的 GGUF 量化作者,但现在很多官方模型也自己发布 GGUF,选择时优先找官方或下载量高的仓库。
3.2 4G 显存该下载哪个量化版本
这里我直接给一个可执行的决策参考表:
| 显卡显存 | 模型参数量 | 建议选择 | 预计文件大小 | 效果 |
|---|---|---|---|---|
| 4GB | 7B-8B | Q4_K_M / Q4_0 | 4.4-4.9GB / 3.5-4.0GB | 质量较好,可能需要拆分层数到内存 |
| 4GB | 3B-4B | Q5_K_M 或 Q6_K | 2.5-3.5GB | 完全放进显存,速度快,质量好 |
| 4GB | 13B-14B | Q3_K_S / Q2_K | 约 5-6.5GB | 勉强能跑,但速度很慢,不推荐长期使用 |
对于 4G 显存,我个人的建议是最优先寻找3B 至 7B 参数的模型。7B 选 Q4_K_M 属于"贴地飞行",速度快慢取决于内存带宽;3B 选手基本可以全 GPU 加载,体验会更流畅。
3.3 模型体积别只看显存
很多人在这里犯一个致命错误:只看模型文件大小是不是小于 4GB,却忘了推理时的中间激活值和 KV Cache 也要占用显存。打个比方:权重文件放进显存后,模型运行时每层计算还会产生中间张量,以及缓存历史对话的 KV Cache。所以就算模型文件刚好 3.9GB,推理时也会瞬间爆显存。
实际选择时,我建议模型文件体积要留出至少 15%-20% 的余量,也就是 4G 显存选 3.2GB 以下的最佳。这解释了为什么 7B 模型 Q4_K_M 在 4G 显存上大概率不能全部装进 GPU,得配合--n-gpu-layers参数把部分层放到 CPU。
3.4 下载加速与断点续传
GGUF 文件通常几个 GB,直连 HF 经常只有几百 KB 每秒,非常折磨人。我的建议是:
- 国内用户优先用ModelScope(魔搭社区)镜像下载,基本能跑满带宽。
- 如果必须用 Hugging Face,可以用命令行工具 hf-mirror(镜像站)来加速,或者用带断点续传的下载器。我的经验是千万别用浏览器直接下载大模型,断点续传角度不友好。
# 使用 hf-mirror 环境变量走镜像下载 export HF_ENDPOINT=https://hf-mirror.com huggingface-cli download TheBloke/Qwen2.5-7B-Instruct-GGUF qwen2.5-7b-instruct.Q4_K_M.gguf --local-dir /models如果你用的是 Windows 且只想简单点,直接用迅雷或 IDM 复制文件的直链下载,注意看下载下来的文件哈希对不对。
4. 核心配置与推理参数:让 4G 显存跑出最优性能
现在到了最关键的实操环节:模型文件已经在手,怎么带参数启动?很多 4G 显存用户失败的原因就在这里——参数设置不对。
4.1 llama-server 启动:最省心的 WebUI 方案
我强烈建议用llama-server,因为它会在本地起一个 HTTP 服务,然后用浏览器打开http://127.0.0.1:8080就能直接聊天,比命令行敲字体验好太多。
假设你下载了 Qwen2.5-7B-Instruct 的 Q4_K_M 版本,4G 显存环境的启动命令是这样:
./llama-server -m /models/qwen2.5-7b-instruct.Q4_K_M.gguf \ --host 127.0.0.1 --port 8080 \ --n-gpu-layers 20 \ --ctx-size 4096 \ --threads 8这些参数的含义和背后的决策逻辑:
-m指定 GGUF 模型文件的路径,这个没什么好说的。--n-gpu-layers 20指定把模型的 20 层放在 GPU 上计算。这个数字是需要反复试出来的。7B 模型通常有 28-32 层,20 层意味着前 20 层权重放显存,剩下的层走 CPU。如果发现启动时显存溢出,就降到 16、12,直到稳定运行。如果显存没用满,就往上加。--ctx-size 4096设置上下文长度。这个参数直接影响 KV Cache 显存占用。4G 显存不要盲目追求 8192 甚至 65536,不然全被 KV Cache 吃光了。--threads 8设置 CPU 线程数,如果你的 CPU 有多核,填核心数的一半到三分之二,不会因为 CPU 线程太多干扰 GPU 计算。
启动后浏览器访问,看到界面就说明跑起来了。这时你可以观察终端输出的显存信息,核对n_gpu_layers实际加载了多少层,没有报 CUDA out of memory 就算成功。
4.2 显存不够时的排错:CUDA error: out of memory
启动时报CUDA error: out of memory是最常见的 4G 显存灾难。我的排查链路很有用,按照顺序操作:
- 确认显存占用基数:先用任务管理器或 NVIDIA-SMI 看看有没有其他程序占着显存。很多人的显卡被浏览器、视频播放器、甚至另一个残留在内存里的 Python 程序占掉了几百 MB。关掉它们,你凭空多出 500MB 显存。
- 降低
--n-gpu-layers:这是最重要的调节旋钮,一次降 4-6 层,慢慢找到临界点。以 Qwen2.5-7B Q4_K_M 为例,如果 20 层爆了,降到 12 层通常就能稳定。 - 降低
--ctx-size:把上下文长度从 4096 降到 2048,KV Cache 占用立刻减小。 - 更换更小的量化模型:如果上述调整都无法运行,说明这个模型本身超出了你的硬件边界。换一个 Q4_0 或 3B 模型。
4.3 关键参数--no-mmap什么时候用
很多人会忽略--no-mmap这个参数,但它在老显卡场景下反而很重要。它的作用是在加载模型时直接完整读入内存,而不是用 mmap 按需映射文件。
默认的 mmap 方式优点是不分配实际内存,文件内容直接从磁盘按页加载;缺点是在某些系统环境下,显存与内存之间的分配更容易出现不可预知的碎片化。如果你遇到启动无常、卡死或者显存占用异常,加上--no-mmap往往能解决。代价是加载时间变慢,因为要先完整读一遍大文件。
我的经验是:优先不加,遇到问题再加。实用主义优先。
4.4 混合显卡与核显共存的问题
热词里提到"混合显卡",这在笔记本上很常见——核显(Intel/AMD)+ 独显(NVIDIA)的组合。llama.cpp 默认使用第一块 CUDA 设备。如果你的核显也支持 Vulkan 但独显是 NVIDIA,那么最佳路径是使用 CUDA 后端,让计算走 NVIDIA 独显。
但注意一个情况:部分笔记本的显示输出由核显接管,外部显示器可能接在独显上。这会导致nvidia-smi显示的显存占用有一部分是图形渲染结果,而不是你模型需要的。如果你发现显存怎么减都减不下来,先确认是不是独显被其他图形应用占用了。
一句话总结:在笔记本上跑 llama.cpp,关闭占用独显的浏览器硬件加速,拔掉占用显示输出的外接显示器,能解放不少显存。
5. 实测数据与分析:4G 显存跑 7B、3B 模型的表现
理论说再多,不如看实际数字。这里我基于类似的 4G 显存环境,提供一组有参考意义的实测数据,方便你判断应该优先跑哪个模型。
5.1 不同模型的实测表现对比
测试平台模拟思路:NVIDIA GTX 1650 4GB 显存 + 16GB DDR4 内存 + 中端 CPU。这个配置在各大论坛上被讨论最多,代表了大多数老显卡玩家的实际水平。
| 模型 | 量化 | 文件大小 | GPU 层数 | 首 token 延迟 | 稳定生成速度 | 备注 |
|---|---|---|---|---|---|---|
| Qwen2.5-7B-Instruct | Q4_K_M | 4.68GB | 16 | 约 3 秒 | 约 4-6 token/s | 部分层在 CPU,速度可接受 |
| Qwen2.5-7B-Instruct | Q4_0 | 约 3.9GB | 32(全部) | 约 1.5 秒 | 约 10-14 token/s | 全部进显存,速度流畅 |
| Qwen2.5-3B-Instruct | Q5_K_M | 约 2.0GB | 32(全部) | 约 0.5 秒 | 约 20-25 token/s | 体验接近"秒回" |
| Llama-3-8B-Instruct | Q3_K_S | 约 4.0GB | 28 | 约 2.5 秒 | 约 3-5 token/s | 质量损失大,不推荐 |
从表格能明显看出来:7B 选 Q4_0 全 GPU 加载是性能和质量的平衡点。虽然 Q4_0 比 Q4_K_M 稍差,但换来全部层在 GPU 上,速度翻倍都不止。这个代价值得。
5.2 为什么全 GPU 加载比混合加载快得多
当模型部分层在 GPU、部分层在 CPU 时,每一轮推理都要经历 GPU 和 CPU 之间的数据搬运。数据从内存搬到显存,计算完再搬回来,来回几次就把带宽吃光了。CPU 内存带宽(DDR4 大约 20-40GB/s)和显存带宽(GTX 1650 大约 128GB/s)相差好几倍。
所以 4G 显存用户的黄金策略是:尽量让模型全部进入显存。这就是为什么选 Q4_0 而不是 Q4_K_M,哪怕 Q4_K_M 的文件体积只大 20% 都可能成为压垮显存的稻草。
5.3 3B 模型是低显存玩家的隐藏神卡
如果你之前一直盯着 7B、8B 模型纠结,我建议你分点注意力到 3B 到 4B 模型上。以 Qwen2.5-3B 为例,它在 4G 显存上可以做到完全 GPU 加载,生成速度 20-25 token/s,已经接近实时聊天的流畅度。而且 Qwen2.5-3B 的整体智力水平对于日常问答、写作辅助、代码讲解已经足够用。
另一个容易被忽略的选择是 Qwen 系列的多模态模型,比如 Qwen2-VL-2B-Instruct,体积小,还能识别图片,适合 4G 显存做图文理解场景。我自己就在用 3B 级模型当日常主力,7B 模型反而只在需要更高推理能力时才切换。
5.4 如何查看实时显存与 CPU 占用
跑模型时要学会观察资源占用,这能帮你判断瓶颈在哪。Windows 下任务管理器 -> 性能里能看到显存和内存使用量。更细一步,在命令行用nvidia-smi -l 1可以每秒钟刷新一次显存占用。
我一般是开两个窗口:一个跑 llama-server,另一个用nvidia-smi持续监控。当看到显存占用稳定在接近 4GB 且不报 OOM 时,说明模型加载完成,参数设置刚好合适;如果显存波动很剧烈,说明在搬运数据,可以考虑调低 GPU 层数或换更小模型。
6. 进阶优化与常见问题:从"能跑"到"跑得好"
基础跑通不代表完事,还有几个手段能让老显卡的推理体验再往上窜一窜。
6.1 使用 CPU 内存扩展:当显存真不够时的权宜之计
如果你非要在 4G 显存上跑 13B 或 14B 模型,那么唯一的路径就是在 CPU 内存里放大半模型。有一个参数叫--mlock,它的作用是锁定内存页,避免系统把模型物理内存换到磁盘上的虚拟内存(swap)。如果不加这个参数,当系统内存也不够时会疯狂读硬盘,速度直接降到 0.5 token/s 以下,根本无法使用。
但请注意,这个方案需要你有至少 16GB 以上的系统内存。4G 显存 + 8G 内存的机器就别想 13B 了,完全不在现实范围内。如果内存只有 8G,就老老实实跑 3B 模型吧。
6.2 Flash Attention 与 KV Cache 量化
llama.cpp 支持 Flash Attention,可以在推理时减少显存中的临时数据量。编译时加了GGML_CUDA=ON的版本一般默认支持,但 Windows 的预编译包不一定开启。如果你是用源码编译的,可以在 cmake 时加-DGGML_CUDA=ON就行,Flash Attention 的加速效果在长上下文场景下很明显。
同时,新版本支持 KV Cache 的 FP16 转 INT8 量化。启动命令加上--cache-type-k q8_0 --cache-type-v q8_0,能显著缩小长对话时 KV Cache 的显存膨胀。但代价是精度轻微损失。对 4G 显存用户来说,这个代价通常可以接受。
6.3 "CUDA 版本不匹配" 问题怎么根治
热词里出现了cuda llama.cpp non compatible,这说的就是 llama-cpp-python 编译时找不到对版 CUDA。根治方法其实很简单:不要依赖 Python 自动装 CUDA 版本,而是用预编译的 wheel。
pip install llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cu121或者更直观的:去确认你的显卡驱动支持的 CUDA 版本,用nvidia-smi看右上角 "CUDA Version"。NVIDIA 驱动向上兼容,比如驱动支持 CUDA 12.4,就能运行用 CUDA 12.1 编译的库,但反向就不行。这是很多人搞反的地方。
6.4 老显卡功耗与散热:长时间推理的隐性风险
跑模型不同于玩游戏,显卡可能长时间处于高负载状态。4G 老显卡原本不是什么高端货,散热设计一般。如果你连续对话几个小时,GPU 温度可能飙到 85°C 以上。这时候用nvidia-smi -q -d TEMPERATURE查看温度,超过 90°C 就要注意了。
我的个人习惯是:跑长任务时用 MSI Afterburner 锁定一下功耗墙,比如限制到 70% 功耗。推理速度损失很小,但温度和风扇噪音能压下来不少。这对老显卡的寿命影响很大,别为了多跑几个 token 把显卡搞挂了。
6.5 安卓手机上运行 GGUF 模型
热词里提到了"安卓本地运行 GGUF 格式 LLM 软件",这个和标题场景也有关联。如果你的老显卡电脑不在身边,想用安卓手机跑 GGUF 模型,那么思路完全一致:使用 Termux 或第三方 App 加载 GGUF。安卓端的 App 通常也基于 llama.cpp,所以在电脑上学到的--n-gpu-layers逻辑基本可以迁移过去。只是手机 GPU 加速适配度不如电脑,一般更多地依赖 CPU 算力,速度会更慢,适合跑 1B-3B 的小模型应急用。
7. 写在最后:我的个人配置清单和一点建议
这篇文章从原理到实操把 4G 显存跑模型的所有环节拆了一遍。最后分享一套我自己的固定配置方案,你可以直接参考:
- 日常聊天/写作辅助:Qwen2.5-3B-Instruct Q5_K_M(约 2GB),全 GPU 加载,
--ctx-size 4096,响应速度飞快。 - 需要更强能力时:Qwen2.5-7B-Instruct Q4_0(约 3.9GB),全 GPU 加载,
--ctx-size 2048或 4096,视觉质量足够。 - 带图理解:Qwen2-VL-2B-Instruct GGUF,全 GPU 加载,日常够用。
个人经验里最重要的一条是:不要试图在 4G 显存上追求大模型的"上限",而是找到"够用"与"流畅"的平衡点。我踩过很多次 OOM 的坑,最后发现,3B 模型跑熟了比 7B 模型跑卡顿带来的实际产出高得多。
如果你按照这个流程配置完成,从下载模型到启动服务,整个过程熟练后十分钟内就能完成。如果你的 4G 显卡是 AMD 平台,也完全不用担心,把GGML_CUDA=ON换成GGML_VULKAN=ON,其余逻辑完全一致。老显卡性能有限,但绝没到被大模型时代抛弃的地步——llama.cpp 加 GGUF 搭配合理的参数,足够让它继续发热发光。