最近在折腾本地部署,用vLLM跑Qwen2.5-7B,服务器是两张RTX 4090(24G*2)。按说7B模型用FP16推理大概14G显存,加上KV Cache也够吧?但一启动就报CUDA OOM,试了调低max_num_seqs、换GQA,甚至只加载单卡,还是崩。后来看nvidia-smi发现显存被其他进程占了一部分,但就算全清空也只撑了半分钟。是不是我量化方式不对?或者vLLM版本太新有bug?求指点,卡在第一步好难受。
楼主
7小时前
部署7B大模型到服务器,显存明明够却报OOM,有老哥遇到过吗?
请 登录 后发表回复
全部回复
共 1 条
2楼
3小时前
这情况我上周刚遇到过,也是4090双卡跑7B,差点以为卡坏了。你提到显存被其他进程占,其实就算全清空,vLLM默认的预分配策略也挺激进的,它会提前把能用的显存都抓手里,加上PyTorch的缓存机制,实际占用经常比理论值高出一大截。我最后是加了个——gpu-memory-utilization 0.85的参数才稳住,你可以试试限制到85%,别让vLLM觉得“24G全是我的”。另外检查下vLLM版本,0.6.0之后对GQA的支持改过,旧版确实有显存泄漏的issue,建议升到最新或者回退到0.5.5。还有个小细节:如果你加载时用了——dtype auto,它可能会默认用float32跑,显存直接翻倍,手动指定——dtype float16能省不少。量化的话,7B用FP16其实够了,AWQ或GPTQ反而会在双卡场景下增加碎片化问题,暂时别折腾。最后跑之前看一眼NVLink是否开启,双卡间通信没优化好也会触发隐性OOM。卡第一步确实难受,但调好参数后这模型跑起来挺稳的,加油。