1. 模型 Serving 概述

模型 Serving(模型服务)是机器学习工程化落地的最后一公里,它将训练好的模型封装为可对外提供推理能力的在线服务接口。在 MLOps 全生命周期中,Serving 处于模型训练与业务应用之间的桥梁位置,直接决定了模型能否稳定、高效、安全地产生业务价值。

1.1 模型 Serving 的定义

模型 Serving 是指将训练完成的机器学习模型部署到生产环境,通过标准协议(如 HTTP/gRPC)接收推理请求,执行模型前向计算,并返回预测结果的过程。其核心职责包括:

  • 模型加载与生命周期管理:从存储系统加载模型文件,管理版本切换与热更新。
  • 推理请求处理:解析输入数据,执行特征预处理、模型推理、后处理。
  • 资源调度与弹性伸缩:根据请求量动态分配 GPU/CPU 资源,保障延迟与吞吐量。
  • 监控与可观测性:采集推理延迟、QPS、错误率等指标,支持链路追踪与日志。
关键认知:模型 Serving 不是简单的“模型文件 + Web 服务器”,而是包含模型版本管理、请求路由、批处理、缓存、降级熔断等能力的系统工程。

1.2 在 MLOps 中的位置

MLOps 将机器学习生命周期划分为数据工程、模型开发、模型部署、监控运维四大阶段。模型 Serving 位于模型部署阶段的核心位置,向上承接模型训练产出的模型制品,向下对接业务系统与监控体系。

MLOps 生命周期与模型 Serving 位置 数据工程 采集 · 清洗 · 标注 模型开发 训练 · 调参 · 评估 模型部署 Serving · 回测 · 灰度 监控运维 告警 · 回滚 · 迭代 反馈回路(数据漂移 → 重新训练) 说明 • 模型 Serving 是模型部署阶段的核心组件,直接面向业务请求。 • 回测与灰度是 Serving 上线前的关键验证环节,确保模型质量与稳定性。 • 监控运维阶段的反向反馈驱动模型持续迭代,形成 MLOps 闭环。

1.3 模型 Serving 与模型训练的区别

模型训练与模型 Serving 在目标、环境、性能要求、技术栈等方面存在显著差异。理解这些区别是设计可靠 Serving 系统的基础。

对比维度 模型训练 模型 Serving
核心目标 最小化损失函数,提升模型精度 最小化推理延迟,保障服务可用性
数据形态 批量数据(Batch),全量数据集 单条或小批量请求(Online)
计算资源 GPU 集群,高吞吐训练卡 GPU/CPU 混合,低延迟推理卡
框架依赖 PyTorch/TensorFlow 训练框架 Triton/TF Serving/ONNX Runtime
版本管理 实验版本、Checkpoint 管理 生产版本、灰度发布、回滚
性能指标 训练吞吐(样本/秒)、收敛速度 P99 延迟、QPS、错误率
容错要求 任务失败可重跑,容忍中断 高可用,单点故障自动切换
实践要点:训练阶段追求模型精度,Serving 阶段追求服务稳定性。训练代码通常使用 float32 精度,而 Serving 可量化至 int8 以换取更低延迟。训练环境允许动态图调试,Serving 环境必须使用静态图或编译优化后的推理引擎。

1.4 Serving 系统的核心架构

一个生产级的模型 Serving 系统通常包含以下组件:

  • 网关层:负责请求路由、认证鉴权、限流熔断。
  • 推理引擎:执行模型加载与计算,支持多模型并发。
  • 模型仓库:存储模型制品,支持版本管理与热加载。
  • 监控告警:采集指标、日志、链路追踪数据。
  • 弹性伸缩:基于负载自动扩缩容实例。
模型 Serving 核心架构 客户端 网关层 限流 · 鉴权 · 路由 推理引擎 Triton / TF Serving 模型仓库 版本管理 · 热加载 监控告警 · 弹性伸缩 · 日志追踪 架构要点:网关层负责流量治理,推理引擎专注计算,模型仓库管理制品版本,监控体系保障可观测性。 各层通过标准协议(HTTP/gRPC)通信,支持独立扩缩容。

1.5 本章小结

  • 模型 Serving 是 MLOps 中模型部署阶段的核心,负责将模型转化为在线推理服务。
  • 与模型训练相比,Serving 更关注延迟、吞吐、可用性等运维指标。
  • 生产级 Serving 系统需要网关、推理引擎、模型仓库、监控等组件协同工作。
  • 回测与灰度是 Serving 上线前的关键质量保障手段,将在后续章节深入展开。