模型训练完成只是开始。真正困难的是让模型稳定运行在生产环境中,接收真实请求,处理数据变化,响应业务流量,并在出问题时能够发现和回滚。

模型服务化的目标,是把模型变成一个可调用、可监控、可升级、可治理的软件组件。

一、在线推理与批量推理

常见部署形态有两类:

形态 特点
在线推理 实时请求实时返回,关注延迟和可用性
批量推理 定时处理大批数据,关注吞吐和调度稳定性

推荐排序、风控拦截、智能客服通常需要在线推理。用户分群、离线评分、日报预测可以使用批量推理。

二、特征一致性

生产问题中最常见的一类,是训练特征和线上特征不一致。训练时使用的是离线表,线上使用的是实时服务,如果口径、时间窗口、缺失处理或编码方式不同,模型效果会明显下降。

需要保证:

  • 特征定义一致。
  • 时间窗口一致。
  • 缺失值处理一致。
  • 类别编码和归一化参数一致。
  • 训练和推理使用同一版本的特征逻辑。

这也是特征平台和特征注册表存在的原因。

三、模型版本管理

每个线上模型都应该能回答:

  • 训练数据来自哪个时间范围。
  • 使用了哪些特征版本。
  • 训练代码版本是什么。
  • 评估指标是多少。
  • 当前部署在哪些环境。
  • 如何回滚到上一版。

如果模型文件只是一个 model.pkl,上线后很快会失去可追踪性。模型版本管理是 MLOps 的基础。

四、服务接口设计

模型服务通常需要提供标准接口:

1
2
3
输入:样本特征、上下文、请求 ID
输出:预测分数、类别、置信度、模型版本
日志:输入摘要、输出结果、耗时、异常

返回模型版本很重要。它能帮助后续排查某个预测结果来自哪一版模型。

五、延迟与吞吐

在线服务必须关注:

  • P50、P95、P99 延迟。
  • QPS 和峰值流量。
  • 模型加载时间。
  • 批量请求合并。
  • CPU/GPU 资源利用率。
  • 超时和降级策略。

大模型或深度模型可能需要压缩、蒸馏、量化、缓存或异步推理,才能满足线上性能要求。

六、数据漂移和概念漂移

数据漂移指输入分布变化,例如用户年龄结构、设备类型、商品价格带变化。概念漂移指输入和标签之间关系变化,例如同样的行为在新业务阶段代表不同意图。

监控方式包括:

  • 特征分布统计。
  • 缺失率和异常率。
  • 预测分数分布。
  • 线上转化率或错误率。
  • 分组指标变化。

发现漂移后,不一定立刻重训。要先确认是数据问题、业务变化、流量变化,还是模型本身失效。

七、灰度发布与回滚

新模型上线不应直接替换全量流量。更稳的流程是:

  1. 离线评估通过。
  2. 影子模式记录预测但不影响业务。
  3. 小流量灰度。
  4. 对比线上指标。
  5. 扩大流量或回滚。

回滚机制必须提前准备。模型系统和普通服务一样,也会出现发布失败、指标异常和依赖故障。

八、实践建议

把模型当成生产服务来治理,而不是一次性文件。训练、评估、部署、监控、报警、回滚和再训练都要有明确流程。

一个稳定的模型服务,核心不是“模型有多先进”,而是它在真实流量、真实数据和真实故障中仍然可观察、可控制、可恢复。