2. 模型服务化基础
2.1 模型服务化的定义
模型服务化(Model Serving)是将训练完成的机器学习模型封装为可被外部系统实时调用的网络服务的过程。在风控网关场景下,模型服务化意味着将风控模型(如评分卡、XGBoost、深度学习模型)部署为低延迟、高可用的 API 端点,供交易系统、审批系统等上游实时调用。
核心目标:让模型从“离线实验产物”转变为“在线生产组件”,实现请求级实时推理。
模型服务化通常包含以下关键环节:
- 模型加载与生命周期管理:从存储(本地文件、对象存储、模型仓库)加载模型到内存,并管理热加载、版本切换。
- 请求预处理与特征工程:将原始请求数据转换为模型输入张量或特征向量,包括缺失值填充、标准化、编码等。
- 推理执行引擎:调用模型进行前向计算,支持单模型、多模型组合或模型集成。
- 结果后处理与响应封装:将模型原始输出(如概率、分数)转换为业务可理解的决策结果。
- 监控与可观测性:记录延迟、吞吐、错误率、模型漂移指标,支持告警和回滚。
2.2 与传统批处理推理的区别
传统批处理推理(Batch Inference)与在线模型服务化(Online Serving)在架构、延迟要求和资源管理上存在本质差异。下表从多个维度进行对比:
| 对比维度 | 批处理推理 | 在线模型服务化 |
|---|---|---|
| 触发方式 | 定时调度(如 Cron、Airflow) | 实时请求(HTTP/gRPC) |
| 延迟要求 | 分钟级 ~ 小时级 | 毫秒级(P99 < 100ms 常见) |
| 数据规模 | 全量或大批量(百万 ~ 亿级) | 单条或小批量(1 ~ 100 条) |
| 资源模式 | 按需分配,可弹性伸缩 | 常驻服务,需预留资源应对峰值 |
| 容错策略 | 任务重试 + 断点续跑 | 负载均衡 + 熔断 + 降级 |
| 模型更新 | 离线替换,下次调度生效 | 热加载 / 蓝绿部署 / 金丝雀发布 |
| 典型场景 | 月度信用评分、离线反欺诈特征计算 | 实时交易拦截、在线授信审批 |
关键认知:在线服务化不是批处理的简单加速,而是从架构设计、资源管理到运维体系的全方位重构。风控网关对延迟的敏感性决定了其必须采用在线服务化架构。
2.3 在线推理的关键指标
衡量一个模型服务化系统是否合格,需要从延迟、吞吐、可用性三个核心维度进行量化评估。这三个指标相互制约,构成在线推理系统的“不可能三角”。
2.3.1 延迟(Latency)
延迟指从客户端发送请求到收到完整响应所经过的时间。在风控场景中,通常关注以下分位值:
- 平均延迟(Avg Latency):所有请求延迟的算术平均值,反映整体性能趋势。
- P99 延迟:99% 的请求延迟低于该值,代表尾部延迟,是风控网关最关键的 SLA 指标。
- P999 延迟:99.9% 的请求延迟,用于捕捉极端慢请求。
延迟的构成可分解为网络传输、请求排队、预处理、模型推理、后处理五个阶段。其中模型推理通常占比最大(50%~80%)。
2.3.2 吞吐(Throughput)
吞吐指单位时间内系统能处理的请求数量,常用 QPS(Queries Per Second)或 TPS(Transactions Per Second)表示。吞吐与延迟存在直接关联:
- 当系统负载较低时,吞吐增加对延迟影响较小。
- 当系统接近饱和点时,吞吐的微小增加会导致延迟急剧上升(拐点效应)。
工程陷阱:不要只优化平均延迟而忽略吞吐上限。一个平均延迟 10ms 但最大吞吐仅 100 QPS 的服务,在流量突发时可能直接雪崩。
2.3.3 可用性(Availability)
可用性衡量系统在给定时间范围内正常提供服务的能力,通常用百分比表示:
| 可用性等级 | 年故障时间 | 典型场景 |
|---|---|---|
| 99.9%(三个九) | ≤ 8.76 小时 | 内部风控辅助决策 |
| 99.99%(四个九) | ≤ 52.56 分钟 | 核心交易风控 |
| 99.999%(五个九) | ≤ 5.26 分钟 | 支付网关、实时拦截 |
可用性不仅依赖服务本身的稳定性,还依赖依赖链路的健壮性。风控网关通常通过多副本部署、熔断降级、缓存兜底等手段保障高可用。
2.4 风控场景下的特殊要求
相比通用模型服务,风控网关模型服务化还有以下额外约束:
- 确定性推理:相同输入必须产生相同输出,避免因模型版本不一致或浮点精度导致决策差异。
- 特征一致性:在线特征工程必须与离线训练时的特征工程完全对齐,否则会导致训练-推理偏差(Training-Serving Skew)。
- 可解释性:风控决策通常需要输出拒绝原因码或特征贡献度,模型服务需支持返回中间特征值或 SHAP 值。
- 灰度与回滚:模型上线必须支持流量灰度(如 1%、5%、50%),发现问题后能秒级回滚到上一版本。
最佳实践:在风控网关中,建议将模型服务化与特征服务化分离。模型服务只负责推理,特征计算由独立的特征平台提供,降低耦合度。