155 lines
7.5 KiB
Markdown
155 lines
7.5 KiB
Markdown
# A 卡原始监控指标——模型方表评估清单 V0.1
|
||
|
||
> 日期:2026-09-01
|
||
> 评估对象:模型方 `model_deploy` 数据库及待补监控结构。
|
||
> 目的:确认模型方能够提供哪些原始监控数据、通过哪些表提供,以及我方是否需要保留标准化月度快照。
|
||
|
||
## 1. 结论先行
|
||
|
||
模型方现有 `model_monitor_aggr` 只能部分承载 KS、PSI、IV 等标量指标,不能完整支撑 A 卡运维平台的月度监控、规则回放、报告和特征分布展示。
|
||
|
||
建议模型方提供 4 类结构化监控表或完全等价的数据结构:
|
||
|
||
1. `model_monitor_batch`:月度批次、修订和发布状态。
|
||
2. `model_monitor_result`:模型单月排序性、KS、PSI和样本量。
|
||
3. `model_monitor_feature_metric`:特征级IV、CSI及变化。
|
||
4. `model_monitor_distribution`:评分分箱和特征分箱分布。
|
||
|
||
以上数据应由模型计算任务自动写入,不由模型团队手工执行 SQL。
|
||
|
||
## 2. 模型方现有相关表
|
||
|
||
| 现有表 | 当前用途 | 可复用内容 | 不足 | 我方建议 |
|
||
|---|---|---|---|---|
|
||
| `model_deploy` | 模型部署主表 | `deployId`、模型名称、编码、状态、当前版本 | 缺业务模型大类、银行关系、通用模型等 | 作为模型主标识使用,不复制主表 |
|
||
| `model_version` | 模型版本 | 版本ID、版本号、版本名称、创建人、创建时间 | 缺迭代、陪跑、上线/下线和开发指标 | 作为版本主标识;缺失字段另补 |
|
||
| `model_details` | 模型详情 | 模型说明、输入/输出Schema | 不是月度监控数据 | 仅模型详情页读取 |
|
||
| `model_monitor_aggr` | 通用聚合指标 | `deployId/version/metricName/dimensionValue/valueNum/gmtCreated`;注释允许 `ks/psi/iv` | 无月份、批次、修订、发布状态、排序性、样本量、CSI、分箱结构 | 可继续保存运行聚合;不建议单独承担业务监控全量数据 |
|
||
| `model_monitor_call_log` | 模型调用原始日志 | 调用成功、耗时、节点、错误 | 属于服务运行监控,不是模型效果监控 | 不作为 A 卡月度监控来源 |
|
||
| `model_monitor_aggr_cursor` | 聚合器游标 | 聚合进度 | 纯技术状态 | 我方无需读取 |
|
||
|
||
## 3. 建议模型方提供的 4 张表
|
||
|
||
### 3.1 `model_monitor_batch`——监控批次
|
||
|
||
一行代表一次月度监控数据发布。
|
||
|
||
建议字段:
|
||
|
||
- `id BIGINT`:批次主键。
|
||
- `source_batch_no VARCHAR(128)`:模型方幂等批次号。
|
||
- `monitor_month DATE`:监控月份,固定当月1日。
|
||
- `revision_no INT`:同月份修订号。
|
||
- `status VARCHAR(24)`:`writing/published/failed/superseded`。
|
||
- `expected_model_count/written_model_count`:预期和实际模型数。
|
||
- `feature_row_count/distribution_row_count`:特征和分箱行数。
|
||
- `checksum VARCHAR(64)`:批次校验和。
|
||
- `generated_at/published_at DATETIME`:计算和发布时间。
|
||
- `failed_reason VARCHAR(2000)`:失败原因。
|
||
|
||
关键约束:同一监控月份和修订号唯一;我方只读取 `published` 的最高修订。
|
||
|
||
### 3.2 `model_monitor_result`——模型单月监控结果
|
||
|
||
一行代表一个模型版本在一个月份的核心监控结果。
|
||
|
||
建议字段:
|
||
|
||
- `id BIGINT`:结果主键。
|
||
- `batch_id BIGINT`:所属批次。
|
||
- `deploy_id BIGINT`:关联 `model_deploy.id`。
|
||
- `version_id BIGINT`:关联 `model_version.id`。
|
||
- `monitor_month DATE`:监控月份。
|
||
- `ranking_result VARCHAR(24)`:`matched/unmatched/not_applicable`。
|
||
- `ks_value DECIMAL(12,8)`:KS,建议统一存0~1比率。
|
||
- `psi_value DECIMAL(12,8)`:PSI,建议统一存0~1比率。
|
||
- `sample_count/good_count/bad_count BIGINT`:样本量。
|
||
- `calculated_at DATETIME`:完成计算时间。
|
||
- `extra JSON`:仅用于尚未结构化且已约定的数据,不作为核心字段替代品。
|
||
|
||
关键约束:同一批次下一个 `deploy_id` 只能有一条结果。
|
||
|
||
### 3.3 `model_monitor_feature_metric`——特征级指标
|
||
|
||
一行代表一个监控结果下的一个特征。
|
||
|
||
建议字段:
|
||
|
||
- `id BIGINT`:主键。
|
||
- `monitor_result_id BIGINT`:关联单月监控结果。
|
||
- `feature_code/feature_name`:特征编码和名称。
|
||
- `iv_value/previous_iv_value`:当期与上期IV。
|
||
- `iv_drop_rate`:IV降幅。
|
||
- `csi_value/previous_csi_value`:当期与上期CSI。
|
||
- `csi_rise_rate`:CSI升幅。
|
||
- `ks_contribution_change`:对KS变化的贡献。
|
||
- `psi_contribution_change`:对PSI变化的贡献。
|
||
- `calculated_at DATETIME`:计算时间。
|
||
|
||
关键约束:同一监控结果下 `feature_code` 唯一。
|
||
|
||
### 3.4 `model_monitor_distribution`——评分及特征分箱
|
||
|
||
一行代表一个评分区间或一个特征分箱。
|
||
|
||
建议字段:
|
||
|
||
- `id BIGINT`:主键。
|
||
- `monitor_result_id BIGINT`:关联单月监控结果。
|
||
- `dimension_type VARCHAR(24)`:`score_band/feature_bin`。
|
||
- `feature_code/feature_name`:评分分箱时可为空。
|
||
- `bin_order/bin_code/bin_label`:分箱顺序、编码和显示名称。
|
||
- `reference_period_label`:基准期说明。
|
||
- `reference_count/reference_share`:基准期数量和占比。
|
||
- `current_count/current_share`:当期数量和占比。
|
||
- `good_count/bad_count/bad_rate`:好坏客户数据。
|
||
- `psi_component/csi_component`:该分箱对PSI/CSI的贡献。
|
||
|
||
关键约束:`monitor_result_id + dimension_type + feature_code + bin_order` 唯一。
|
||
|
||
## 4. 四张表与前端页面关系
|
||
|
||
| 表 | 模型大类概览 | 监控概览 | 监控详情 | 监控/诊断报告 | 系统同步 |
|
||
|---|---|---|---|---|---|
|
||
| `model_monitor_batch` | 间接 | 间接 | 间接 | 绑定数据版本 | 展示批次和修订状态 |
|
||
| `model_monitor_result` | KS/PSI、趋势、同业均值 | 月度明细和等级输入 | 核心结论与趋势 | 报告核心指标 | 同步主数据 |
|
||
| `model_monitor_feature_metric` | 不直接使用 | 可选摘要 | IV/CSI前5及全指标 | 诊断报告特征分析 | 同步特征指标 |
|
||
| `model_monitor_distribution` | 不直接使用 | 不直接使用 | 排序性和特征分布 | 报告四张明细表 | 同步分箱数据 |
|
||
|
||
## 5. 我方可以计算、模型方无需提供的内容
|
||
|
||
取得上述原始数据后,我方可自行计算:
|
||
|
||
- 本行平均KS/PSI及同业平均值。
|
||
- 近6个月趋势。
|
||
- KS环比降幅。
|
||
- 近6个月二级异常次数。
|
||
- 异常等级及A/B/C监控结果等级。
|
||
- 命中原因、处理建议、阈值影响测算。
|
||
- 报告正文、待办、催办和缓存数据。
|
||
|
||
## 6. 必须与模型方确认的 10 项
|
||
|
||
1. 是否接受新增上述4张表,或提供完全等价的表/视图。
|
||
2. `deploy_id`和版本引用使用 `model_version.id` 还是 `version`整数。
|
||
3. KS、PSI、IV、CSI统一存0~1还是0~100。
|
||
4. 排序性计算方法及枚举值。
|
||
5. PSI和CSI基准期规则,是否为滚动基准期。
|
||
6. 批次粒度是全月全量、按银行还是按模型。
|
||
7. 历史勘误是否新增修订,禁止原地覆盖已发布结果。
|
||
8. 特征编码是否跨版本稳定,特征名称变更如何留痕。
|
||
9. 首次需要回补多少个月历史数据及预计数据量。
|
||
10. 提供一套真实脱敏样例:一个模型、一个月份、完整特征和分箱数据。
|
||
|
||
## 7. 若模型方不愿新增4张表
|
||
|
||
最小折中方案:
|
||
|
||
- `model_monitor_aggr`继续承载KS、PSI、IV、CSI等标量指标。
|
||
- 必须固定 `metricName` 字典、单位、月份口径和 `dimensionValue` 规则。
|
||
- 仍需新增批次/发布结构以及评分和特征分箱明细结构。
|
||
- 不建议把所有数据都塞入 `extra JSON`,否则无法建立稳定索引、约束和验收口径。
|
||
|
||
该折中方案开发和长期维护成本更高,推荐优先采用4张结构化表。
|
||
|