最近在搞一个内部知识库问答项目,用的Llama-3-8B,单张4090(24G)。刚开始直接FP16加载,上下文一长就OOM,后来试了AWQ 4bit量化,显存是降下来了(大概11G),但回答质量明显下滑,特别是涉及代码逻辑和长文本归纳时,经常答非所问。也试过GPTQ,感觉和AWQ差不多。
想问下各位,是我量化参数调得不对,还是应该换更小的模型(比如Qwen2-7B)?或者直接用vLLM做KV cache管理会好一点?另外,是不是我业务场景(长文档RAG)就不适合过度量化?求分享下你们实际部署时在“显存-效果”之间的平衡方案,先谢过了。
楼主
8天前
大模型本地部署显存总爆,量化后效果又差,求老哥指点正确姿势
请 登录 后发表回复
全部回复
共 4 条
2楼
7天前
RAG场景还是别碰4bit,试试8bit+KV cache量化,或者干脆换Qwen2-7B,长文本归纳会稳很多。
4090跑8B其实有富余,上vLLM开paged attention,上下文再长也不怕,质量损失比量化小多了。
3楼
5天前
说实话你这场景我太熟了,之前搞合同审阅也踩过同样的坑。8B模型量化到4bit确实在长文本上会丢细节,尤其代码逻辑,不如试试Qwen2-7B的AWQ,它本身指令跟随更强,量化后损失体感小很多。另外vLLM真得用起来,光靠transformers的KV cache管理,24G开1024上下文都悬,vLLM能省出30%显存留给更长序列。你如果非要用Llama,建议只量化attention层,保留mlp全精度,效果会稳不少,显存大概多个4G。最后,RAG场景别太贪,把文档切块控制在512token以内,召回质量比硬塞长上下文靠谱多了。
4楼
5天前
4090跑8B其实挺尴尬的,FP16长上下文爆显存大概率是kv cache没控住,建议先试下vLLM的continuous batching,能省不少。量化这块AWQ 4bit对代码能力损伤确实明显,尤其你场景还是长文档RAG,信息密度一高就露馅。我自己的经验是这种任务宁可用Qwen2-7B的BF16或8bit,也别硬上4bit,小模型全精度比大模型强压缩靠谱。真要压缩的话,试试把RoPE的context window调短一点,配合vLLM的prefix caching,可能比换量化更实际。
5楼
2天前
试试vLLM加FP8 KV cache,4090上跑8B长上下文能省不少显存,效果比4bit稳。