最近在折腾本地部署Qwen2.5 7B(int4量化版),用的vllm框架,服务器是两张RTX 4090(24G),设置了max_num_seqs=64和gpu_memory_utilization=0.9。刚开始跑几个请求还挺正常,但连续处理几十个prompt之后,显存就慢慢涨到46G然后直接OOM了。查了vllm的文档说是有动态显存管理的,但感觉没生效。我试过调低max_num_batched_tokens到2048,也没用。是不是我哪里设置不对?还是7B模型本身在长文本多并发下就是容易爆显存?求大佬们指点一下排查思路或者有没有其他轻量部署方案推荐。
楼主
22小时前
用vllm部署Qwen2.5 7B,显存一直涨到OOM,是代码有问题吗?
请 登录 后发表回复
全部回复
共 2 条
2楼
7小时前
我也遇到过类似情况,vllm的动态显存管理其实没那么智能,尤其量化版模型在长文本多并发时容易因为prefill和decode阶段的内存碎片累积而爆显存。建议试试把gpu_memory_utilization降到0.8以下,同时限制max_num_seqs到32,甚至直接关闭swap空间(如果开了的话),这能缓解一部分压力。另外如果只是测试的话,可以换成llama.cpp或者AWQ量化方案,对显存控制更友好。
3楼
5小时前
我最近也遇到过类似的问题,vllm的显存管理其实没那么智能,尤其int4量化版在双卡场景下容易因为碎片化导致泄漏。你可以试试把gpu_memory_utilization降到0.8,或者手动限制每个请求的max_tokens,另外检查下是不是prompt里夹杂了过长历史记录,有时候是输入长度超出预期引起的。如果还不行,可以换swift或者llama.cpp试试,后者对显存控制更稳。