3. Model Serving 基础概念
在实时风险拦截系统中,模型从训练完成到真正产生业务价值,中间最关键的一环就是 Model Serving(模型服务化)。本章将围绕模型推理的基本原理、在线预测与批量预测的核心差异,以及延迟与吞吐量这两个关键性能指标展开,为后续搭建高可用风险拦截服务打下理论基础。
3.1 模型推理:从参数到预测结果
模型推理(Inference)是指将训练好的模型加载到内存中,接收输入特征数据,经过前向计算(Forward Pass)后输出预测结果的过程。在风险拦截场景中,推理通常包含以下步骤:
- 特征预处理:对原始请求数据进行标准化、缺失值填充、类别编码等操作。
- 模型加载与计算:将预处理后的特征向量输入模型,执行矩阵运算、激活函数等计算。
- 后处理与阈值判定:将模型原始输出(如概率值)转换为业务决策(如“拦截”或“放行”)。
关键认知: 推理与训练的本质区别在于——推理不更新模型参数,只执行前向传播。因此推理的计算量通常远小于训练,但对延迟和稳定性要求极高。
3.2 在线预测 vs 批量预测
在 Model Serving 中,根据请求的触发方式和数据组织形式,预测模式主要分为 在线预测(Online Prediction) 和 批量预测(Batch Prediction)。两者在实时风险拦截中的适用场景截然不同。
| 对比维度 | 在线预测 | 批量预测 |
|---|---|---|
| 触发方式 | 单个请求实时触发 | 定时任务或数据积压触发 |
| 数据规模 | 单条或少量样本 | 大量样本(千/万/百万级) |
| 延迟要求 | 毫秒级(通常 < 100ms) | 分钟级或小时级 |
| 吞吐量特征 | 高并发、低延迟 | 高吞吐、可接受较长等待 |
| 资源利用 | 常驻服务,资源持续占用 | 任务式运行,资源可释放 |
| 典型风险场景 | 登录/支付/下单实时风控 | 离线黑产画像、批量审核 |
实践建议: 实时风险拦截系统以在线预测为主,但可结合批量预测做离线补充。例如,在线模型拦截实时请求,批量模型每天凌晨更新用户风险画像,次日供在线模型使用。
3.3 延迟与吞吐量:关键性能指标
在实时风险拦截的 Model Serving 设计中,延迟(Latency) 和 吞吐量(Throughput) 是最核心的两个性能指标,它们直接决定了系统能否在业务高峰期稳定运行。
3.3.1 延迟(Latency)
延迟指从发送预测请求到收到完整响应所经过的时间。在风险拦截场景中,通常关注以下延迟指标:
- P50(中位数延迟):反映大多数请求的体验,通常要求 < 20ms。
- P99(99分位延迟):反映最慢 1% 请求的体验,是系统稳定性的关键指标,通常要求 < 100ms。
- P999(99.9分位延迟):反映极端情况下的延迟,用于排查长尾问题。
常见陷阱: 仅优化平均延迟(P50)而忽略 P99 延迟,可能导致在流量突发时大量请求超时。实时风控场景下,P99 延迟比平均延迟更具业务意义。
3.3.2 吞吐量(Throughput)
吞吐量指单位时间内系统能够处理的预测请求数量,通常以 QPS(Queries Per Second) 或 TPS(Transactions Per Second) 衡量。吞吐量受以下因素影响:
- 模型计算复杂度:模型参数量、层数、输入特征维度。
- 硬件资源:CPU/GPU 算力、内存带宽、网络 IO。
- 服务架构:是否支持批处理(Batching)、异步推理、模型并行。
3.3.3 延迟与吞吐量的权衡
延迟和吞吐量通常呈 跷跷板关系:
| 优化方向 | 对延迟的影响 | 对吞吐量的影响 | 适用场景 |
|---|---|---|---|
| 增大 Batch Size | 延迟上升(等待更多数据) | 吞吐量上升(计算效率更高) | 批量预测、离线任务 |
| 模型量化(INT8) | 延迟下降(计算更快) | 吞吐量上升(单次处理更多请求) | 在线预测、资源受限场景 |
| 增加服务副本数 | 延迟可能下降(负载分散) | 吞吐量线性上升 | 在线预测、高并发场景 |
| 模型蒸馏(小模型) | 延迟下降 | 吞吐量上升 | 在线预测、延迟敏感场景 |
实时风险拦截的黄金法则: 在保证 P99 延迟不超过业务阈值(如 100ms)的前提下,最大化吞吐量。通常通过动态批处理(Dynamic Batching)和模型优化来实现。