3. 排查准备:数据源梳理、模型版本确认、历史基线建立、排查工具清单
风险异常波动排查的成败,80% 取决于排查前的准备工作是否扎实。本章将系统梳理排查启动前必须完成的四项核心准备:数据源梳理、模型版本确认、历史基线建立以及排查工具清单。只有确保数据可追溯、版本可锁定、基线可对比、工具可执行,才能避免排查过程中出现“数据打架”“版本错乱”“基准漂移”等致命问题。
排查准备黄金法则: 先锁定版本,再梳理数据;先建立基线,再启动工具。顺序不可颠倒。
3.1 数据源梳理
数据源是排查的“原材料”。在启动排查前,必须全面盘点所有参与模型运行与监控的数据源,确保数据链路清晰、口径一致、时效可控。
3.1.1 数据源分类清单
| 数据源类型 | 典型来源 | 排查关注点 |
|---|---|---|
| 输入特征数据 | 业务库、实时特征平台、离线特征表 | 特征缺失率、异常值、分布偏移 |
| 模型评分数据 | 模型服务日志、评分结果表 | 评分分布、分数断层、空值比例 |
| 标签/目标数据 | 贷后表现表、逾期标签、人工标注 | 标签延迟、定义变更、样本偏差 |
| 监控指标数据 | PSI/KS 监控表、特征监控看板 | 指标计算口径、时间窗口对齐 |
| 外部数据 | 三方征信、黑名单、行业指数 | 数据源稳定性、接口响应、更新频率 |
3.1.2 数据源梳理检查清单
- 数据血缘确认: 每个字段的原始来源、ETL 链路、加工逻辑是否文档化?
- 时间窗口对齐: 排查期数据与基线期数据的统计时间窗口是否一致?
- 数据质量快照: 排查期数据是否存在批量缺失、重复、延迟加载?
- 口径变更记录: 排查期前后是否有字段定义、枚举值、计算逻辑的变更?
常见陷阱: 排查时发现评分分布异常,最终定位原因是特征 A 的原始数据源切换了接口,但未同步更新监控口径。数据源梳理阶段必须逐一核对“数据源版本”与“模型版本”的对应关系。
3.2 模型版本确认
模型版本是排查的“锚点”。同一模型在不同时间点可能存在多个版本(开发版、测试版、灰度版、全量版),排查时必须锁定异常波动发生时实际运行的模型版本。
3.2.1 版本确认四步法
- 查注册: 从模型注册中心或模型管理平台获取当前线上运行模型的版本号、发布时间、部署环境。
- 对快照: 比对模型文件(如 PMML、Pkl、ONNX)的 MD5 或 SHA256 哈希值,确保文件未被篡改。
- 验配置: 核对模型配置文件中的特征列表、阈值、后处理逻辑是否与预期一致。
- 看日志: 检查模型服务日志中记录的模型版本号,确认实际调用版本与注册版本一致。
3.2.2 版本确认记录表
| 确认项 | 确认方法 | 预期结果 | 实际结果 |
|---|---|---|---|
| 模型版本号 | 模型注册中心查询 | v2.3.1 | v2.3.1 |
| 模型文件哈希 | MD5 校验 | a1b2c3d4e5f6... | a1b2c3d4e5f6... |
| 特征列表 | 配置文件比对 | 45 个特征 | 45 个特征 |
| 模型部署时间 | 部署平台记录 | 2025-01-15 | 2025-01-15 |
版本确认红线: 如果发现线上模型版本与注册版本不一致,立即停止排查,优先解决版本错配问题。版本不对,一切排查结论都不可信。
3.3 历史基线建立
历史基线是判断“异常”的参照系。没有基线,就无法定义什么是“波动”。基线建立的核心是选择合适的时间窗口和统计口径,确保基线能够代表模型的“正常”运行状态。
3.3.1 基线选择原则
- 时间窗口: 通常选择异常波动发生前 30 天、60 天或 90 天的稳定运行期作为基线窗口。避免选择包含已知异常事件的时间段。
- 数据粒度: 基线与排查期的数据粒度必须一致(如日粒度、周粒度、批次粒度)。
- 统计口径: 基线的指标计算逻辑(如 PSI 的分箱方式、KS 的计算区间)必须与排查期完全一致。
- 业务周期: 考虑业务周期性(如月初月末、节假日、营销活动),基线应覆盖完整的业务周期。
3.3.2 基线指标清单
| 指标类别 | 具体指标 | 基线统计方式 |
|---|---|---|
| 分布类 | PSI、特征分布直方图 | 基线期每日 PSI 均值 ± 3σ |
| 区分度类 | KS、AUC、Gini | 基线期每日 KS 中位数及 P5/P95 区间 |
| 校准度类 | 校准曲线、Brier Score | 基线期校准曲线平均偏差 |
| 业务类 | 通过率、拒绝率、坏账率 | 基线期周度通过率均值 ± 2σ |
基线建立技巧: 建议同时建立“静态基线”(固定时间窗口)和“滚动基线”(滑动窗口),滚动基线能更灵敏地捕捉近期趋势变化,但需要更频繁的更新维护。
3.4 排查工具清单
工具是排查的“武器库”。在启动排查前,必须确保所有工具可用、权限到位、脚本就绪。以下是一份标准排查工具清单,按功能模块分类。
3.4.1 工具清单总表
| 工具类别 | 工具名称/示例 | 用途 | 前置检查项 |
|---|---|---|---|
| 数据探查 | SQL、Spark、Pandas Profiling | 数据质量检查、缺失值分析、分布统计 | 数据源连接正常、查询权限已开通 |
| 模型监控 | MRM 监控平台、自研监控看板 | PSI/KS 趋势查看、异常告警回溯 | 监控指标配置正确、历史数据可查 |
| 版本管理 | MLflow、Model Registry、Git | 模型版本比对、文件哈希校验 | 版本记录完整、部署环境可访问 |
| 可视化 | Matplotlib、Plotly、Grafana | 分布对比图、趋势图、校准曲线 | 图表模板就绪、配色方案统一 |
| 自动化脚本 | Python 排查脚本、Shell 批处理 | 批量计算指标、生成排查报告 | 脚本已测试、参数可配置 |
3.4.2 工具就绪检查清单
- 权限确认: 排查人员是否拥有所有数据源和工具的读取/执行权限?
- 脚本验证: 排查脚本是否在测试环境运行通过?输入参数是否可灵活配置?
- 监控回溯: 监控平台是否支持按时间范围回溯历史指标?数据保留时长是否覆盖排查期?
- 输出模板: 排查报告模板是否就绪?图表输出格式是否统一?
工具准备最佳实践: 建议将排查工具封装为“排查工具包”,包含标准化脚本、配置文件、文档和测试数据,每次排查前只需更新参数即可运行,减少重复准备工作。
3.5 排查准备全景图
以下 SVG 图展示了排查准备四项核心工作的整体流程与依赖关系,帮助你在实际排查中按图索骥、有序推进。
3.6 排查准备常见问题与应对
| 常见问题 | 影响 | 应对措施 |
|---|---|---|
| 数据源口径不统一 | 指标计算偏差,误判异常 | 建立数据口径字典,排查前逐字段核对 |
| 模型版本无法确认 | 排查结论不可信,无法复现 | 强制模型注册流程,部署时自动记录版本 |
| 基线窗口选择不当 | 基线无法代表正常状态 | 结合业务日历,排除已知异常时段 |
| 工具权限不足 | 排查中断,效率低下 | 提前申请权限,建立工具就绪检查表 |
| 脚本未测试 | 运行报错,结果不可信 | 脚本纳入版本管理,每次排查前在测试环境验证 |
排查准备阶段的核心原则: 宁可花 80% 的时间做准备,也不要在排查过程中花 200% 的时间返工。准备阶段的每一个疏漏,都会在排查阶段被放大。