云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名备案_州网站建设_安全稳定

小七 141 0

生产电离机学习:从部署到漂移检测

试着用这本笔记本复制下面列出的步骤,并观看我们的点播网络研讨会了解更多。在许多文章和博客中,机器学习工作流从数据准备开始,到将模型部署到生产中结束。但实际上,这只是机器学习模型生命周期的开始。正如他们所说,"改变是生命中唯一不变的"。这也适用于机器学习模型,因为随着时间的推移,它们的准确性或预测能力可能会下降,通常称为模型漂移。本博客讨论如何检测和解决模型漂移。机器学习中的漂移类型当特性数据或目标依赖项发生某种形式的更改时,可能会发生模型偏移。我们可以将这些变化大致分为以下三类:概念漂移、数据漂移和上游数据变化。概念漂移当目标变量的统计特性发生变化时,您试图预测的概念也会发生变化。例如,随着开展此类非法交易的新方法的发展,被视为欺诈性交易的定义可能会随着时间的推移而改变。这种变化会导致概念的漂移。数据漂移用于训练模型的特征是从输入数据中选择的。当输入数据的统计特性发生变化时,它将对模型的质量产生下游影响。例如,由于季节性、个人偏好变化、趋势等引起的数据变化将导致传入数据漂移。上游数据更改有时,上游数据管道中可能存在操作更改,这可能会对模型质量产生影响。例如,对特征编码的更改(如从华氏温度切换到摄氏度)以及不再生成的特性导致空值或丢失值等。检测和防止模型漂移的方法考虑到模型部署到生产环境后会有这样的更改,您最好的做法是监视更改并在发生更改时采取行动。有一个来自监控系统的反馈循环,并随着时间的推移刷新模型,将有助于避免模型过时。正如我们在上面看到的,漂移可能来自不同的来源,因此您应该监控所有这些来源,以确保完全覆盖。以下是一些可以部署监视的场景:培训资料传入数据的模式和分布标签的分发请求和预测架构和请求分发预测分布预测质量使用数据链管理大规模模型漂移利用三角洲湖探测数据漂移数据质量是防止模型质量差和模型漂移的第一道防线。deltalake通过提供模式强制、数据类型和质量期望等特性,帮助确保以高质量和高可靠性构建数据管道。通常,您可以通过更新传入的数据管道来修复数据质量或正确性问题,例如修复或改进模式以及清理错误的标签等。用Databricks运行时检测ML和MLflow的概念和模型漂移检测模型漂移的一种常见方法是监控预测的质量。理想的ML模型训练练习将从从Delta-Lake表等源加载数据开始,然后使用针对ML的Databricks运行时进行特性工程、模型调优和选择,同时在MLflow中跟踪所有实验运行和生成的模型在部署阶段,在运行时从MLflow加载模型以进行预测。您可以将模型性能指标和预测记录回Delta Lake这样的存储中,以便在下游系统和性能监视中使用。通过将培训数据、性能指标和预测记录在一个位置,您可以确保进行准确的监控在监督培训期间,可以使用培训数据中的要素和标签来评估模型的质量。一旦部署了模型,就可以记录和监视两种类型的数据:模型性能度量和模型质量度量。模型性能指标是指模型的技术方面,例如推理延迟或内存占用。当模型部署到数据块上时,可以很容易地记录和监视这些度量。模型质量指标取决于实际的标签。一旦记录了标签,就可以比较预测的和实际的标签来计算质量指标,并检测模型的预测质量中的偏差。 下面显示的示例架构使用来自物联网传感器(功能)和实际产品质量(标签)的数据作为来自三角洲湖的流媒体源。根据这些数据,您可以创建一个模型,根据物联网传感器数据预测产品质量。在MLflow中部署的生产模型被加载到评分管道中,以获得预测的产品质量(预测标签)。为了监控偏差,您将实际产品质量(标签)和预测质量(预测标签)结合起来,并在一个时间窗口内汇总以趋势模型质量。此用于监控模型质量的汇总KPI可能因业务需要而有所不同,并且可以计算多个此类KPI以确保充分的覆盖范围。有关示例,请参见下面的代码片段。def track_model_质量(实际,预测):#连接实际标签和预测标签质量比较=预测的.join(实际,"pid")#创建一列,指示预测的标签是否准确quality_compare=质量_与列比较("准确预测",F、 当((F.col('quality')==F.col('预测的质量')),1)\。否则(0))#汇总一个时间窗口内的准确标签,以趋势化准确预测的百分比准确预测汇总=(质量_比较.groupBy(F.window(F.col('进程时间','1天').alias('window'),F.col('准确的预测').count().withColumn('窗口日期',F.expr('结束日期')(窗口.开始)')).withColumn('total',F.sum(F.col('count'))。结束(窗口.分区依据("窗口日").withColumn('ratio',F.col('count')*100/F.col('total')).select('窗口天数','准确预测','计数','总计','比率').withColumn('准确的预测',F.when(F.col('准确的预测')==1,'准确')。否则('不准确').orderBy('窗口日'))返回准确的预测汇总根据实际标签到达时间与预测标签的延迟程度,这可能是一个明显的滞后指标。为了提供一些漂移的早期预警,这个指标可以伴随着领先的指标,如预测质量标签的分布。为了避免误报,此类KPI需要根据业务上下文进行设计。您可以在业务需要可接受的控制范围内设置准确的预测汇总趋势。然后,可以使用标准的统计过程控制方法来监控摘要。当趋势超出这些控制限制时,它可以触发一个通知或一个操作,用更新的数据重新创建一个新的模型。下一步行动按照这个GitHub repo中的说明,复制上面的示例并适应您的用例。要提供更多的上下文,请参阅随附的网络研讨会,产品电离机器学习-从部署到漂移检测。免费试用Databricks。今天就开始吧