提示

返回博客列表

十个人同时问,模型就趴了

周五下午那个演示,十几个人差不多是同一分钟点的。

最开始是有人发了句"怎么转圈了",接着连着三四个人跟着发问号。我这边还准备回一句"大伙试试",手停在键盘上没打完。

我这边看着日志,前几个还正常,越往后越慢:

同时在问的人数 平均等到第一个字
1 1.2 秒
3 2.8 秒
6 6.4 秒
9 19 秒
12 有人直接超时了

一个人的时候挺快,人一多就不是"慢一点",是塌了。

原因说白了一点都不玄。模型加载进来占着显存,就那一份,每来一个请求都要用它算一遍。默认配置下请求是排着队来的,前面那个还在往外蹦字,后面的就得等。而且每个请求还得留一块地方放上下文,人越多,这块地方越挤,挤到一定程度就开始有人被挤掉。

那我之前测的时候怎么没发现?因为我是一个人在测。

后来换的东西

vLLM 这类推理框架,管的就是这一摊。它做的事情里,最值钱的是"别让显存碎着用"和"把能一起算的凑一批"。

后面那句稍微解释一下:模型往外吐字是一个一个吐的,第一批里有人问得短,两句就答完了,按老办法这个位置得空着等整批都结束。改成谁答完就撤、立刻把空位补上新请求,卡就一直没闲着。名字叫连续批处理,听着唬人,道理跟食堂收餐盘差不多。

装起来倒不麻烦,包一装,把原来的启动命令换成它提供的那个服务,接口还是 OpenAI 那套,业务代码基本没动:

pip install vllm
vllm serve Qwen/Qwen2.5-7B-Instruct --port 8000

再压一次,同样十二个人,最慢的那个 4 秒多出第一个字。这个提升不是模型变聪明了,纯粹是排队方式变了。

一句不太严谨的话

那个 19 秒,我后来没再复现出来。第二天又压了一轮,同样是九个人,最慢 11 秒,可能是当晚那台机器上还跑着别的东西,也可能是我第一次没记全。

写在这儿是想说,这种数字别太当真,尤其只有一次的时候。倒是"人多就塌"这个现象,两次都很明显。

下载通道排队那回事,VidDown 技术博客里也记过,道理差不多。

哦还有,那次之后我们把演示的人数上限顺手改了,改成了 8 个人一批。改完没再出过事,也就没再动过。

想亲手试试?用 VidDown 一键解析下载

粘贴视频链接即可解析,多平台支持、网页端即用;下载桌面客户端解锁海外平台本地解析,开通会员更享不限次下载。

顶部