滚动新闻 →
恒大清盘人追讨许家印13亿艺术品亏损逾10亿 公股银行推出休假奖金制度 休越多领越多 游艇发动机配置如何影响价格 华为伊朗业务金流遭曝光 庭审闭门作证防报复 美军新版作战指南将中国视为首要威胁 苹果折叠屏手机iPhone Duo全球发售引抢购热潮 大陆男子报警遭拒后当街行凶 50刀刺杀强奸犯引争议 敦煌两位女生150万创业无烟酒吧终倒闭,坦言‘关门大吉’ 演员为什么需要维护自己的市场价格 川普聚焦选民资格与选举安全 共和党推动收紧投票规则 加拿大如何查看自己的税务余额 爱荷华州迎川普造势 2.7亿美元投资计划曝光 台风蔷琵重创台湾致1死 东亚多国相继受影响 最高法院裁决助川普应对选票争议 川普称将否决民主党提案 梅拉尼亚斡旋促成俄乌局部停火 加拿大法律如何保护言论自由 美国议员奥马尔身份争议升级 川普要求其立即辞职 上海九旬老人被长女拒之门外 楼道生活近一年 美国选举民调数据造假事件引连锁反应 西班牙人为何寻找北美黄金 外墙重新刷漆前需要做哪些准备 苹果折叠屏手机iPhone Duo全球热销 首日即现抢购热潮 两名前FBI高级官员被控向国会说谎 亨特·拜登笔记本调查再受审视 PHP安全漏洞引发全球政府网站紧急停运 五中全会前夕官员落马传闻频传 多人被带走 AI 模型部署为什么经常需要容器化,Docker 到底解决了哪些环境一致性问题 美国中期选举民调造假事件引关注 专家称细微误差或影响选情 台风蔷琵侵袭台日 超千架航班取消 美日军演调整 梅拉尼娅推动乌克兰战区停火 三国重启和平谈判 加拿大军事基地火灾调查确认训练活动引发事故 Google Cloud Memorystore 是什么,Redis 缓存应该如何部署 拜仁主帅孔帕尼训练中突发状况 被紧急送医 中东局势持续恶化 沙特机场遭导弹袭击 巴武装袭击以军致伤亡 长春官员‘祖国’被查引舆论热议 忧打砸抢重演 法国民众抢购武器 七万警力备战 SaaS 大数据导出为什么容易拖垮服务器?PHP 应该怎样分批读取 西藏地震官方捐款账户遭抵制,信用危机再引争议 笔记本电脑充电时频繁断开,接口接触不良应该怎样判断 Windows 11 怎么创建本地账户?不使用在线账户时可以这样操作 底层戾气重 外卖员袭治安员 装修工锤击保安

模型 Serving 到底解决什么问题,从单机推理服务到集群化部署完整分析

发布时间: 2026-10-03 12:00:02    最后更新: 2026-10-23 17:03:39    阅读:71  约11 分钟阅读     

模型 Serving 到底解决什么问题,从单机推理服务到集群化部署完整分析
图片说明:示意图   图片来源:Public Domain(公有领域)
一个训练完成的模型,如果只能停留在训练脚本或者一个Python进程里,它还不能算一个完整的线上AI服务。业务系统真正需要的是一个能够持续接收请求、执行推理、返回结果,并且能够处理并发、超时、监控、版本切换、资源调度和故障恢复的服务系统。模型Serving解决的就是这一层问题。

因此,Model Serving不能简单理解成“把模型包装成一个API”。API只是最容易看到的外壳,里面还包含模型加载、请求队列、批处理、GPU资源管理、并发控制、模型版本、健康检查、指标监控以及错误处理等一整套运行机制。对于大型语言模型,还要进一步处理KV Cache、Prefill、Decode、Continuous Batching、流式输出以及GPU显存管理等问题。

最简单的Serving系统其实并不复杂。一台服务器、一张GPU、一个模型进程,再加上HTTP或gRPC接口,就可以构成最基本的推理服务。客户端发送输入,服务器执行模型前向计算,再返回预测结果。如果模型较小、请求量有限,这种架构完全可能运行得很好。

例如,一个图像分类模型可能只需要加载一次,然后不断接受图片请求。模型参数长期驻留在GPU显存中,CPU负责网络和请求处理,GPU负责推理计算。此时Serving系统最重要的问题并不是“怎样把模型拆到100张GPU上”,而是怎样避免每个请求都重新加载模型,怎样控制并发,怎样让GPU保持合理利用率,以及发生异常时怎样自动恢复。

随着请求量增加,第一个问题通常是并发。

假设单次推理需要10毫秒,理论上连续处理请求可以达到较高吞吐量,但现实中的请求不会整齐地排队到达。有的请求在这一毫秒进入,有的请求几十毫秒后进入,有的输入尺寸更大,有的执行时间更长。如果每个请求都独占一次GPU执行过程,GPU可能出现大量空闲间隙。

因此,现代Serving系统通常会引入动态批处理。Triton Inference Server提供Dynamic Batching,可以在满足延迟约束的情况下,把多个请求组合起来交给GPU执行。对于大语言模型,vLLM、TensorRT-LLM等系统进一步采用Continuous Batching,也就是在生成过程的迭代级别动态调度请求,使新请求能够加入正在运行的请求集合,而不必等整个静态batch全部结束。

这时候Serving系统已经不只是“调用模型函数”,而是在管理一台计算机上的计算资源。

GPU显存也是另一个核心限制。模型参数需要占用显存,运行时还需要保存激活值、临时workspace以及其他数据结构。对于LLM,KV Cache通常还会随着并发请求数量和上下文长度增长。于是,一个模型即使参数本身能够塞进GPU,也不意味着这张GPU能够无限增加并发请求。

这也是为什么模型Serving必须同时关注吞吐量和延迟。单纯追求QPS可能导致请求在队列里等待,TTFT,也就是Time to First Token,可能明显增加;过度追求低延迟,又可能导致GPU批处理规模过小,计算资源没有充分利用。线上系统通常需要在吞吐量、TTFT、Inter-token Latency以及整体端到端延迟之间寻找合适的平衡。

当一张GPU装不下模型时,问题就从“如何高效使用一张卡”进入了“如何使用多张卡”。

最直接的方法是模型并行。对于Transformer等大型模型,可以把模型参数和计算过程拆分到多张GPU上。例如张量并行可以把某些矩阵运算分布到多个GPU;流水线并行则可以把不同模型层分配到不同GPU阶段。对于MoE模型,还可能使用专家并行,让不同专家分布到不同计算设备。

但多GPU并不意味着性能一定线性增加。

原因很简单:GPU之间需要通信。一个模型层计算完成后,如果下一阶段所需的数据位于另一张GPU,就必须通过GPU互联或PCIe等链路传输。单机多GPU系统可以利用NVLink、NVSwitch等高速互联降低通信成本,而跨服务器部署则可能需要InfiniBand或具备RDMA能力的以太网网络。

这时通信拓扑就会直接影响Serving性能。两张GPU之间如果拥有高速互联,通信开销可能与跨服务器传输完全不同。跨节点模型并行还需要考虑网络带宽、通信延迟、拓扑结构、collective communication以及计算和通信是否能够重叠。

NCCL就是这类系统中的重要基础组件。它针对GPU间通信提供AllReduce、AllGather、ReduceScatter、Broadcast等集合通信操作,并能够利用不同硬件互联方式完成通信。对于分布式推理,模型并行策略和通信库之间的配合会直接影响实际性能。

不过,集群Serving还有另外一种完全不同的扩展方式:复制模型。

如果一个模型能够完整放进一张GPU,而且单卡性能不足以满足业务需求,那么没有必要为了“集群化”强行进行模型切分。可以在多台服务器或者多张GPU上运行多个模型副本,再通过负载均衡把请求分发到不同实例。这属于更典型的横向扩展。

这种架构的优势是简单。每个GPU都有完整模型,节点之间通常不需要为了单个请求进行模型层级的同步通信。请求只需要被分发到某个健康实例即可。对于中小型模型和大量独立请求,这往往比复杂的模型并行更加容易扩展。

所以,“集群部署”并不等于“模型分片”。两者是不同问题。模型太大,单卡放不下,才需要考虑模型并行;模型放得下但请求量太大,则可以优先考虑模型副本、负载均衡和自动扩缩容。实际生产环境甚至可能同时使用这两种方式。

Kubernetes在这里承担的主要任务也不是“运行模型”。Kubernetes负责容器编排、节点调度、健康检查、服务发现以及扩缩容等基础设施工作。GPU通常通过设备插件和相关GPU管理组件暴露给容器,应用层的Serving框架则负责模型加载和推理执行。

这意味着一个成熟的AI推理集群实际上存在多个层次。最底层是GPU、CPU、HBM、PCIe以及GPU互联网络;再往上是CUDA、ROCm、NCCL等运行时和通信组件;然后是TensorRT、PyTorch、vLLM、Triton等推理软件;再往上才是API网关、服务发现、负载均衡、监控、日志和业务系统。

每一层都有自己的瓶颈。

GPU利用率低,并不一定说明GPU不够多,也可能是请求批量太小、CPU准备数据太慢、数据拷贝频繁、KV Cache不足或者调度策略不合理。GPU利用率很高,也不意味着系统性能一定很好,因为请求可能已经在队列中等待很长时间。

显存占满同样不能直接判断系统已经达到最佳状态。对于LLM,KV Cache占用比例、上下文长度和并发请求数量都会影响显存布局。如果参数量化以后释放了大量显存,这些空间可以进一步用于KV Cache和更高并发,而不只是简单地“省了显存”。

模型量化也是Serving优化中的重要技术。FP16、BF16、FP8、INT8、INT4等不同表示方式可以降低模型权重或者部分计算的数据精度,从而减少显存占用和内存带宽压力,并在硬件和软件支持的情况下提高计算吞吐量。但量化并不是无条件加速。不同模型、硬件、kernel和batch规模下,收益差别很大,过度量化还可能造成模型精度下降。

KV Cache则解决另一类问题。在自回归语言模型生成文本时,已经计算过的历史token对应的Key和Value可以保存下来,后续生成不必重新计算所有历史token。这种缓存机制能够显著改变长上下文、多轮对话和高并发Serving的性能特征,但代价是需要持续消耗显存。因此,生产系统必须在上下文长度、并发数量和KV Cache容量之间做资源规划。

模型Serving还必须解决版本管理问题。线上模型不会永远只有一个版本。新模型上线后,系统可能需要进行灰度发布、A/B测试或者快速回滚。如果模型文件、依赖库、GPU运行时和配置全部混在一起,那么模型升级本身就可能变成一次系统级故障。

因此,生产环境通常需要把模型版本、Serving镜像、配置和基础设施配置进行明确管理。监控系统则需要记录请求数量、错误率、延迟、GPU利用率、显存占用、队列长度以及模型相关指标。对于LLM,还应该关注TTFT、token吞吐量、每token延迟、KV Cache使用率和请求长度分布。

自动扩缩容也是集群Serving的重要组成部分。当请求量持续增加时,可以增加模型副本;流量下降后则减少实例,从而降低闲置GPU成本。但GPU扩缩容不像普通Web服务器那么简单,因为加载模型本身可能需要较长时间,模型文件可能很大,GPU实例成本也远高于普通CPU容器。因此,扩缩容策略需要结合启动时间、模型加载时间、节点容量和预测流量进行设计。

到了大规模平台阶段,Serving实际上已经逐渐变成一个独立的基础设施系统。业务开发者只需要提交模型版本和推理配置,平台负责选择GPU、部署副本、建立服务入口、执行健康检查、监控性能以及处理扩缩容。这也是MLOps体系与普通Web部署之间的重要交叉点。

从单机Python推理脚本发展到大型GPU集群,并不是简单地不断增加服务器数量,而是问题本身发生了变化。单机阶段主要关注模型加载、GPU利用率、请求并发和延迟;多GPU阶段开始关注模型并行和GPU通信;多节点阶段又加入网络拓扑、调度、故障恢复和资源隔离;大规模生产阶段则需要进一步考虑版本管理、自动扩缩容、成本控制和可观测性。

因此,Model Serving真正解决的是模型从“能够计算”走向“能够稳定提供计算能力”的工程问题。一个训练好的模型只是AI系统的核心算法资产,Serving则负责把这个资产变成业务能够持续调用的基础设施。小模型可以是一台服务器上的一个进程,大模型可以扩展到多GPU甚至多节点集群,但无论规模如何变化,核心目标始终围绕几个指标展开:请求能否及时得到响应,计算资源是否被有效利用,系统能否随着流量增长而扩展,以及出现故障时能否控制影响范围。

理解这一点之后,模型Serving就不再只是一个“模型API服务器”的概念,而会被看成连接模型、GPU、网络、调度系统和业务应用的一整层基础设施。这也是为什么当AI应用从实验室走向生产环境之后,模型本身往往只是问题的一部分,而如何把模型稳定、经济、高效地运行起来,才逐渐成为整个系统工程的核心。

喜欢这篇报道?

使用下面的功能,方便以后继续阅读和分享 MNewsTV

设为 Google 新闻首选来源 让 Google 新闻优先显示 MNewsTV 的最新报道 ›
★ 我的收藏 查看已经收藏的文章
关于文章收藏 收藏不需要注册帐号,收藏信息仅保存在当前浏览器中。 删除收藏请进入「我的收藏」进行管理。
分享这篇报道

捐助(Paypal): https://www.paypal.me/observeccp
订阅中国观察电报 Telegram : https://t.me/s/ObserveCCP