最近在折腾本地部署,想搞个开源模型做代码补全和文档总结。看了一圈,Qwen和Llama系列都挺火,但真到自己上手发现坑好多。我手上只有一张4090 24G,试了下7B的量化版倒是能跑,但速度一般,而且上下文一长就爆显存。看网上有人说用llama.cpp配合GGUF格式能压到很小,但效果损失怎么样?还有如果用vLLM或者TGI这种框架,是不是对显存要求更高?另外量化到4bit会不会导致输出质量明显下降?求有经验的老哥指点一下,预算有限暂时不考虑租云GPU,就想本地玩一玩。
部署开源大模型要多少显存?4090能跑70B吗?
全部回复
共 31 条4090跑70B基本别想了,就算4bit量化权重也得35G往上,加上KV cache直接爆。7B量化版上下文一长就爆显存,是因为KV cache没开量化,试试llama.cpp加--cache-type-k q8_0,能省不少。4bit质量损失看模型,Qwen2.5的GPTQ我觉得日常用还行,代码补全基本没差。vLLM确实更吃显存,但它吞吐高,单卡玩不太划算,还是llama.cpp适合你。
4090跑70B得靠4bit量化,但速度别指望,7B日常够用,上下文爆显存试试限制长度。
4090跑70B基本别想了,量化到2bit都悬,而且质量掉得厉害。我拿llama.cpp跑Qwen2.5 14B的Q4_K_M,24G显存刚好够用,速度大概20 token/s,代码补全完全能接受。vLLM确实吃显存更狠,但它吞吐高适合并发,单人用有点浪费。4bit量化日常用问题不大,除非你做特别精细的推理任务,不然感知不明显。
4090跑70B基本别想了,量化到2bit都够呛能塞进去,7B或14B才是你的舒适区。llama.cpp配Q4_K_M确实能省显存,质量损失日常用感知不明显,但代码补全这种任务建议至少Q5以上。vLLM和TGI吃显存更凶,不过吞吐高,适合并发场景,你单人用没必要。上下文爆显存的话试试限制max_model_len,或者换支持滑动窗口的模型。
4090跑70B基本别想了,就算4bit量化权重也要35G往上,除非用CPU+GPU混合推理,那速度你肯定受不了。我自己用llama.cpp跑Qwen2.5 14B的Q4_K_M,24G显存塞满上下文能到32k,代码补全质量跟FP16比几乎没差,但文档总结偶尔会漏细节。vLLM确实更吃显存,它要预留KV cache,但并发和吞吐强很多,单张卡玩不划算。建议你先拿7B的Q5或Q6量化练手,别一上来就4bit,质量损失在长输出时挺明显的。
4090跑70B基本别想,就算4bit量化也要35G以上显存,双卡还差不多。7B用GGUF Q4_K_M在llama.cpp上体验还行,代码补全够用,但上下文拉到8k以上确实吃力。vLLM显存占用比llama.cpp高不少,不过并发和吞吐强,单卡玩的话还是老老实实llama.cpp吧。4bit质量损失日常用基本感觉不出来,除非你做严谨的数学推理,那还是建议上fp16或者8bit。
刚入门,这个对我帮助很大。
这个思路不错,收藏了。
这个思路不错,收藏了。
写得挺好,建议补充一些性能数据。
70B就别想了,24G连4bit量化都塞不下,光权重就35G左右了。llama.cpp跑GGUF确实省显存,Q4_K_M量化质量损失其实日常用不太出来,但代码补全这种任务对精度敏感,建议至少Q5。vLLM吃显存更凶是因为要预留KV cache,长上下文场景反而更容易爆。你这需求搞个14B或32B的Q4量化更现实,7B上下文一长就爆是KV cache没调好,加个--ctx-size限制一下能缓解不少。