4. 规则引擎架构概览:风控规则引擎整体架构图、决策流、规则集、特征工厂、模型服务的关系
风控规则引擎是实时决策系统的核心执行单元。要理解 PSI 监控的部署位置与告警触发逻辑,必须先厘清引擎内部各模块的协作关系。本章从整体架构出发,逐一拆解决策流、规则集、特征工厂与模型服务之间的数据流转与职责边界。
4.1 整体架构分层
风控规则引擎采用典型的分层架构,从上至下依次为:接入层、决策编排层、特征计算层、模型推理层与数据存储层。每一层承担独立的职责,并通过标准接口进行通信。
架构设计原则:层间解耦、特征与规则分离、模型服务独立部署。这种设计使得 PSI 监控可以针对特征工厂与模型服务分别部署漂移检测,而不影响规则集的执行路径。
4.2 决策流与规则集
决策流是规则引擎的执行蓝图,定义了多个规则集之间的串联、分支与合并逻辑。一个决策流通常包含以下节点类型:
| 节点类型 | 职责 | 示例 |
|---|---|---|
| 开始节点 | 接收请求上下文,初始化全局变量 | 接收交易请求中的用户ID、设备指纹 |
| 规则集节点 | 执行一组有序或并行的规则 | 黑名单规则集、额度规则集 |
| 分支节点 | 根据条件选择不同执行路径 | if 用户等级 == 'VIP' 走快速通道 |
| 模型调用节点 | 调用模型服务获取评分 | 调用欺诈评分模型 |
| 结束节点 | 聚合决策结果,返回最终动作 | 返回通过/拒绝/人工审核 |
规则集是决策流中的最小执行单元,由若干条规则组成。每条规则包含条件表达式与动作。规则集内部支持短路、优先级排序与并行计算。
PSI 监控关注点:当规则集命中率发生显著变化时,往往意味着上游特征分布已经漂移。建议在规则集入口处记录特征快照,用于事后回溯 PSI 告警根因。
4.3 特征工厂
特征工厂负责实时计算与聚合特征,是规则引擎的“数据加工车间”。特征工厂从多个数据源(实时流、离线数仓、外部接口)获取原始数据,经过清洗、转换、聚合后生成特征向量。
特征工厂的核心组件包括:
- 特征定义仓库:存储特征元数据,包括特征名称、数据类型、计算逻辑、依赖源。
- 特征计算引擎:执行特征计算任务,支持 SQL、UDF、Groovy 脚本等多种计算模式。
- 特征缓存层:对高频特征进行本地或分布式缓存,降低重复计算开销。
- 特征分发模块:将计算完成的特征以键值对形式推送给决策编排层。
PSI 监控部署位置:特征工厂的输出端是 PSI 监控的第一道防线。每个特征在输出时,应同时记录当前分布快照,并与历史基准分布进行对比。建议对连续型特征使用分箱法计算 PSI,对离散型特征使用类别占比法。
4.4 模型服务
模型服务是规则引擎的智能决策核心,通常以独立微服务形式部署。模型服务接收特征工厂输出的特征向量,加载预训练模型进行推理,返回模型分数与解释信息。
模型服务的典型架构:
| 组件 | 说明 | PSI 监控关联 |
|---|---|---|
| 模型加载器 | 从模型仓库加载最新模型版本 | 版本切换时需重置 PSI 基准 |
| 推理引擎 | 执行模型前向计算(如 XGBoost、DNN) | 监控模型分数分布漂移 |
| 特征预处理 | 对特征进行标准化、缺失值填充 | 预处理逻辑变化会引发 PSI 波动 |
| 结果后处理 | 将模型分数映射为决策等级 | 映射阈值变化需同步更新 PSI 监控 |
4.5 模块间数据流转与 PSI 监控埋点
理解模块间数据流转是配置 PSI 监控的前提。以下表格总结了关键数据流与对应的 PSI 监控埋点位置:
| 数据流 | 源模块 | 目标模块 | PSI 监控埋点位置 |
|---|---|---|---|
| 特征向量 | 特征工厂 | 规则集 / 模型服务 | 特征工厂输出端(每个特征独立监控) |
| 模型分数 | 模型服务 | 规则集 | 模型服务输出端(分数分布监控) |
| 规则命中结果 | 规则集 | 决策流 | 规则集输出端(命中率变化辅助诊断) |
| 决策结果 | 决策流 | 接入层 | 决策流输出端(最终动作分布监控) |
最佳实践:在特征工厂与模型服务的输出端分别部署 PSI 监控,可以快速定位漂移来源。如果特征工厂 PSI 正常而模型服务 PSI 异常,则问题可能出在模型版本或预处理逻辑上;反之,则说明上游数据源已发生变化。
4.6 架构视角下的 PSI 告警链路
从架构视角看,PSI 告警的完整链路如下:
- 特征工厂输出特征分布快照 → 写入 PSI 监控缓冲区。
- PSI 监控服务定时拉取快照,与历史基准分布计算 PSI 值。
- 若 PSI 超过阈值,触发特征漂移告警,通知规则引擎与数据团队。
- 模型服务输出分数分布快照 → 写入 PSI 监控缓冲区。
- PSI 监控服务计算分数分布 PSI,若超过阈值触发模型分数漂移告警。
- 告警信息汇总至告警中心,通过钉钉、邮件或 PagerDuty 通知值班人员。
这种分层监控策略确保在特征漂移影响规则决策之前,运维团队就能提前介入。