本节摘要:模型优化好了,要变成用户可用的服务才算交付。本节比较云端与边缘两种部署形态的取舍,讲服务化的标准形态(OpenAI 兼容 API、流式返回、多适配器服务),以及规模化时的分布式推理与负载路由,最后给出上线后的监控体系(P99 延迟、吞吐、质量、成本)与扩缩容策略。
阅读完本节,你应当能够:
部署的第一道选择题。两种形态的对比按六个维度展开:
| 维度 | 云端部署(GPU 服务器 + API) | 边缘部署(手机/PC/本地服务器) |
|---|---|---|
| 首字延迟 | 网络往返加数十到数百毫秒 | 本地无网络开销 |
| 数据隐私 | 数据出域(除非私有云) | 数据不出设备 |
| 成本结构 | 按用量/按卡时,量大可控 | 硬件一次性 + 边际近零 |
| 模型规模 | 可跑最大模型 | 受限于内存(量化小模型为主) |
| 更新迭代 | 分钟级全局更新 | 需推送到端,周期长 |
| 离线能力 | 无网不可用 | 完全离线可用 |
决策经验法则:默认云端(运维简单、模型可大、迭代快);以下三种情况认真考虑边缘——隐私合规要求数据不出域(医疗、金融内部场景)、弱网或离线环境(车载、工厂、飞行模式应用)、调用频次极高且任务简单(输入法联想类,边缘小模型比云端便宜百倍)。第三种是最常被忽略的:一个 int4 的 1B 模型在端上做简单任务,成本结构碾压云端旗舰模型。
现实系统常是混合的:端侧小模型做初筛与简单任务,复杂请求升级到云端大模型——与第 1.2 节"大模型 + 传统模型混合"、第 4.3 节"API + 私有混合"一脉相承的分层思想。
裸模型不能上线,服务化层负责把"一次生成"包装成可靠的接口。当代事实标准是 OpenAI 兼容的聊天补全 API 格式——请求带消息列表与采样参数,返回生成内容。坚持兼容标准格式的实际好处:上层应用(各类编排框架、SDK)即插即用,换后端模型不改业务代码。

三个机制值得展开:
流式返回是体验的生命线。非流式下用户盯着空白等十几秒;流式(服务端逐 token 推送)把体感延迟从"总时长"变成"首字延迟 + 匀速出字",等待焦虑消失。推理框架普遍支持,业务端用标准的事件流接口接收即可。
多适配器服务是第 6.3 节 LoRA 红利的兑现处:一份基座权重常驻显存(占大头),各业务的 LoRA(几十 MB)按需热加载,请求路由到对应适配器。十个业务共享一份基座显存,硬件利用率成倍提升。
工具生态按场景分三档:vLLM/SGLang/TensorRT-LLM(GPU 服务器主力,高吞吐)、Ollama/llama.cpp(个人与端侧,易用优先)、云厂商托管服务(免运维、按量计费)。同一 OpenAI 格式下互换成本很低。
单卡装不下大模型或单实例扛不住流量时,两条扩展路径:
模型切分:与训练时的并行同族——张量并行(大矩阵切开多卡算,注意通信开销只适合机内)、管道并行(层分段跨机)。张量并行度通常固定为单机卡数,跨机扩展靠管道与副本。
多副本与路由:多个完整实例并行,前置负载均衡按显存压力(KV 缓存占用)而非简单轮询分发——两个实例一个闲一个满是最常见的浪费。会话亲和(同一会话粘同实例可复用前缀缓存)与优先级队列(付费用户优先)是进阶手段。
扩缩容:GPU 服务冷启动慢(加载权重数分钟),激进自动缩容会伤体验;常用策略是"缩容保守 + 预热缓冲 + 按业务峰谷定时扩容"。长连接(流式)让滚动更新变复杂——优雅下线要等流式响应吐完。
上线只是开始,监控体系四类指标(上图底部)各有要点:
告警设计的务实原则:告 P99 超阈值与错误率,不告平均值;容量类指标(队列长度、缓存水位)设提前量告警;每条告警必须对应一个明确的处置动作,否则删掉。
⚠️ 上线前必查清单:并发压测做过吗(不是单请求测)?超长输入的超时与截断策略定了吗?流式连接断开重连处理了吗?模型输出被下游当 JSON 解析时有格式校验兜底吗?配额与限流能防住一个用户打爆全站吗?——五问都过,才算真上线。
沿用第 4.3 节框架:流量小、验证期,用 API(免运维);流量大且稳定(每天千万级调用)、或有隐私合规要求,自部署(vLLM + 开源模型)的边际成本优势显现。中间态(白天高峰自部署、溢出走 API)也是常见架构。
取决于模型大小、量化档位、输入输出长度分布与 SLA。经验数量级:单张 80GB 级卡跑量化 7B 模型,中等长度对话可支撑每秒几十个并发请求。准确的数要用自己的流量画像压测,别人的数字没有参考价值。
推理服务的灰度发布与常规服务类似但多一层:输出不确定性。做法是新版本先在影子流量上跑(镜像请求、不影响用户),对比新旧输出质量(第 8 章的评测集),达标后按百分比切流。直接全量切换大模型版本是重大事故的常见来源。
监控体系的成色要在故障里检验。三个高发场景的处置剧本,供参考:
剧本一:高峰期 P99 飙升。 症状:延迟告警,平均延迟正常。诊断顺序:查队列长度(排队导致,扩容或降批延迟)——查 KV 缓存水位(长上下文请求挤占,需限制单请求上下文或扩容)——查是否有异常超长请求(某用户粘贴整本书,加输入长度限制)。根因九成在这三处。
剧本二:输出质量突变。 症状:负反馈率上升,无任何部署变更。排查:上游数据是否变化(提示词模板被业务侧改动)——模型接口是否静默更新(供应商升级了底层版本)——检索库是否混入坏文档(RAG 场景)。启示:模型服务的质量监控必须覆盖"你不可控的上游",第 8.3 节的评测集回归在这里登场。
剧本三:某类请求全部失败。 症状:错误率告警集中在特定模式。常见根因:输出被下游当 JSON 解析而模型偶尔加了格式外文字(加结构化输出约束与解析容错)——某条路由规则把超长请求发给了小上下文实例——适配器挂载冲突(多业务共用基座时路由错配)。
三个剧本的共同主题:推理服务的故障,多数不是模型坏了,而是系统其他部分变了。因此监控要盯着整条链路,而不只是模型本身——这也是把第 7 章称为"系统工程"而非"模型工程"的原因。
容量规划不必精确建模,用经验公式起步:先测单实例在目标延迟约束下的稳态吞吐(压测得出),再除以业务峰值每秒请求数,得所需实例数,最后乘以一点五的安全系数应对波动与故障切换。真正要小心的两个非线性因素:长上下文请求对 KV 缓存的挤占(实例数要按显存再验一遍)、流式连接对滚动更新的拖拽(更新窗口要预留)。公式加两个修正,容量规划就从玄学变成了算术。
多了一层"输出不确定性":普通服务新版行为可以枚举验证,模型新版连同样的输入都可能给出不同输出。因此模型灰度的重点是"分布级对比"而非"用例级对比"——用固定评测集跑新旧版本的指标对比(第 8 章),同时监控线上负反馈率的迁移,两者都平稳才逐步放量。跳过评测集直接切流,是模型服务事故榜上排名第一的原因。
按"常驻与按需"两档规划:高频主力模型常驻显存(含其 KV 缓存余量,按并发峰值估);低频模型按需加载(秒到分钟级冷启动成本,用预热与空闲回收控制)。规划的核心公式是"常驻权重大小加预计缓存峰值不超过总显存的八成"——留两成余量应对突发与碎片。多数显存事故的根因,都是把余量算到了一百 percent。
初期手动即可(脚本化部署、人工发版),但两条线值得尽早自动化:评测回归(发版闸门,第 8 章)与基础扩缩容(流量峰谷的自动应对)。更高级的全自动金丝雀发布,等团队规模与流量 justified 之后再上。自动化的正确顺序是"先自动化防事故的部分,再自动化省人力的部分"——反过来做,省下的人力会加倍还给事故处理。
交付链路走完,第 8 章补上质量闭环:怎么科学地知道一个模型(或一次更新)到底好不好。