开始之前
一张至少有 10 GB 空闲显存的 NVIDIA 显卡 —— 两种构建在 24GB 的 RTX 4090 上都能从容装下且余量充足,16GB 的卡同样能装下任意一种格式。这里要选的不是「装不装得下」,而是「速度还是适用面」,接下来会用实测而不是断言来说明。写这篇之后还多了一个因素:ExLlamaV2 已经归档(开发转到了 ExLlamaV3),以前能加载 EXL2 的服务端现在加载的是 EXL3,所以这场对比里 EXL2 这一边只适合本机对话,不适合放在 API 后面。
nvidia-smi --query-gpu=memory.total --format=csv两种构建各自的实际开销
EXL2 4.65bpw 权重 8.1 GB,4K 上下文合计 9.8 GB。GGUF Q4_K_M 权重 8.5 GB,合计 10.1 GB —— 尽管名义位宽相同,两者仍有小差异,因为两种格式底层的量化方式不同。在 16GB 及以上的卡上,两种都很从容。
# EXL2 via ExLlamaV2
hf download turboderp/DeepSeek-R1-Distill-Qwen-14B-exl2 \
--revision 4.65bpw --local-dir ./models/r1-14b-exl2
# GGUF via llama.cpp / Ollama
ollama pull deepseek-r1:14b确认它真的跑在 GPU 上
ExLlamaV2 没有 CPU 回退,装不下时会直接报错,这本身就是一种确认方式。走 GGUF/Ollama 这条路的话,请明确检查放置位置 —— Ollama 会把装不下的部分静默放到 CPU 上,而一个悄悄跑在 CPU 上的推理模型看起来像是在「思考」,而不像是坏了。
ollama ps
# PROCESSOR should read 100% GPU
nvidia-smi --query-gpu=memory.used,utilization.gpu --format=csv -l 1数字大概该是什么样
本索引有一条 EXL2 的实测记录:RTX 4090 上 128 tok/s,接近 8.1 GB 权重在 1,008 GB/s 带宽的卡上推算出的上限(约 124 tok/s —— 实测略高于取整后的上限,这是估算本身的正常波动,不是错误)。本站没有在这个体量上对这个模型做过 GGUF 的实测,所以本文不会重复旧版本里「约 95 tok/s」的说法 —— 没有人在这里跑过那个数字。GGUF 文件权重略大(8.5 GB 对 8.1 GB),理论上限会略低几个百分点,而不是当初说的约 35% 那么大的差距。
出问题时
ExLlamaV2 抛出 import 错误而不是正常加载:wheel 和 CUDA 版本不匹配 —— 用 `pip install .` 从源码编译,精确匹配你的环境。走 Ollama 的 GGUF 报告有 CPU 占比:先检查有没有别的东西占着显存,再怀疑模型太大,因为两种构建在 16GB 上都很从容。一个「推理」模型看起来永远想不完:这是 DeepSeek-R1 蒸馏版本本身的行为 —— 它确实会在给出答案前输出一大段思维链,两种格式都一样,不是出了问题。
常见问题
这个模型上 EXL2 真的比 GGUF 快吗?
按本索引自己的实测,EXL2 更快(RTX 4090 上 128 tok/s)—— 但本站没有对这个模型做过 GGUF 的实测可以直接对照。两个文件体积接近(8.1 GB 对 8.5 GB),所以带宽推算出的上限也接近;两者出现巨大差距才是意外,而不是预期。
这个模型能装进 16GB 的卡吗?
可以,无论哪种格式都很从容。4K 上下文下 GGUF Q4_K_M 是 10.1 GB,EXL2 4.65bpw 是 9.8 GB —— 都明显低于 16GB 的预算,还留有余量支持比这里用的 4K 更长的上下文。
DeepSeek-R1 为什么回答要等这么久?
它是一个推理蒸馏模型:在给出最终答案之前,它会生成一段明确的思维链,那是真实生成的内容,不是卡住了。这个行为在 EXL2 和 GGUF 两种构建上是一样的 —— 这是模型本身的特性,与格式或运行时无关。
这篇指南用到了什么
- 对应推荐
- 24GB 能跑的最好的本地大模型
接下来
看看 🟢 RTX 4090 还能跑哪些模型反向查询 —— 24GB、4096 上下文,按质量排序本文涉及的模型
它真的跑起来了吗?
复制命令并不等于它能用,所以站内只在这里问一次。除了你的这个回答之外,不收集任何东西。