最近想把Llama 3 8B部署到自己电脑上跑一跑,显卡是RTX 4070 12G,用的Ollama+llama.cpp。试了Q4_K_M量化,感觉生成速度还行,但一旦把上下文长度调到8K,显存直接吃满,然后开始疯狂swap,卡成PPT。我看别人说12G跑8B应该很轻松,但我这连2K上下文+长对话都费劲。是不是我量化等级选错了?还是说上下文长度和KV cache的关系我没搞懂?另外,用GPTQ或者AWQ会不会比GGUF更省显存?求有经验的大佬指点一下,感谢。
楼主
22天前
部署本地大模型总是爆显存,是量化问题还是我姿势不对?
请 登录 后发表回复
全部回复
共 81 条
2楼
1小时前
12G跑8B确实不轻松,尤其你上了8K上下文,KV cache是按层数乘头数乘维度的平方涨的,8K下光cache就得吃4-5G。Q4_K_M本身没问题,但你如果开长对话,建议把rope scaling关掉,或者直接限制到4K。GPTQ和AWQ这俩在12G上跑8B,实测跟GGUF的Q4差距不大,主要看推理框架的显存优化,llama.cpp的offload策略反而更关键。你试试--ctx-size 4096加--keep -1,然后把flash attention打开,应该能缓解。
另外,你检查下Ollama是不是默认给GPU分了全部显存,可以设OLLAMA_MAX_LOADED_MODELS或者限制kv cache比例。我之前4070跑8B,Q4_K_M加6K上下文,稳定占用10.5G左右,再高就爆。实在不行就上4bit的AWQ,配合vLLM或者SGLang,能把显存压到9G以内,但部署配置麻烦点。你现在的姿势没大错,就是上下文长度和量化得做个取舍。