Files
model-platform/docs/database/A卡原始监控指标-模型方表评估清单-V0.1.md

155 lines
7.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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,建议统一存01比率。
- `psi_value DECIMAL(12,8)`PSI,建议统一存01比率。
- `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统一存01还是0100。
4. 排序性计算方法及枚举值。
5. PSI和CSI基准期规则,是否为滚动基准期。
6. 批次粒度是全月全量、按银行还是按模型。
7. 历史勘误是否新增修订,禁止原地覆盖已发布结果。
8. 特征编码是否跨版本稳定,特征名称变更如何留痕。
9. 首次需要回补多少个月历史数据及预计数据量。
10. 提供一套真实脱敏样例:一个模型、一个月份、完整特征和分箱数据。
## 7. 若模型方不愿新增4张表
最小折中方案:
- `model_monitor_aggr`继续承载KS、PSI、IV、CSI等标量指标。
- 必须固定 `metricName` 字典、单位、月份口径和 `dimensionValue` 规则。
- 仍需新增批次/发布结构以及评分和特征分箱明细结构。
- 不建议把所有数据都塞入 `extra JSON`,否则无法建立稳定索引、约束和验收口径。
该折中方案开发和长期维护成本更高,推荐优先采用4张结构化表。