返回博客
为什么大模型一体机吞吐上不去
知识

为什么大模型一体机吞吐上不去

大模型一体机吞吐上不去,往往不是"总显存不够",而是卡间协同、显存占用、服务调度和模型路由四层漏斗没有打通。

前段时间跟多个客户,客户是某金融机构。

他们采购了一台规格不低的一体机,8 卡、总显存 1TB、上一代二线厂商 AI 加速卡。采购时的判断也很自然:32B 模型都能装下了,吞吐应该差不到哪去。

结果很快遇到现实问题。Demo 能跑,单次问答也能出字,但一到真实业务流量,吞吐就是起不来。知识问答一多,审查辅助一上,排队就开始变长。平台团队的困惑很典型:卡看起来不少,显存看起来也够,为什么业务体感还是慢?

这个问题其实很有代表性。

一体机的吞吐,本质上不是"能不能把模型放进去",而是"能不能把每一个 token 变成稳定、顺滑、低损耗的流水线"。

换个角度看,很多一体机项目卡住的,不是"算力总量",而是下面这 四层漏斗

第一层:装得下,不等于跑得快

很多人先看参数量和显存,觉得只要模型能完整放进去,问题就解决了一大半。其实不是。

模型"装进去",只说明仓库够大;吞吐"跑起来",还取决于装卸效率、搬运路径和作业节奏。

举个例子,32B 模型能放进 1TB 显存,不代表每一步推理都高效。实际运行时,还会受到这些因素影响:

  1. 推理引擎是不是成熟,底层算子有没有针对这类卡吃满。
  2. 精度、量化和缓存策略是不是合适。
  3. 模型结构和这套硬件、这套软件栈是不是匹配。

所以很多项目表面上是"卡不够强",本质上是软件栈没有把硬件潜力变成稳定产能

这就像一家厨房,灶台很多,但备菜、传菜、出餐都不顺,顾客不会因为你后厨面积大,就自动吃得更快。

第二层:多卡,不等于线性叠加

继续追问,为什么 8 张卡也不够?

因为多卡推理不是简单的"8 台机器一起干活"。很多时候,它更像 8 个人协作搬一件大件货物。只要其中几个环节对不上,整体速度就会被最慢的那一步拖住。

尤其是上一代、生态相对弱一些的加速卡,常见问题不是单卡完全不能跑,而是:

  1. 卡与卡之间协同开销偏大。
  2. 通信链路和运行时调度不够成熟。
  3. 多卡拆分后,收益被同步和等待吃掉。

最后就会出现一种很容易误判的现象:看起来总算力很大,但真正能变成业务吞吐的那部分并不高。

这也是为什么很多用户会觉得"一体机参数很好看,真实吞吐却不惊艳"。

第三层:有显存,不等于有并发

一体机吞吐还有一个经常被低估的问题:显存不是只装模型,它还要装上下文和缓存。

如果把模型权重理解成固定货架,那么推理时不断增长的上下文缓存,更像是在仓库里临时堆起来的周转箱。箱子越多,可同时进来的车就越少。

这也是为什么很多项目一旦开始支持长上下文、复杂问答、多用户同时在线,吞吐就迅速掉下来。不是模型突然变慢了,而是:

  1. 每个请求占用的缓存变大了。
  2. 能同时排进去的请求数变少了。
  3. GPU 看似在忙,但整体产出并不高。

PagedAttention 和同类优化之所以重要,本质上不是"炫技",而是把这类缓存占用整理得更规整,减少内存浪费,把本来装不进来的并发重新装进去

第四层:上线服务,不是跑一个 benchmark

很多采购和 PoC 阶段看的,是单次速度,或者比较理想的压测曲线。

但企业真正上线后,流量不是整整齐齐来的。

有的请求很短,有的请求很长;有的重在首字快,有的重在总吞吐高;有的还在读长文档,有的已经进入连续出字阶段。这些请求混在一起时,服务调度方式往往比"单卡峰值算力"更决定结果。

真正影响吞吐的,往往是下面几件看起来没那么"硬件味"的事:

  1. 能不能做连续批处理,而不是凑一整批再发车。
  2. 能不能把长输入和持续出字更平滑地混合调度。
  3. 能不能把首字时间和总吞吐分开看,而不是只盯一个指标。
  4. 能不能在真实线上流量下持续维持稳定,而不是只跑实验室曲线。

所以回到那个金融机构案例,问题并不是"32B 跑不动",而是32B 在真实服务流量下,没被组织成高吞吐流水线

为什么 MoE 模型更容易"看着很强,吞吐却不稳"

如果再往前一步,用的是 MoE 模型,这个问题会更明显。

MoE 的直观理解,不是"所有专家一起干活",而是来了一个请求,先做分诊,再把它送去最合适的几个专家那里处理

这个机制的好处是,模型总容量可以很大,但每次真正激活的部分没那么大,理论上更省算力。

但问题也跟着来了。

1. 请求不是平均分给所有专家的

现实业务里,用户问题的分布往往很不均匀。

这就像银行里并不是每个窗口人都一样多。总会有几个窗口特别忙,几个窗口比较闲。于是你会看到一种很典型的现象:有些卡很忙,有些卡没那么忙,整体吞吐却被最忙的那几个点卡住。

2. EP 并行,本质上是在把"专家窗口"分开放

很多非专业读者一听 EP 并行会觉得很玄。其实可以把它理解成:

不要让每张卡都摆一小份所有专家,而是把不同专家像不同柜台一样分散开,让请求直接去对应柜台。

这样做的目的很简单:

  1. 让每个专家拿到更成规模的请求,效率更高。
  2. 减少重复摆放,给系统留出更多有效空间。
  3. 让多卡分工更清楚,而不是大家都沾一点,但谁都不饱和。

3. 热门专家要"加窗口"

MoE 模型还有一个很关键、但很容易被忽略的优化方向:热点专家冗余

还是拿银行打比方。如果你发现企业开户窗口永远排长队,最直接的办法不是要求所有窗口更努力,而是再开几个同类窗口

MoE 也是一样。对于高负载专家,业界已经有一类成熟思路,就是:

  1. 在线观察哪些专家最忙。
  2. 给高负载专家增加副本。
  3. 周期性调整,让不同卡上的负载尽量均衡。

这件事不解决,MoE 很容易出现"总参数量很漂亮,但线上吞吐忽高忽低"的体验。

4. MoE 更依赖调度,不只是依赖算力

Dense 模型更像一个大厨房,大家围着同一套工序做饭。

MoE 更像一个专科医院。分诊、转诊、排队、热门科室加号,这些组织动作做不好,再好的医生也会被堵在流程里。

所以 MoE 的吞吐优化,往往不是先去追更大的卡,而是先把专家并行、专家负载均衡和热点专家冗余做好。

一体机吞吐上不去,优先看哪几件事

如果你现在就在做一体机选型、验收或者优化,建议按下面这个顺序看。

先看第一件事:目标到底是"演示能跑",还是"线上能扛"

如果目标只是内部验证、固定人群、固定上下文长度,一体机通常够用。

但如果目标是:

  1. 多部门共享。
  2. 线上请求长短不一。
  3. 对吞吐、稳定性和排队时延都有要求。

那你要看的就不是"模型能不能装下",而是服务能不能长时间稳定出产能

再看第二件事:先抢显存空间,再谈并发

很多吞吐问题,第一步不是继续加卡,而是先把显存用法理顺:

  1. 不要默认给所有业务都开最长上下文。
  2. 让缓存管理更规整,减少碎片和浪费。
  3. 用合适的量化和部署方式,把显存从"摆着占位"变成"能换并发"。

第三件事:把服务调度做好

在线推理不是短跑,是流水线。

所以要优先考虑:

  1. 连续批处理。
  2. 长输入和持续出字的平滑混排。
  3. 首字时间和总吞吐的平衡。
  4. 用真实业务流量做压测,而不是只看理想实验室数据。

第四件事:MoE 要单独设计,不要按 Dense 的思路硬套

如果用的是 MoE 模型,至少要额外检查三件事:

  1. 专家有没有合理分散,也就是 EP 并行有没有做好。
  2. 专家负载是不是明显失衡。
  3. 热点专家有没有做副本或动态调整。

很多 MoE 项目不是败在模型本身,而是败在把"专家路由问题"当成"普通并行问题"处理

回到最初的问题

为什么大模型一体机吞吐上不去?

因为企业买到的,往往只是一台能放下模型的机器;而真正决定体验的,是显存管理、卡间协同、服务调度和模型路由能不能被组织成一条顺滑流水线。

对 Dense 模型来说,核心是把显存、调度和多卡协同理顺。

对 MoE 模型来说,还要再加一层判断:专家有没有被合理分散,热门专家有没有被及时分流。

回到最初的问题,本质上企业买的不是"更大的参数容量",而是稳定把 token 变成吞吐的能力