2. 风险拦截模型 Serving 架构总览:在线推理、离线批处理与实时流处理
保险风险拦截模型从训练完成到生产环境落地,需要根据业务场景的延迟要求、数据特征和计算成本,选择不同的 Serving 架构。本章从架构视角出发,系统梳理三种主流推理模式:在线推理、离线批处理和实时流处理,并对比其适用场景、技术栈与部署要点。
2.1 三种架构核心对比
| 维度 | 在线推理 (Online) | 离线批处理 (Batch) | 实时流处理 (Streaming) |
|---|---|---|---|
| 延迟要求 | 毫秒级(< 100ms) | 分钟~小时级 | 秒级(< 10s) |
| 数据源 | API 请求(单条) | HDFS / 数仓(批量) | Kafka / Pulsar(流式) |
| 典型场景 | 投保实时核保、欺诈拦截 | 日终风险评分、批量续保审核 | 行为埋点实时预警、动态定价 |
| 计算模式 | 同步请求-响应 | 异步分布式任务 | 持续微批处理 |
| 资源特征 | GPU/CPU 常驻,弹性伸缩 | 按需拉起,任务结束后释放 | 长运行,有状态处理 |
| 模型更新 | 蓝绿部署 / 金丝雀发布 | 版本快照切换 | 热加载 / 状态迁移 |
2.2 在线推理架构(实时核保与欺诈拦截)
在线推理是保险风险拦截中最核心的 Serving 模式,直接面向投保请求、理赔申请等实时交互场景。架构以 API Gateway 为入口,经过 特征工程服务 和 模型推理引擎,最终返回风险评分与决策建议。
关键指标: P99 延迟 < 50ms,吞吐量 > 1000 QPS,支持模型热更新。
在线推理关键组件
- API Gateway: 负责鉴权、限流、请求路由,支持 gRPC 与 HTTP/2 协议。
- 特征工程服务: 实时拼接用户画像、保单信息、第三方数据,完成特征标准化与缺失值填充。
- 模型推理引擎: 使用 Triton Inference Server 或 TorchServe 加载模型,支持 GPU 加速与动态批处理。
- 特征存储: 高频特征缓存至 Redis,减少重复计算;低频特征从 HBase 或 MySQL 读取。
2.3 离线批处理架构(日终风险评分与批量审核)
离线批处理适用于对延迟不敏感、数据量大的场景,如每日凌晨对全量保单进行风险重评估、批量续保审核。架构以 任务调度中心 为驱动,通过 分布式计算引擎 完成大规模特征工程与模型推理。
最佳实践: 离线批处理建议使用 Spark MLlib 或 XGBoost4J-Spark,将模型推理嵌入 DataFrame 的 UDF 中,避免数据倾斜。
离线批处理执行流程
- 任务触发: 调度中心(Airflow / DolphinScheduler)按 Cron 表达式触发日终任务。
- 数据加载: 从 HDFS 或数据仓库读取待评估保单宽表,分区裁剪避免全表扫描。
- 特征工程: 使用 Spark SQL 完成特征聚合、窗口计算,生成模型输入向量。
- 模型推理: 加载预训练模型(XGBoost / LightGBM / DNN),通过 mapPartitions 批量推理。
- 结果落地: 风险评分写入结果表,高风险保单触发告警或人工审核流程。
2.4 实时流处理架构(行为埋点实时预警与动态定价)
实时流处理介于在线与离线之间,适用于需要秒级响应但数据量持续涌入的场景,如用户行为埋点实时风险预警、基于驾驶行为的车险动态定价。架构以 消息队列 为缓冲,流处理引擎 完成状态管理与模型推理。
避坑提示: 流处理中的模型推理必须考虑状态一致性,避免因数据乱序或重复消费导致评分错误。建议使用 Flink 的 Exactly-Once 语义与事件时间处理。
流处理架构关键设计
- 消息队列: 使用 Kafka 作为数据缓冲,设置合理的分区数(建议为 Flink 并行度的 2~3 倍)。
- 状态管理: 使用 Flink Keyed State 存储用户会话特征,如 30 秒内点击频次、设备指纹等。
- 模型推理: 在 ProcessFunction 中调用模型,支持 ONNX Runtime 或 PMML 引擎,避免 Python 进程通信开销。
- 结果输出: 高风险事件直接写入告警 Topic,动态定价结果更新至 Redis 供在线服务读取。
2.5 架构选型决策矩阵
| 决策条件 | 推荐架构 | 理由 |
|---|---|---|
| 延迟要求 < 100ms,单条请求 | 在线推理 | 同步响应,直接返回风险评分 |
| 数据量 > 1000 万条/天,无实时要求 | 离线批处理 | 分布式计算,成本低,吞吐高 |
| 数据持续流入,秒级预警 | 实时流处理 | 有状态处理,支持窗口聚合 |
| 混合场景:在线 + 离线 | Lambda 架构 | 批流分离,兼顾实时与全量 |
| 统一批流,减少维护成本 | Kappa 架构 | 全部走流处理,离线回放历史 |
实战建议: 保险风险拦截项目初期建议优先实现在线推理(覆盖核心投保流程)与离线批处理(日终全量评估),待数据管道成熟后再引入实时流处理。避免一开始就追求全量实时,导致架构复杂度过高。