3. Artifact核心概念
在金融模型治理中,Artifact(制品)是贯穿模型研发、验证、上线与运维全流程的最小可追溯单元。它不仅是文件本身,更承载了版本、血缘、审批状态与合规证据。理解Artifact的类型与生命周期,是构建可审计、可复现金融模型环境的基础。
一、核心原理:Artifact是什么,为什么需要分类
Artifact可以定义为:在模型生命周期中产生、被版本化、可被引用与审计的任何持久化产物。金融行业对模型可解释性与可复现性要求极高,监管机构(如银保监会、美联储SR 11-7)要求机构能够回答“这个模型上线时用了哪份数据、哪个特征版本、哪个依赖环境”。因此,Artifact必须分类管理,因为不同类型Artifact的变更频率、存储方式、审批路径和生命周期长度差异巨大。
例如,原始数据集一旦入湖通常不可变,而特征工程产物可能每日重算;模型文件需要严格审批,而临时配置文件可能随环境切换而快速迭代。分类是治理策略的前提。
二、Artifact的主要类型与特征
金融模型环境中常见的Artifact可分为六大类,每类都有独特的格式、存储与治理要求:
- 模型文件:训练完成的参数权重、网络结构、序列化对象(如PMML、ONNX、Pickle、HDF5)。通常体积较大,需与训练代码、数据版本绑定。
- 数据集:原始数据、清洗后数据、采样数据、回测数据。强调不可变性与血缘追踪,常用Parquet、CSV、Hive表。
- 特征工程产物:特征定义、特征计算逻辑、特征存储(Feature Store)中的特征值。介于数据与模型之间,需保证训练/推理一致性。
- 配置文件:超参数、环境变量、模型阈值、风控规则。YAML/JSON为主,变更频繁但影响直接。
- 依赖包:Python wheel、conda环境、Docker镜像、requirements.txt。决定运行时行为,必须锁定版本。
- 评估与合规文档:验证报告、公平性分析、压力测试结果、审批记录。属于证据类Artifact,生命周期最长。
三、Artifact生命周期:从创建到归档
Artifact生命周期通常包含六个阶段:创建、注册、验证、发布、消费、归档/销毁。每个阶段都有明确的准入准出条件。
- 创建:由训练任务、特征计算任务或人工配置产生。此时Artifact仅有临时标识,尚未纳入治理。
- 注册:写入Artifact Registry(如MLflow、Harbor、自研平台),分配全局唯一ID、版本号、哈希值与元数据。
- 验证:检查完整性、格式合规、依赖可解析、数据漂移指标是否在阈值内。验证不通过则标记为“拒绝”。
- 发布:通过审批后进入“已发布”状态,可被生产推理服务或下游任务引用。发布通常不可逆。
- 消费:被模型服务、回测引擎、报表系统拉取使用。每次消费需记录引用关系,形成血缘图。
- 归档/销毁:过期或模型下线后,Artifact转入冷存储或按合规要求销毁,但元数据与血缘记录通常保留。
下面是一个典型的Artifact注册与状态流转的配置片段:
artifact:
name: "credit_score_model"
version: "v2.3.1"
type: "model_file"
format: "onnx"
hash: "sha256:9f2a...c7e1"
dependencies:
- "python==3.9.18"
- "onnxruntime==1.16.3"
- "feature_store:credit_features:v1.8"
lifecycle:
created_at: "2025-03-12T08:30:00Z"
registered_by: "training_job_8821"
status: "validated"
approved_by: "model_risk_committee"
四、场景案例:信贷评分模型上线中的Artifact流转
假设某银行要上线一版信贷评分模型。数据科学家在实验环境训练出模型文件credit_score_v2.onnx,同时生成了特征工程产物credit_features_v1.8和配置文件thresholds.yaml。这些Artifact首先被注册到平台,触发自动验证:检查ONNX格式是否可加载、特征版本是否与训练数据一致、依赖包是否在允许清单内。
验证通过后,模型风险委员会审批发布。生产推理服务通过Artifact ID拉取模型与特征,而不是直接读取文件路径。当监管要求回溯“2025年3月所有信贷审批用了哪个模型”时,平台可通过血缘图快速定位到具体Artifact版本及其依赖的数据集与代码提交。
五、误区与复盘:Artifact治理中的典型问题
在实际项目中,Artifact治理常出现以下问题:
- 只注册模型,不注册特征与依赖:导致推理时特征不一致,模型效果骤降。
- 版本号随意命名:如“final_v2_真正最终版”,无法排序与追溯。
- 缺少状态机:Artifact没有“草稿/验证中/已发布/已废弃”状态,生产环境可能误用未审批版本。
- 血缘断裂:数据集更新后未记录与模型的关联,无法复现历史结果。
复盘建议:将Artifact Registry作为唯一可信源,所有消费方必须通过ID引用;对模型文件与依赖包实施“绑定发布”;对数据集与特征产物实施“不可变快照”;对配置文件实施“环境差异化覆盖但版本可追溯”。
六、Artifact类型与生命周期对照清单
| Artifact类型 | 典型格式 | 变更频率 | 生命周期特点 | 治理重点 |
|---|---|---|---|---|
| 模型文件 | ONNX、PMML、Pickle | 低 | 长,需审批发布 | 版本绑定、依赖锁定 |
| 数据集 | Parquet、Hive、CSV | 中 | 不可变快照,长期保留 | 血缘、分区、权限 |
| 特征工程产物 | Feature Store、SQL、Python | 高 | 与模型版本联动 | 训练/推理一致性 |
| 配置文件 | YAML、JSON | 高 | 短,随环境切换 | 环境隔离、审计日志 |
| 依赖包 | Wheel、Docker、Conda | 低 | 与模型同生命周期 | 版本锁定、漏洞扫描 |
| 评估与合规文档 | PDF、HTML、Markdown | 低 | 最长,监管留存 | 审批签名、不可篡改 |