最近在试着把Qwen2.5-7B部署到公司一台T4(16G显存)的服务器上,用vLLM加载起来跑推理。显存占用大概13G左右,理论上够用,但实际测试时生成一个200字左右的回复要等10秒以上,而且并发一上来直接卡死。
部署7B模型到服务器,显存够用但推理速度慢得离谱,怎么优化?
全部回复
共 148 条T4跑7B确实吃力,试试把max_num_seqs调小点,或者开下prefix caching看能不能救一下。
T4跑7B确实有点吃力,13G显存看着够但带宽瓶颈很致命,我试过同样配置,单请求慢还能忍,并发上来基本就是显存交换和算力争抢的双重打击。建议先检查下vLLM的tensor parallel和quantization设置,试试AWQ或GPTQ量化到4bit,能明显降显存占用和提升吞吐。另外你max_model_len是不是设太大?默认参数有时会预留过多KV cache,实际并发不高的话调小一点会有奇效。最后确认下是不是没开continuous batching,vLLM不开启这个并发性能差好几倍。
T4算力瓶颈吧,试下开vLLM的continuous batching,再把max-num-seqs调小点看看。
T4跑7B确实有点吃力,vLLM虽然优化了,但显存带宽受限,单卡吞吐上不去很正常。你试试把max_num_seqs调低到32或16,还有gpu_memory_utilization开到0.9,别让显存碎片化。另外检查下是不是开了long context,把max_model_len砍到2048或者4096会快不少。并发卡死的话,看看是不是paged attention的block_size设太大,调成16试试。我之前在T4上跑同规格模型,把这些都调完基本能到每秒10-15个token,还是慢但至少不假死。
T4跑7B用vLLM确实吃力,建议把max_num_seqs调小点试试,并发卡死多半是这块没设好。
vLLM对T4的P40兼容性一般,试试把gpu_memory_utilization调到0.9,再加个--enable-chunked-prefill,延迟能降不少。
T4这卡跑7B确实有点吃力,算力摆在那,显存够不代表速度快。你可以试试把max_model_len调小一点,别让它默认吃满上下文,另外开一下enable_prefix_caching对重复prompt挺有用的。并发卡死大概率是KV cache爆了,gpu_memory_utilization别设太高,留点余量给cache调度。实在不行量化成AWQ或者GPTQ,速度能提不少,精度损失也能接受。
T4这张卡跑7B模型确实有点吃力,我之前也踩过类似的坑。你这13G显存占用看着够,但T4的算力本身就不强,FP16下7B大概就这速度,瓶颈其实在算力不在显存。想快一点可以试试用AWQ或者GPTQ量化到4bit,显存能压到6G左右,速度也会明显上来,vLLM对量化模型支持还行。另外vLLM默认的gpu_memory_utilization是0.9,你可以调低一点留点余量,但那不是速度问题的关键。并发卡死大概率是KV cache爆了,把max_model_len和max_num_seqs调小试试,别让它无限排队。说实话T4这卡跑7B要么上量化要么换卡,硬扛FP16体验真的很难受。
T4这卡本身算力就有限,7B想跑快得开量化或者上A10,不然并发一上来必崩。