MLOps 监测和管理漂移

MLOps 监测和管理漂移

编辑注:Oliver Zeigermann是ODSC West 2023秋季大会的演讲者。一定要去参加他的演讲“MLOps: Monitoring and Managing Drift”!

机器学习的麻烦始于将模型投入生产之后。

通常情况下,您希望将一些能够在业务方面带来明显好处的内容投入生产。因为,如果没有带来好处,为什么要费心呢?因此,当我们的模型覆盖的世界有一丝丝发生变化的可能性时,我们需要监控我们模型在生产中的性能。可能会有例外情况,但我将假设这几乎总是如此。

如何监控?

在图1中,您可以看到一个相当典型的设置,用于监控与您的模型有关的相关数据。左侧的明显部分是使用训练模型的预测服务。该服务将输入和输出数据转发给一个监控服务,该监控服务通常作为一个单独的进程运行。一些统计魔术在该监控服务内部发生,显示为指标终点。显然,这些指标的计算已被证明能够很好地完成。这些指标的表示可以由记录这些指标随时间变化的数据库进行轮询。最终,这些信息会显示在某种仪表盘上,并且会在数据库或仪表盘服务上启动警报系统。Prometheus和Grafana分别是数据库和仪表盘的默认解决方案。

图1:ML监控的高级架构

要监控性能,最好的方法是跟踪用于训练模型的指标。不过,这有一个问题。为了这样做,您需要了解真实情况。有些情况下,您立即会得到某种反馈,如果您的预测准确,但通常情况下,您可能永远不会得到这种反馈,或者只会得到少量的反馈,并且大部分时间会有显着的延迟。

由于我们假设您的机器学习服务对您的业务有影响,因此您可能更想知道性能是否在尽早时期下降。这样的替代指标可以是训练期间使用的数据的分布与预测期间您所看到的数据的相似性。这可以适用于输入数据和/或输出数据。

图2:参考数据和生产数据的分布相似

图2显示了这样的比较,其中两个分布相当相似,而图3显示了偏差。您可以使用统计测试计算相似性的数值表示,例如Evidently和其他监控库提供的测试。

这样的替代指标永远不会像将您的预测与真实情况进行比较那样准确,但可能是您所能做到的最好的。

图3:参考数据和生产数据的分布不同

看起来不对劲,现在该怎么办?

尽管这更多是一门艺术而不是一门技术,但无论如何,您应该通过将生产数据与参考数据进行绘图来查看生产数据的分布。统计测试得出的分数只是一个单一的值,但在分布的形状中还有很多值得观察的内容。您看到了什么?以下是一些经验法则:

  1. 它基本上是相同的形状,只是朝一个方向漂移了吗?对于这个例子来说,这意味着您的受众的年龄总体上变老或变年轻。这种影响有多大?功能“年龄”对于预测有多重要?如果没有那个漂移的功能,您甚至能否训练一个新模型?
  2. 您是否看到一个完全超出原始形状的子群体形成?要看到这一点,您可能需要同时查看多个维度。在这种情况下,您可以相当确定您的模型在该数据上表现不佳,因为模型始终无法很好地对超出训练数据范围的数据进行外推。为了防止损害,处理这个问题的一个快速方法是通过模型将该子群体从预测中排除,并返回到其他系统,如简单的基于规则的方法。
  3. 您可能会看到输出发生了变化,即预测值发生了变化。假设您有一个二元模型,好的案例的百分比越来越高。这对您的业务来说可能是一个真正的危险,您的模型可能已经遭到了对抗性攻击。在这种情况下,您必须尽快更换该模型。如果您假设存在对抗性攻击,即使使用旧数据重新训练您的模型,也可能会解决该问题,因为攻击者可能不再能够利用您模型的随机特性。您可以尝试这个例子,或者完全替换模型,并使用可能与手动分类一样彻底的备用系统。
  4. 有时候,统计测试可能会看到很大的差异,但您会发现它只是在原始分布范围内发生了变化。这可能意味着您的模型足够通用,可以处理输入分布的变化。如果您至少有一点新收集的真实数据,使用该数据进行验证运行可能会确认或推翻这个假设。

一旦你怀疑你的模型不再像最初那样表现,你基本上需要重复最初训练模型时所做的步骤。然而,情况很可能更具挑战性,因为你可能并没有所有最新的数据。

我在2023年ODSC West San Francisco的研讨会

我的技术实践研讨会“MLOps:监控和管理漂移”将更深入地涵盖这些主题。该研讨会将在2023年ODSC West San Francisco的会场举行。该研讨会的目标是确保您掌握必要的知识和实用工具,能够熟练地检测和处理漂移。

研讨会链接和更多详情:https://odsc.com/speakers/mlops-monitoring-and-managing-drift/

关于作者/ODSC West 2023 讲者:

Oliver Zeigermann 是一名来自德国汉堡的AI工程师。他已经使用不同的方法和编程语言开发软件超过三十年。在过去的十年中,他一直专注于机器学习及其与人类的交互。