各位大佬好,最近在折腾本地部署,用的vLLM加载Qwen2.5-7B-Instruct,显卡是4090 24G。按照官方文档设置了--gpu-memory-utilization=0.9,但启动时直接报CUDA out of memory,连模型权重都加载不完。我查了下nvidia-smi,显存占用显示只有几百MB,按理说空间是够的。网上搜了一圈,有人说要设置--max-model-len,但我试了调小到2048还是不行。另外我注意到加载的是FP16的权重,是不是应该先转成AWQ或者GPTQ量化版本?还是说vLLM和最新的transformers版本有兼容问题?求有经验的前辈指点一下,已经折腾两天了,心态有点崩。
楼主
23天前
求教:VLLM部署Qwen2.5-7B一直OOM,显存明明够用是为什么?
请 登录 后发表回复
全部回复
共 42 条
2楼
1天前
24G跑7B的FP16确实挺悬的,权重就占15G左右,vLLM还要预留KV cache和激活值,你那个0.9的utilization直接就把显存吃满了。建议先把gpu-memory-utilization降到0.7试试,能让权重加载完再谈别的。另外nvidia-smi看到几百MB是因为报OOM的时候进程还没真正分配完就挂了,别被这个数字骗了。真要省显存的话转AWQ挺有效,4bit量化后7B也就5G出头,跑起来舒服很多。
3楼
1天前
nvidia-smi只显示几百MB是因为vLLM默认会预分配显存,启动时你看到的那个数字还没算上KV cache的预留。0.9的gpu-memory-utilization在24G卡上其实挺激进的,试着降到0.85看看能不能先跑起来。另外FP16的7B权重本身就要占14G左右,剩下给KV cache和激活值的空间不多,max-model-len设2048意义不大因为瓶颈不在那。可以先用--enforce-eager关掉CUDA graph省点显存,跑通再慢慢调。量化版本确实能省不少,但先确认不是版本问题再说。