2、在线推理链路概念

在信用评分系统中,在线推理是指当用户发起贷款申请、信用卡审批或额度调整等实时请求时,系统在毫秒至秒级时间内完成特征计算、模型打分并输出决策结果的过程。与之相对的是离线批处理,两者在时效性、数据范围和计算模式上存在本质差异。

2.1 什么是在线推理

在线推理(Online Inference)是模型在生产环境中接收单条或小批量实时请求,经过特征工程和模型计算后立即返回预测结果的过程。在信用评分场景下,在线推理的典型输入包括用户身份信息、征信报告、交易流水等,输出为违约概率、信用分数或拒绝/通过/人工审核等决策。

核心特征:低延迟(通常 < 200ms)、高并发(数千 QPS)、强一致性(同一用户多次请求结果一致)、高可用(99.9%+ SLA)。

2.2 离线批处理与在线推理的区别

离线批处理通常用于模型训练、特征回溯、批量用户评分(如贷后监控、存量客户分层)。下表从多个维度对比两种模式:

对比维度 离线批处理 在线推理
触发方式 定时调度(每日/每小时) 实时请求(API 调用)
数据范围 全量用户或大批量分片 单条用户请求
延迟要求 分钟级 ~ 小时级 毫秒级 ~ 秒级
计算引擎 Spark / Hive / Flink 模型服务容器 / 推理网关
特征来源 离线数仓(HDFS / Hive 表) 在线 KV 存储 / 实时特征平台
模型部署 模型文件 + 批处理脚本 模型服务化(Triton / TorchServe / PMML)
容错策略 任务重跑 + 断点续传 超时重试 + 降级策略 + 熔断
典型场景 模型训练、特征回溯、批量评分 实时审批、反欺诈拦截、额度试算
实践建议:在线推理链路中,特征工程的计算逻辑必须与离线训练时完全一致,否则会导致训练-推理偏差(Training-Serving Skew)。建议将特征计算代码封装为共享库,在离线和在线两端复用。

2.3 在线推理链路的典型架构

一条完整的信用评分在线推理链路通常包含四个核心阶段:请求入口 → 特征工程 → 模型推理 → 决策输出。下图展示了各阶段的组件与数据流:

信用评分在线推理链路架构图 信用评分在线推理链路架构 请求入口 API 网关 / 负载均衡 特征工程 特征获取 → 特征计算 → 特征拼接 模型推理 模型服务 / 推理引擎 决策输出 规则引擎 / 决策表 在线特征存储 Redis / HBase / 特征平台 模型仓库 模型版本管理 / 热加载 决策结果 通过 / 拒绝 / 人工审核 额度建议 / 利率定价

2.4 各阶段详解

2.4.1 请求入口

请求入口是推理链路的第一道关卡,负责接收客户端(如 H5 页面、APP、第三方渠道)发起的评分请求。主要职责包括:

  • 协议转换:将 HTTP/gRPC 请求转换为内部 RPC 调用。
  • 鉴权与限流:校验 API Key、Token,按用户/渠道维度进行 QPS 限流。
  • 参数校验:检查必填字段(如身份证号、手机号)是否完整、格式是否正确。
  • 路由分发:根据请求类型(如申请评分、行为评分)路由到对应的推理服务。

2.4.2 特征工程

特征工程是在线推理链路中最复杂、最容易出错的环节。它通常包含三个子步骤:

  1. 特征获取:从在线存储(Redis、HBase)或外部接口(征信机构、第三方数据源)拉取原始数据。
  2. 特征计算:执行与离线训练完全一致的衍生逻辑,如 WOE 编码、分箱映射、聚合统计(近 30 天借款次数、最大逾期天数等)。
  3. 特征拼接:将多个来源的特征按用户 ID 对齐,组装成模型输入向量。
常见陷阱:特征工程中若使用实时计算(如滑动窗口统计),需注意窗口边界与离线一致。例如离线使用自然月统计,在线也应使用自然月,而非滚动 30 天,否则会导致分数偏差。

2.4.3 模型推理

模型推理阶段将特征向量输入已部署的模型,输出预测结果。常见的模型服务化方案包括:

方案 适用模型类型 延迟 特点
Triton Inference Server TensorFlow / PyTorch / ONNX 低(~10ms) 支持多模型、动态批处理、GPU 加速
TorchServe PyTorch 中(~20ms) 与 PyTorch 生态深度集成
PMML / PFA 传统 ML(LR / GBDT / RF) 低(~5ms) 跨语言部署,无需重写模型逻辑
自研推理引擎 自定义规则 + 轻量模型 极低(< 2ms) 高度定制,适合简单评分卡

2.4.4 决策输出

模型推理输出的原始分数(如违约概率 0.12)通常不能直接用于业务决策,需要经过决策引擎进行后处理:

  • 分数映射:将模型输出映射为业务可理解的信用分数(如 300~850 分)。
  • 规则叠加:在模型分数基础上叠加硬性规则(如黑名单直接拒绝、多头借贷超限降额)。
  • 决策矩阵:根据分数 + 规则组合,输出最终决策(通过 / 拒绝 / 人工审核)及额度、利率建议。
  • 结果回写:将决策结果写入数据库或消息队列,供后续贷后监控、报表分析使用。
架构要点:决策输出阶段应设计为可配置化,通过规则引擎(如 Drools、EasyRules)或决策表管理,避免每次业务策略调整都修改代码重新部署。

2.5 在线推理链路的非功能性要求

除了功能流程外,生产级在线推理链路还需满足以下非功能性要求:

  • 高可用:服务多副本部署,单节点故障不影响整体链路。
  • 可观测性:全链路埋点(Trace ID),监控每个阶段的延迟、成功率、特征缺失率。
  • 灰度发布:新模型上线时支持 A/B 测试或金丝雀发布,逐步切换流量。
  • 降级与熔断:当特征存储或模型服务超时时,启用降级策略(如使用缓存特征、返回默认分数)。
  • 数据一致性:同一用户重复请求应返回相同结果(幂等性),避免因重试导致分数波动。

下图展示了在线推理链路中非功能性能力的支撑关系:

在线推理链路非功能性能力支撑图 在线推理链路非功能性能力支撑 在线推理链路 核心流程 高可用 可观测性 灰度发布 降级与熔断 数据一致性 安全与审计
工程落地建议:在搭建在线推理链路初期,优先保证高可用和可观测性,这两项是排查线上问题的基础。灰度发布和降级熔断可在链路稳定后逐步完善。