引言
- 背景:随着算法模型的在工业界大范围更深层次的使用,越来越多不同类型的不同用途的模型加入工业生产中,所以提出来了一个对模型全周期监控的需求,包含对模型的训练数据,测试数据,推理数据,模型性能,下线管理等等方面的监控,以下为个人对模型监控整个流程的调研结果
- 包含 chatgpt 辅助,仅供参考。
模型管理流程梳理
- 注:以下有些内容具体展开可能是重合的,仅供参考。
- 1.数据准备:用于训练和评估模型的数据。这包括数据采集、清洗、标注和分割等处理过程。
- 2.模型开发:使用训练数据来构建和训练机器学习模型。这包括选择适当的算法、特征工程、模型训练和调优等。
- 3.模型验证与评估:训练完成后对模型进行验证和评估。这包括使用预留的验证数据集或交叉验证技术来评估模型的性能并进行调整。
- 4.模型部署:模型通过了验证和评估达到要求后进行上线部署。模型部署包括将训练好的模型集成到实际应用环境中,能够正确接收输入数据并生成预测结果。
- 5.模型监控:模型部署后需要进行模型的监控和维护。这包括监测模型的性能、检测数据偏差和漂移、处理异常情况等。
- 6.模型更新与迭代:随着时间累计数据有更新需要及时对模型进行更新和迭代。这包含使用新数据重新训练模型、添加新特征、调整超参数等。更新后的模型需要再次验证、评估和部署。
- 7.模型回退与版本控制:模型的更新与迭代过程中新版模型可能出现新的问题需要下线处理,此时可能需要回退到之前的模型版本。除此之外还包含跟踪模型的演化和保留历史记录。
- 8.安全与合规性:在模型管理中,需要考虑安全和合规性的问题。这包括保护模型和数据的安全性,遵循隐私法规,并确保模型的公平性和可解释性。
一 数据准备的相关指标(待完善)
- 1.数据采样:如果数据集经过采样(例如重采样、分层采样等),可以统计每个采样类别的数量,以确保采样方法的有效性。
- 2.样本数量:数据集中的样本数量是一个基本的统计指标,模型复杂程度不同对可训练和测试的样本量也有不同的需求。
- 3.特征数量:数据集中的特征数量表示了样本所包含的不同属性,关系到模型能学习到的不同维度信息。
- 4.缺失值:缺失值是指某些特征的部分数据缺失。统计缺失值的数量和分布可以帮助了解数据的完整性和处理缺失值的需求。
- i.缺失值比例:计算每个特征中缺失值的比例可以帮助确定数据缺失情况的严重程度,过多就要考虑舍弃该特征。
- 5.异常值:异常值是指特征数据中明显偏离大部分样本数据分布的值。统计异常值的数量和位置可以帮助识别数据中的异常情况。
- 6.数据分布:了解数据的分布情况可以辅助选择合适的模型和特征处理方法。可以通过绘制直方图、箱线图、概率密度图等来可视化数据的分布。
- 7.类别分布:指的是离散特征每个类别的分布,统计每个类别的分布情况可以帮助评估是否存在同特征下类别不平衡的问题。
- i.类别特征的基本统计信息:对于类别型特征,可以计算每个类别的频数和相对频率,以及计算众数等基本统计信息。
- 8.数值特征的描述统计:对于数值型特征可以计算常见的描述统计指标,例如均值、中位数、标准差、最小值和最大值等。可以辅助分析数据分布、集中趋势和离散程度的信息。
- 9.相关性分析:通过计算特征之间的相关性了解它们之间的关联程度。常用的相关性指标包括皮尔逊相关系数、斯皮尔曼相关系数等。
- 10.时间相关指标:如果数据集包含时间戳或时间相关特征,可以计算时间跨度、时间间隔、时间序列的趋势等指标,以便了解数据在时间维度上的变化。
- 11.标签分布:对于监督学习问题,统计每个类别的标签分布情况可以帮助评估是否存在数据不平衡的情况。
- 12.数据质量指标:除了上述指标之外,还可以计算数据质量指标,如数据完整性(比如缺失情况)、一致性(是否合逻辑)、准确性等,以评估数据集的质量和可靠性。
二 模型开发相关指标(待完善)
- 注:此处更偏向于模型验证与评估前后的补充,包含了模型选择的不同考虑维度。
- 1.领域知识和问题背景:结合具体问题和领域知识,优先选择已经被证明有效的模型。
- 2.交叉验证和验证集:使用交叉验证和验证集来评估模型的泛化能力。
- i.将数据集划分为训练集、验证集和测试集,在训练集上训练模型,在验证集上进行验证和调优,并最终在测试集上评估模型的性能。
- ii.通过交叉验证和验证集的结果,选择性能稳定且泛化能力较好的模型。
- 3.模型复杂度和拟合问题:结合业务情况选择复杂度合适的模型。
- i.过于复杂的模型可能导致过拟合问题,在训练集上表现良好,但在新数据上的泛化能力较差。反之过于模型过于简单容易导致欠拟合问题,训练集和测试集效果都较差。
- ii.寻找适当的平衡点,选择复杂度适中的模型,以避免过拟合和欠拟合问题。
- 4.训练时间和资源消耗:结合实际业务所需时间和所拥有资源,选择给定时间,资源限制下仍能提供良好性能的模型。
- 5.可调参数和灵活性:模型具有较多的可调参数,可以通过调整参数来优化模型性能。模型结构灵活可以适应不同的数据和任务要求。
- 6.模型解释性和可解释性:根据需求和应用场景来考虑模型的可解释性和可理解性。某些场景下需要理解和解释模型的决策过程来分析结果。
- 7.模型的扩展性:扩展性指的是模型处理大规模数据或在复杂任务上的能力,尤其是在遇到大规模数据集,高维特征空间,复杂计算任务,分布式计算和并行化场景下。
三 模型验证与评估(更多模型种类待补充)
1 分类任务中:
-
ps:混淆矩阵是得到以下指标的初始,混淆矩阵如下所示(二分类情况):
| 预测结果/真实结果 | 正例 | 反例 |
|---|---|---|
| 正例 | TP(真正例) | FN(假反例) |
| 反例 | FP(假正例) | TN(真反例) |
- 1.准确率 A (Accuracy): 正确分类样本占样本总数的比值。
- 2.精确率 P (Precision):P = TP / (TP + FP),模型预测的所有正例中,真实为正例的比例,考察模型,反应模型"查的准不准"。
- 3.召回率 R(Recall): R = TP / (TP + FN),所有真实正例种,模型预测正确的概率,反映模型"查的全不全"(也表示对正例的预测能力)。
- 4.F1得分: F1 = (2 P R) / (P + R),精确率和召回率的调和平均值,对精确率和召回率指标的综合。
- 5.AUC_ROC:使用 FPR(假正率)为横坐标,真正率 TPR为纵坐标,所画曲线下方的面积即AUC_ROC 的值,值越大越好。
- i.AUC=P(P正 > P反) 当AUC的值等于 0.5 表示模型没有分类能力,大于 0.5 表示模型预测正例的概率大于预测反例的概率,表示模型有一定分类能力,当 auc 为 1 的时候 TPR 恒等于 1 那么表示正样本永远被预测准确,小于 0.5 同理只是取反。
- ii.FPR = FP / (FP + TN) ,所有真实反例中,模型预测为正例的概率。
- iii.TPR = TP / (TP + FN) ,其实也就是召回率R。
- 6.AUC_PR:使用精确率 P 为纵轴,召回率R为横轴,所画曲线下方的面积为 AUC_PR的值。
- i.ROC 的横轴和纵轴分别聚焦于反例和正例,所以其评估是较为均衡的,评估的是分类器的整体性能,其对样本分布不均衡的情况是没有 PR 敏感的。
- ii.PR 使用了精确率 P,导致 PR曲线的两个指标都聚焦于正例,当样本分布不均衡的时候主要是关心正例,其对样本分布不均衡是较敏感的。
- 7.Specificity 特异度(TNR):TNR = TN / (TN + FP),表示对反例的预测能力。
- 8.G-mean:G-mean = √(R * specificity) 用于度量分类模型在正例和反例两个类别上的平衡性(同样适用于样本不均衡)。
- 9.MCC:MCC = (TP✖️TN - FP ✖️ FN) / √ ((TP + FP)(TP+FN)(TN + FP)(TN + FN)) 综合了以上真正,真反,假正,假反的指标,综合衡量二分类模型的性能(同样适用于样本不均衡)。
- 10.KS 曲线:联系roc 曲线,TPR和 FPR分别作为纵横轴,KS 曲线将这俩指标都作为纵轴,取选定的不同阈值作为横轴,KS = max(|TPR - FPR|),反应模型的最优分类效果,ks 值大于 0.2 才有效,一般来说大于 0.6就需要核验后才能使用了。
- 11.logloss:基于对数似然损失函数,衡量的是模型对样本的分类和实际标签的偏差程度,一般不超过 0.693 。
2 回归任务中:
- 1.均方误差 MSE: 预测值与真实值之间差值平方的均值,衡量模型预测和真实值的差异程度。
- 2.平均绝对误差 MAE:预测值与真实值之间差值的绝对值的平均值,衡量的是模型预测结果的平均偏差程度。
- 3.R^2 分数:衡量的是回归模型拟合效果的指标,越接近 1 说明拟合效果越好。
- 4.解释方差:指标越高表示模型解释目标变量差异性的效果越好,即模型的预测结果和真实值的差异较小。
- 5.相关系数:衡量的是模型预测值和真实值的线性相关性,常用的是皮尔逊相关系数。
3 聚类任务中:
- 1.轮廓系数SC: 衡量了样本与其所在簇内部的相似度与最近邻簇的不相似度之间的比例。
- 2.Calinski-Harabaz指数:通过计算簇间的方差和簇内的方差之比来评估聚类结果的紧密性。
- 3.Davies-Bouldin指数:通过计算簇之间的平均距离和簇内的样本的平均距离之和来度量聚类结果的紧密度。
四 模型部署
- 1.延迟:模型的延迟指的是从输入数据传递到模型进行推断所需的时间。
- i.对于实时应用或对延迟敏感的系统,低延迟是一个重要指标。
- 2.吞吐量:吞吐量是指模型每秒能够处理的请求数量。
- i.对于需要处理大量请求的系统,高吞吐量是关键指标。
- 3.精度:精度是指模型在真实场景中的预测准确性。
- i.部署模型之前需要对模型进行充分的验证和评估,是为了确保其在新数据上的精度仍然良好。
- 4.内存消耗:模型的内存消耗是指模型在运行时所需的内存量。
- i.对于内存有限的环境下低内存消耗是一个重要指标。
- 5.可扩展性:模型的可扩展性指的是模型在处理不断增长的数据量或用户请求时的能力(与2模型开发指标中的可扩展性基本属于同一种情况)。
- 6.可靠性:指的是模型能够持续稳定地提供服务。
- i.包括对系统故障、网络中断、资源耗尽等异常情况的处理能力,以及具备监控和错误处理机制,确保系统的稳定性和可靠性(系统层面)。
- 7.容错性:容错性指的是模型在面对异常情况或错误数据时的处理能力。
- i.部署的模型应该具备一定的容错机制,能够处理无效输入、异常数据或其他错误情况,以保证系统的稳定性和可靠性(数据层面)。
- 8.可维护性:模型部署后需要能够方便地进行维护和管理。
- i.包括模型的更新和迭代、bug修复、性能优化以及监控和日志记录等方面。
- 9.安全性:安全性是指模型在部署过程中对数据和系统的保护能力。
- i.部署的模型应该采取适当的安全措施,包括数据加密、访问控制、模型防护等以保护模型和相关数据的安全性(系统层面)。
- 10.隐私和合规性:在涉及敏感数据或受监管领域的模型部署中,隐私和合规性是重要的考虑因素。确保模型处理数据的隐私安全,遵守相关法规和规定,采取隐私保护措施,如数据脱敏、权限控制等(法律层面)。
五 模型监控
- 1.模型性能指标:(见3模型验证与评估中统计验证指标,如准确率,召回率,精确率,f1 等)。
- 2.平均预测时间:指的是模型处理单个输入样本的平均时间。
- i.监控平均预测时间可以辅助评估模型的推断速度和响应性能。
- 3.内存消耗:指模型在运行时所使用的内存量。
- i.监控内存消耗可以发现模型在处理不同规模数据时的资源消耗情况。
- 4.数据分布监测:监控输入数据的分布情况可以帮助发现模型在不同数据分布下的表现差异,及时发现数据漂移或偏移的情况。
- 5.实时监测指标:如果有实时性相关的需求可以设定一些实时监测指标,如请求响应时间、请求成功率、错误率等,以及模型的运行状态和健康状况。
- 6.错误率:指模型在预测过程中产生的错误比例。
- i.可以通过与标注数据进行对比来计算,监控错误率可以帮助发现模型性能下降或出现偏差的情况。
- 7.模型漂移:指的是模型在部署后性能逐渐下降或不再适应新数据的情况。
- i.可以监控模型在时间上的性能变化,以及模型在新数据上的表现,来检测模型是否发生漂移。
- 8.可解释性指标:对于需要解释模型预测结果的场景,可以考虑使用可解释性指标来评估模型的解释能力和可理解性(以下指标不是所有场景都可以使用)。
- i.特征重要性指标:衡量模型预测结果中各个输入特征的贡献程度,了解哪些特征对于模型决策起到了关键作用。
- ii.局部解释性:解释模型对个别特殊样本的预测结果,包含影响的特征,影响的方向与程度。
- iii.全局解释性:解释整个模型的行为和预测规则。
- iv.决策路径:可以通过展示模型如何根据输入特征取值来做出预测的过程来增加对模型决策的理解。
- v.规则提取:用于提取模型的决策规则,将模型转化为易于理解和解释的规则。
- 9.数据质量指标:使用数据质量指标来识别数据质量问题,如缺失值、异常值、数据偏差等。
六 模型更新与迭代
- 1.新旧模型在模型评估指标的对比。
- 2.模型的稳定性和一致性:稳定性指的是模型在相同输入上的预测结果是否一致;一致性指的是模型在不同批次或者数据子集的预测结果是否一致,从而验证模型的可靠性。 -3.模型复杂度:指的是模型的结构和参数数量,这关系到新模型的预测时间和资源消耗。
- 4.训练时间和资源消耗。
- 5.鲁棒性:评估模型在面对噪声,异常情况或者对抗性攻击等情况时的表现。
- i.通过对抗性评估来评估模型的鲁棒性。
- ii.通过像输入数据中添加噪声来评估,比如随机噪声,高斯噪声等噪声。
- iii.通过随机抽样,数据变换,合成数据等多样化输入数据,观察模型预测结果来评估。
- iv.通过模型可解释性分析来评估(见 5 模型评估中第8 条)。
七 模型回退与版本控制(重叠部分较多)
- 1.新旧模型在模型评估指标的对比。
- 2.新模型的稳定性和一致性。
- 3.模型复杂度。
- 4.训练时间和资源消耗。
- 5.安全性评估(同 4 模型部署第 10 条)。
- 6.可解释性。
八 安全与合规性
- 1.隐私性:主要是模型对个人隐私数据的保护程度。
- i.隐私性评估包含数据收集与使用,处理和储存,共享与传输过程中的保护,用户知情且同意,符合法律法规要求等。
- 2.安全性:评估模型对外部攻击和操纵的抵抗能力(同 4 模型部署第 10 条)。
- 3.可解释性。
- 4.公平性:指的是模型在不同群体和特征的公平性和偏见程度,可通过公平性指标(如平均预测值差异,平均误差差异等指标)来评估。
- 5.审计与记录:模型需要通过审计和记录来追踪和检查模型的使用情况和操作记录。
补一:常见的指标库:
- 1.scikit-learn:其指标调用主要由sklearn.metrics模块儿提供。
- 2.tensorflow:其指标调用主要由tensorflow.keras.metrics模块儿提供。
- 3.keras:其指标调用主要由keras.metrics模块儿提供。
- 4.pytorch:其指标调用主要由torch.metrics.functional模块儿提供。
补二:模型稳定性评估指标(较详细)
- 1.准确性
- 2.泛化能力:对新样本的预测能力。
- 3.鲁棒性:对噪声,异常值,数据波动的抵抗能力。
- 4.可重复性:不同数据集,不同规模,不同超参多次运行观察模型预测结果。
- 5.收敛速度:通过观察模型损失函数的值或其他指标变化来评估。
- 6.预测一致性:相同输入进行多次预测看结果是否一致。
补三: 数据质量评估指标(较详细)
- 1.完整性:是否有缺失值和缺失字段。
- 2.准确性:数据是否与真实情况一致。
- 3.一致性:数据是否在不同位置和真实数据一致。
- 4.唯一性:数据是否存在重复记录。
- 5.及时性:数据是否能反应当前情况。
- 6.规范性:数据是否符合预定义的规范和格式要求,如数据格式,类型,字段长度等。
- 7.可理解性:数据是否易于理解和解释。
- 8.安全性:数据是否收到合理适当的保护。
补四:特征工程评估指标(较详细)
- 1.目标相关性:特征与目标变量之间的相关性。
- 2.特征相关性:特征之间的相关性。
- 3.特征重要性:评估特征对模型预测能力的贡献程度,如基于树算法可以计算特征重要性的分或者 l1 正则化以及嵌入式特征选择都可以选择筛选重要特征。
- 4.互信息:评估测量特征与目标之间的依赖关系。
- 5.信息增益:主要是用于分类任务中分析哪些特征对任务的重要程度。
- 6.方差分析:主要用于具有类别标签的特征和回归问题,帮助确定哪些特征在不同类别之间具有显著差异。
- 7.特征变换:通过对某些特征进行对数变换,平方根变换等,让数据更符合模型假设提高建模效果(其实也包含归一化,标准化处理)。
- 8.特征交叉验证:构建多个模型使用不同的特征子集,然后交叉验证评估模型性能。
补五:风险相关评估指标
- 1.与模型稳定性类似方法(待定)。
结语
- 再次说明,以上为个人使用 GPT 辅助回答以及个人调研综合结果,且为demo 版本,仅供参考
- GPT 回答的部分内容为个人验证过的,比如模型性能指标部分