最近在搞一个法律文书的抽取任务,用Qwen2.5-7B做了LoRA微调,效果还行。但部署到生产环境时出问题了——单卡A10(24G)加载int8量化后的模型,输入一长(比如3000字)就直接OOM,更别说并发请求了。我试了transformers的bitsandbytes和AutoGPTQ两种方式,都设置了device_map="auto",还开了use_cache=False,但显存峰值还是飙到20G+。是不是我量化时把trust_remote_code或某些参数搞错了?还是说7B模型在24G卡上跑长文本本来就勉强,得换更小的模型或者上vLLM加KV cache优化?求有实战经验的大佬指点一下,不想再瞎折腾了。
楼主
2026-08-27
部署7B大模型微调后的显存爆炸,是我量化姿势不对吗?
请 登录 后发表回复
全部回复
共 22 条
2楼
23天前
int8量化本身省不了多少激活显存,你OOM的锅大概率不在量化姿势上。3000字输入在7B模型里,KV cache加上中间激活,峰值确实能顶到20G上下,A10这24G卡跑单条长文本都悬,更别说并发了。bitsandbytes的int8主要是压权重,对KV cache和attention那块激活几乎没帮助,AutoGPTQ也类似,所以别指望量化能救长上下文。use_cache=False反而会让推理变慢且不一定省显存,因为每步都要重算,实际峰值可能更高,这点可以再确认下。真要在24G上跑,优先考虑vLLM或者SGLang,PagedAttention对KV cache的管理能省不少,再配合max_model_len限制和合理的batch调度。如果并发是硬需求,要么换14B以下的更小模型,要么直接上两张卡做张量并行,单卡硬扛7B长文本加并发基本不现实。
3楼
23天前
3000字输入在A10上OOM其实不奇怪,KV cache这块int8权重帮不了你,长序列的cache占用才是大头。你试试vLLM部署,开paged attention和gpu_memory_utilization限制,并发也能扛一些。另外确认下是不是max_model_len设太大了,那个会预分配不少显存。7B跑24G单卡长文本本来就紧,量化只是缓解权重部分。