滚动新闻 →
贵州抗战公路也圈起来收费 惹民愤 涉密谋炸英国犹太社区 两伊朗人出庭 生料带怎么正确使用 美国女囚打两剂致命药仍未死 监狱主管辞职 模型 Serving 到底解决什么问题,从单机推理服务到集群化部署完整分析 Google Cloud Cloud NAT 是什么,没有公网 IP 的服务器如何访问互联网 阿联酋定性“恐攻” 行凶副驾驶早有禁飞记录 一架载有6人的飞机在百慕大飞往波士顿途中失联 台学者:美国战略改变 以实力吓阻中共图谋 “十一”长假 中国多条航线机票价格回跌 曾经的国礼品牌名人 贵州女商被抓遭酷刑只剩70斤 美欧联手稳油价 G7加码释出能源储备 派拉蒙 华纳兄弟合并后 取新名“天空之舞” 阿根廷推“黄金护照” 35万美元入籍 员工离开企业以后,SaaS 账号应该如何处理,权限回收不能被忽视 美海军批准雷神公司导弹合同 价值244亿美元 巴西总统大选激战 卢拉对决前总统之子 HDMI接口没有画面,如何区分显示器、线材和显卡接口的问题 扩大部署 增加近万兵力 美再向中东派遣航母 向胡塞武装提供资源 美能源部工程师被捕 国足惨败老将躲镜头 17岁小将扛压力 Windows 11 蓝屏怎么办?普通用户应该掌握哪些基础处理方法 恐怖!大陆火腿肠中拉出口罩碎片 PHP 解构赋值怎么用?处理数组数据时可以减少哪些重复代码 戴维营紧急密会 美或对伊朗重启大规模打击 陶渊明为什么能够成为中国文学中的隐逸代表 欧盟境内乘机新规:可带两件免费随身行李 “十一”首日电影票房不到2亿元 网:史上最惨 古代中国为什么重视医德 围棋棋盘上的角为什么特别重要 孩子接受帮助后没有反应怎么办 如何避免不同镜头之间颜色不一致 沙特大反攻 10万大军剿胡塞 美军导弹护台! 吴奇隆挥五星旗挨轰 富邦开球活动遭抵制 古代埃及文明为什么能够延续数千年 西班牙住房危机蔓延 50多城举行抗议活动 法国抗议升级 学生朝警投掷物品 抗议波及735所学校 厨房墙面有哪些适合利用的收纳空间 为什么中国人喜欢给食物赋予象征意义 习访美罕见要求白宫设私人休息室 仅彭丽媛可进

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

发布时间: 2026-10-03 12:00:02    最后更新: 2026-10-03 12:30:02    阅读:2  约11 分钟阅读     

一个训练完成的模型,如果只能停留在训练脚本或者一个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