模型训练完成只是开始。真正困难的是让模型稳定运行在生产环境中,接收真实请求,处理数据变化,响应业务流量,并在出问题时能够发现和回滚。
模型服务化的目标,是把模型变成一个可调用、可监控、可升级、可治理的软件组件。
一、在线推理与批量推理
常见部署形态有两类:
| 形态 | 特点 |
|---|---|
| 在线推理 | 实时请求实时返回,关注延迟和可用性 |
| 批量推理 | 定时处理大批数据,关注吞吐和调度稳定性 |
推荐排序、风控拦截、智能客服通常需要在线推理。用户分群、离线评分、日报预测可以使用批量推理。
二、特征一致性
生产问题中最常见的一类,是训练特征和线上特征不一致。训练时使用的是离线表,线上使用的是实时服务,如果口径、时间窗口、缺失处理或编码方式不同,模型效果会明显下降。
需要保证:
- 特征定义一致。
- 时间窗口一致。
- 缺失值处理一致。
- 类别编码和归一化参数一致。
- 训练和推理使用同一版本的特征逻辑。
这也是特征平台和特征注册表存在的原因。
三、模型版本管理
每个线上模型都应该能回答:
- 训练数据来自哪个时间范围。
- 使用了哪些特征版本。
- 训练代码版本是什么。
- 评估指标是多少。
- 当前部署在哪些环境。
- 如何回滚到上一版。
如果模型文件只是一个 model.pkl,上线后很快会失去可追踪性。模型版本管理是 MLOps 的基础。
四、服务接口设计
模型服务通常需要提供标准接口:
1 | 输入:样本特征、上下文、请求 ID |
返回模型版本很重要。它能帮助后续排查某个预测结果来自哪一版模型。
五、延迟与吞吐
在线服务必须关注:
- P50、P95、P99 延迟。
- QPS 和峰值流量。
- 模型加载时间。
- 批量请求合并。
- CPU/GPU 资源利用率。
- 超时和降级策略。
大模型或深度模型可能需要压缩、蒸馏、量化、缓存或异步推理,才能满足线上性能要求。
六、数据漂移和概念漂移
数据漂移指输入分布变化,例如用户年龄结构、设备类型、商品价格带变化。概念漂移指输入和标签之间关系变化,例如同样的行为在新业务阶段代表不同意图。
监控方式包括:
- 特征分布统计。
- 缺失率和异常率。
- 预测分数分布。
- 线上转化率或错误率。
- 分组指标变化。
发现漂移后,不一定立刻重训。要先确认是数据问题、业务变化、流量变化,还是模型本身失效。
七、灰度发布与回滚
新模型上线不应直接替换全量流量。更稳的流程是:
- 离线评估通过。
- 影子模式记录预测但不影响业务。
- 小流量灰度。
- 对比线上指标。
- 扩大流量或回滚。
回滚机制必须提前准备。模型系统和普通服务一样,也会出现发布失败、指标异常和依赖故障。
八、实践建议
把模型当成生产服务来治理,而不是一次性文件。训练、评估、部署、监控、报警、回滚和再训练都要有明确流程。
一个稳定的模型服务,核心不是“模型有多先进”,而是它在真实流量、真实数据和真实故障中仍然可观察、可控制、可恢复。