4. 业务指标和KPI
终于到了来讨论商业价值了!
要判断 ML 模型的性能,您最终需要将其与业务 KPI 联系起来。 ML 模型是否完成了它所构建的工作?
业务指标监控的目标是什么?
估计 ML 系统的商业价值,并在事情偏离轨道时进行调整。 ML 模型质量和商业价值之间总是存在不匹配的风险。这可能是由于不断变化的现实或模型未按设计方式使用(或根本未使用!)
这对机器学习监控有多具体?
这部分是严格特定于业务的。指标和衡量它们的方式无处不在。它的范围可以从跟踪 Web 应用程序中的参与度指标到评估工业工厂中原材料的节省。这一切都归结为业务用例。
谁通常随叫随到?
产品经理、企业主或运营团队与数据科学家一起弥合差距。
你能监控什么?
- 直接业务 KPI。您可能会密切关注直接的业务和产品指标。例如,页面上的点击率或生产过程中使用的原材料数量(如果这是 ML 系统帮助优化的!)。如果幸运的话,您也许可以通过查看这些指标来跟踪 ML 解决方案的业务影响。例如,如果 ML 系统作为独立应用程序存在,您可以直接将一些收入或节省归因于它。
- A/B 测试性能。目标业务指标通常受多种因素影响。一个好的旧 A/B 测试可以帮助衡量 ML 系统的孤立影响。例如,您可以拆分流量以将基于 ML 的推荐块的性能与基线进行比较。 ML 系统是否比简单地推荐前 10 名最受欢迎的商品带来更多的销售?如果你有足够的流量,你甚至可以连续运行它,让一小部分远离 ML。如果您正在处理一个新的高风险区域并关注长期模型影响(例如:影响环境的模型),这可能是合理的。
- 间接指标。有时很难将 ML 性能与收入或转化等主要业务指标联系起来。在这种情况下,您仍然可以评估反映 ML 模型质量的辅助指标。如果您有启用 ML 的特征,您可以跟踪它的使用频率。如果您向用户推荐内容,您可以跟踪参与度以及点击推荐块后他们在页面上停留的时间。您还可以引入一些可解释的检查,以帮助企业主了解模型在做什么,例如,批准了多少贷款。
Nubank ML 团队关于监控策略层的一些建议:
监控使用该模型做出的决策。例如:每天有多少人获得风险模型批准的贷款?每天有多少人的账户被欺诈模型封锁?在这里监控绝对值和相对值通常很有用。
资料来源:ML Model Monitoring – 9 Tips From the Trenches,Nubank 博客。
监控业务 KPI 有什么技巧?
- 你不能总是测量它们。进行 A/B 测试可能过于昂贵、复杂或不可行。通常,您无法隔离 ML 系统的影响,因为有多种因素会影响目标 KPI。在信用评分等情况下,评估做出贷款决定的业务影响可能需要数月或数年的时间。您应该始终尝试找到一些代理,或者至少是业务利益相关者可以解释的健全性检查。但是你不能总是快速获得美元和美分的价值。
- 在模型退化的情况下,业务指标给出的上下文最少。如果指标下降,您必须遍历每个金字塔层以对其进行排序。是模型吗?是数据吗?是软件吗?业务指标是最关键的价值指标(它们位于金字塔顶端是有原因的)。尽管如此,您仍需要更多的可观察性才能获得及时的警报并有效地调试系统。
如果可以的话,跟踪它们,但也要跟踪其他的东西。
你需要所有这些吗?
我们知道,这是很多!
本概述的目的是介绍生产 ML 系统的所有不同方面。一旦部署了 ML 应用程序,它就不再只是一个模型,而是一个由数据、代码、基础设施和周围环境组成的复杂系统。您需要对其进行整体监控。
这并不意味着您应该一直查看数十个指标和图表。
首先,团队中的不同人员可能使用多个仪表板或视图。
您可以在现有的后端监控工具中进行操作监控。 您可以在业务利益相关者已经使用的 BI 仪表板中可视化产品指标。 根据设置,您可以将 ML 监控指标添加到同一个 Grafana 仪表板,通过 Airflow 编排的管道测试检查它们,或者启动 ML 团队使用的独立仪表板。 ML 监控的不同方面有不同的内部用户(和问题解决者)。 拥有多个仪表板很好。
以下是 Monzo 的案例:
了解模型的实时性能是模型开发过程的关键部分。 在这个阶段,我们依靠重用而非重建原则,并采用了在整个公司中使用的工具。 我们希望我们的监控工具可供所有人使用,包括机器学习以外的人。
来源:Monzo's machine learning stack,Monzo 博客。
其次,你应该区分监控和调试。 您可能只针对最能反映服务性能的少数指标主动监控和引入警报。 您的目标是了解潜在问题。 其余的指标和图表在调试过程中会很有帮助,因为它们提供了必要的上下文。 但是您不会主动设置警报或为其定义特定阈值。
例如,如果您快速获得模型反馈,您可能会跳过有关特征漂移的警报。 毕竟,您可以评估模型质量本身。 但是,如果您注意到性能下降,则需要确定原因并决定如何处理漂移。 为重要特征预先构建分布可视化或有一种简单的方法来按需旋转它可能是有意义的。 在其他情况下,您可能更喜欢监控数据漂移,即使您获得了标签。
总而言之,监控的目标是让人们确信系统运行良好,如果不是,则发出警报。如果发生故障,您需要必要的上下文来诊断和解决问题,这就是额外指标派上用场的地方,但您不需要一直查看它们。
总结
机器学习监控意味着监控机器学习系统。要观察和评估其性能,您通常需要一组描述系统状态的指标。该系统有几个方面值得关注。
我们可以将它们分组为:
- 软件系统运行状况。您可以像其他后端服务一样监控它。它并非特定于数据科学和机器学习,但仍需要适当的设置。
- 数据质量和完整性。应该查看流经特定 ML 预测管道的数据。目标是检查它没有错误或损坏,并且您仍然可以相信这些数据成为您的模型输入。您通常可以在生成预测之前引入管道测试来验证输入数据。
- ML 模型质量。这是最特定于 ML 的监控组件。您希望密切关注模型相关性,以确保它适合任务。如果您有延迟反馈,您可能会求助于监控数据和预测漂移作为模型质量的代理。
- 业务 KPI。业务或产品指标是模型投资回报率和价值的最终衡量标准,但通常是最难衡量的。
您可能不需要详细查看每个金字塔层。他们可能在后端工程师、数据工程、ML 团队和业务利益相关者之间有不同的内部消费者。
确切的监控策略还取决于模型是批处理还是实时模型、获得ground truth标签的速度、模型的重要性以及相关风险。您可能会使用一些指标进行实际监控(对它们设置警报),同时让其他指标可用于报告和调试目的(例如,预先计算并存储在某处)。
以下是一些指标示例的摘要: