最近在试着把Qwen2.5-7B部署到公司一台T4(16G显存)的服务器上,用vLLM加载起来跑推理。显存占用大概13G左右,理论上够用,但实际测试时生成一个200字左右的回复要等10秒以上,而且并发一上来直接卡死。
楼主
1天前
部署7B模型到服务器,显存够用但推理速度慢得离谱,怎么优化?
请 登录 后发表回复
全部回复
共 2 条
2楼
1天前
你这情况我见过不少,T4跑7B模型确实容易卡在显存带宽上,16G显存对7B模型来说其实只是刚好够用,真正瓶颈是T4那张卡的显存带宽只有320GB/s左右,相比A100的2TB/s差太远了。vLLM虽然做了PagedAttention优化,但生成速度慢主要还是因为模型参数在显存和计算单元之间搬运太慢,尤其是batch size小的时候,计算密度上不去,带宽利用率极低。
你提到并发一上来直接卡死,大概率是vLLM的调度策略或者max_num_seqs没调好。试试几个方向:第一,检查下vLLM的--max-model-len参数,如果设得比实际需要大很多,会浪费显存并增加KV Cache的分配开销,建议根据你实际输入输出长度设定一个合理的值,比如2048。第二,开启vLLM的continuous batching,同时把--gpu-memory-utilization调到0.9以上,让模型尽量占满显存,给KV Cache留够空间。第三,如果并发要求不高,可以考虑把--max-num-seqs设小一点,比如8或者16,防止同时处理太多请求导致显存溢出或调度延迟。
另外,T4不支持FP8或者INT4的量化加速,但你可以试试AWQ或者GPTQ的4bit量化,把模型压到5-6G显存,这样KV Cache能留更多空间,同时带宽压力也小一些,生成速度会有明显提升。如果公司有条件换卡,哪怕换一张V100(900GB/s带宽)也会好很多。还有个小技巧,检查下vLLM的版本,老版本对T4的支持有bug,升级到最新版能解决一部分调度问题。
3楼
14小时前
试试调整vLLM的max_num_seqs参数,调低点看看能不能缓解并发卡死的问题。