最近想把公司内部一个问答机器人换成开源7B模型(Qwen2.5-7B-Instruct),用vLLM部署。但遇到一个很实际的问题:单卡A100 80G跑满并发大概能支持多少路请求?我看网上有人说可以塞下20个实例,但实际测下来显存占用比预期高不少。而且如果同时跑多个并发,TTFT会明显变长,用户感知就很明显。现在纠结是上4卡做张量并行,还是干脆用2卡各跑一个实例做负载均衡?另外量化到AWQ 4bit会不会掉点太多?有没有实际部署过的大佬给点建议,主要场景是知识库问答,要求响应时间在2秒内。
部署7B模型到生产环境,显存和并发到底怎么权衡?
全部回复
共 110 条4bit实测掉点能接受,但2卡各跑实例比4卡张量并行稳,TTFT也更好控。
AWQ4bit在知识库场景掉点不明显,但建议你先量化后拿自己测试集跑一遍,别光看网上数据。
我们这边Qwen2.5-7B也踩过类似的坑,A100单卡跑满并发真不是按显存算的,TTFT一上去用户就骂娘。后来直接切成2卡各跑一个实例做负载均衡,比4卡张量并行稳太多,至少单路延迟可控。AWQ 4bit掉点倒是不明显,但知识库问答里长尾事实类问题偶尔会答偏,建议先跑一遍你的测试集看看。另外vLLM记得开continuous batching,不然并发一上来就是白搭。
2卡负载均衡比张量并行稳,AWQ 4bit掉点不明显,先量化再压测最靠谱。
我们生产环境也是Qwen2.5-7B,单卡A100 80G实测并发8路左右TTFT就飙到1.5s+,你那个20实例的说法水分太大了。建议直接上2卡各跑一个实例,配个最简单的轮询负载均衡,比张量并行省心不少,还能扛单点故障。
AWQ 4bit我们测过,知识库问答这种场景掉点其实能接受,但如果你检索回来的上下文特别长,输出质量会明显变笨。建议先试试GPTQ量化,不降精度的情况下显存能省三分之一。另外记得开vLLM的continuous batching,不然并发提升全是虚的。
实测4bit AWQ掉点没那么夸张,知识库问答完全够用,但建议先量化再试下2卡负载均衡,并发和延迟都稳。
我们这边也是Qwen2.5-7B,单卡A100塞4个实例跑vLLM,并发大概20路左右TTFT就飙到1.5秒了,2秒内根本稳不住。感觉你纠结的点其实不在显存,而在KV cache和调度,4卡张量并行对延迟帮助没那么大,反而2卡独立实例做负载均衡更灵活,一个挂了另一个还能顶着。
AWQ 4bit我们试过,知识库问答这种短query场景掉点确实不明显,但长上下文或者需要精确引用的回答会偶尔出现逻辑断裂,建议你拿真实业务数据先压测一轮,别只看perplexity。另外可以试试把max_num_seqs调小,配合continuous batching,对TTFT改善比堆卡更直接。
说实话你这场景我踩过类似的坑,单卡塞20个实例纯属理论值,实际Qwen2.5的KV cache和显存碎片会把你打回原形。我建议直接上2卡各跑一个实例做负载均衡,TTFT稳定很多,比张量并行省心,4卡那套反而容易因为通信开销在低并发时更慢。AWQ 4bit在知识库问答上掉点没想象中严重,但建议把温度调低一点,检索到的上下文长时偶尔会出幻觉。另外vLLM记得开continuous batching,然后压测时盯着prefill和decode的耗时占比,你会发现瓶颈往往不在显存而在调度。
4卡张量并行能压住TTFT,AWQ 4bit跑知识库问答基本不掉点,别信20实例那种话。
我们2卡各跑一个实例,负载均衡下并发稳得很,量化后显存省一半,2秒内没压力。
实测过类似场景,Qwen2.5-7B在A100上塞20个实例基本是纸面数据,vLLM的显存预留和KV cache会吃掉很多,建议先按8-10路并发做压力测试。2卡各跑实例做负载均衡更稳,TTFT波动比张量并行小,不过要留意请求排队策略。AWQ 4bit在知识库问答这种短文本场景掉点其实不明显,但如果你有长上下文或复杂推理,建议保留FP8或BF16对比测试下。另外响应时间2秒内的话,单卡并发最好控制在4-6路,不然TTFT很容易超。
vLLM部署时别光看显存总量,还得算上prefill和decode阶段的峰值差异,我遇到过显存够但OOM的情况,最后靠加max-num-seqs参数解决的。4卡张量并行对小模型收益不大,通信开销反而拖慢单路延迟,不如2卡负载均衡实在。量化的话,AWQ对知识库这类抽取式问答几乎无感,但如果你要跑多轮对话,4bit会让长上下文注意力略飘,建议实测几个典型case再定。
我这边之前用2卡各跑一个实例,压测时发现并发超过15路后TTFT直接翻倍,后来改成单卡4实例+nginx轮询才稳住。显存占用高多半是
说实话你这个场景我太有同感了,当时我们内部做类似的事也踩过这个坑。单卡A100 80G跑7B,理论并发和实际TTFT完全是两码事,vLLM的continuous batching虽然能堆请求,但显存里KV cache的碎片化增长很容易让你措手不及,尤其知识库问答这种长上下文场景,20个实例纯属理想值。我个人建议你先别急着上4卡,2卡各跑实例做负载均衡可能更稳,因为张量并行对通信延迟敏感,小并发下优势不明显,反而会占用更多显存做中间激活。至于AWQ 4bit,Qwen2.5本身量化友好,掉点主要在复杂推理链上,如果你们的问答多是检索后抽取式回答,其实感知不强,但建议保留FP16版本做A/B测试。另外TTFT变长这事,除了显存,还得看输入长度和max_num_seqs的配置,试试把max_model_len调小到4K或8K,能明显提升并发上限。最后提醒下,监控要盯住KV cache利用率,别只看显存总量,那个数字容易误导人。
我们这边用4卡A100跑7B张量并行,batch开16,TTFT基本能压在1.2秒内,但显存占用确实比理论值高,主要被KV cache吃掉了。AWQ 4bit在知识库场景下掉点不明显,但你要注意长文本检索时会有概率性幻觉,建议保留一个BF16副本做验证。2卡各跑实例负载均衡的话,单路延迟会低点,但并发上去后CPU调度容易成瓶颈,不如4卡省心。
另外,你的2秒响应是纯生成时间还是包含检索?如果前端有向量召回,那至少得留0.5秒余量。vLLM的continuous batching建议把max-num-seqs调小点,比如128,然后配合--enable-prefix-caching,对重复知识库问题提升特别大。实测下来单卡A100裸跑7B,并发20路以内TTFT还能接受,超过30就明显劣化。
我建议你先跑个压测,用自己知识库的prompt分布测,别拿公开数据集凑合。量化的话AWQ 4bit对中文效果比GPTQ稳,但记得重新校准下校准集。如果预算允许,上4卡张量并行加--tensor-parallel-size 4,比2卡负载均衡省心得多,排障也简单。
之前我们试过类似配置,单卡A100塞20个实例纯属扯淡,7B模型KVCache一涨起来直接爆显存。建议先量化到AWQ 4bit,实测掉点大概3-5%但TTFT能降一半,知识库问答完全够用。并发这块别硬扛,2卡各跑一个实例做负载均衡比4卡张量并行稳得多,后者单路延迟低但多路排队反而更糟心。你2秒的SLA,单卡压到16并发就差不多了,再多就得靠队列限流了。
我们生产环境也是Qwen2.5-7B,单卡A100实测20并发左右TTFT就开始飘了,2秒内基本只能压到10路以内。张量并行比多实例省心,显存碎片少,但4卡成本高,建议先量化AWQ 4bit试试,知识库问答掉点不明显,响应能快30%以上。
A100 80G跑7B其实没必要上4卡张量并行,单卡塞两个实例压满并发更划算,TTFT变长多半是vLLM的continuous batching没调好,试试把max-num-seqs调小点。AWQ 4bit在知识库问答这种场景掉点基本感知不到,但要注意量化后显存省下来的部分得留给KV cache。我们之前实测单卡80G跑Qwen2.5-7B,16路并发TTFT能压在1.5秒内,超过20路就开始飘了,你按这个量级规划比较稳。
我们生产环境就是Qwen2.5-7B,A100 80G单卡vLLM,实际并发稳定在16路左右,TTFT能压到1.5秒内,但前提是得把max-num-seqs调小,不然显存碎片化很严重。20个实例那个说法太理想了,除非你batch特别小。AWQ 4bit我试过,知识库问答这种短query场景掉点不明显,但长上下文会有点逻辑松散,建议先跑一遍你们的测试集再决定。4卡张量并行不如2卡各跑一个,故障隔离和扩容都灵活,负载均衡用nginx就行。
我们这边之前也踩过类似的坑,A100单卡跑7B AWQ,实际显存占用比理论值高不少,主要是KV cache和中间激活值吃得多。建议你直接用2卡各跑一个实例做负载均衡,比4卡张量并行更灵活,因为知识库问答场景并发请求长短差异大,单实例排队反而容易卡TTFT。
量化到AWQ 4bit说实话掉点没想象中严重,但如果你对回答质量敏感,可以试试GPTQ或者把量化后模型跑一遍测试集对比下。另外2秒响应时间这个指标,关键还是得看你的输入长度和max_new_tokens,如果长文档切片后输入超过1k token,单卡并发撑死也就10路左右。
我们最后是用了2卡双实例+动态batching,配合vLLM的continuous batching参数调了下,TTFT稳定在1.5秒内。你可以先拿真实业务流量压测一下,别光看网上说的数字,环境差异太大了。
AWQ 4bit在知识库场景掉点真不明显,但2卡各跑实例比4卡张量并行更灵活,扩容也方便。
2卡各跑实例更稳,AWQ4bit在知识库场景基本无感,TTFT优先保证。
4卡张量并行延迟低但吞吐浪费,实测20并发下显存碎片能吃掉10G,别信纸面数据。
别光看显存,vLLM的KV cache和concurrency配置影响很大。我拿同模型在80G上跑过,20实例基本是理论值,实际8-12路并发就挺稳了,TTFT超过1.5秒就开始难受。
你这种情况2卡各跑实例做负载均衡比4卡张量并行靠谱,张量并行对长上下文和batch大的场景收益才明显,问答这种短请求反而通信开销占比高。AWQ 4bit我试过,掉点主要在复杂推理和长文总结上,知识库问答这种检索式场景影响不大,但建议用lmeval刷一遍你自己的测试集再定。
我上次用单卡A100试过Qwen2.5-7B,AWQ 4bit下显存大概能压到12G左右,但并发一超过8路TTFT就直接飙到1.5秒以上,根本压不住2秒的线。后来改成2卡各跑一个实例做负载均衡,实测效果比单卡塞多实例稳很多,至少每路延迟能控在1秒内。量化掉点其实看任务,知识库问答这种短文本场景我觉得可以接受,但如果你有长上下文或复杂推理需求,建议还是保留FP16。