一旦在生产环境中部署了机器学习模型,就需要确保它的性能。在本文中,我们建议如何监视您的模型和要使用的开源工具。
建立机器学习模型并不容易。在生产环境中部署服务更加困难。但即使你成功地将所有流水线连接在一起,事情也不会就此停止。
一旦模型投入使用,我们就必须立即考虑平稳运行。毕竟,它现在正在交付业务价值!模型性能的任何中断都会直接导致实际业务损失。
我们需要确保模型交付。不仅作为一个返回API响应的软件,而且作为一个机器学习系统,我们可以信任它来做出决策。
这意味着我们需要监控我们的模型。
如果ML在生产中让您措手不及,这里有一个清单,列出了需要注意的事项。
1.服务健康
机器学习服务仍然是一项服务。您的公司可能已经建立了一些可以重用的软件监控流程。如果模型实时运行,则需要适当的警报和负责人随时待命。
即使您只处理批处理模型,也不要例外!我们仍然需要跟踪内存利用率、CPU负载等标准健康指标。
我们的目标是确保服务是运作的,并遵守必要的限制条件,例如响应速度。
开源工具:Grafana
2.数据质量和完整性
机器学习模型有什么问题吗?在绝大多数情况下,数据都是罪魁祸首。
上游流水线和模型中断。用户进行了未通知的schema更改。数据可能在源头消失,物理传感器失效,等等。
因此,验证输入数据是否符合我们的期望至关重要。检查可能包括范围合规性、数据分布、特征统计、相关性或我们认为数据集“正常”的任何行为。
我们的目标是在它返回不可靠的响应之前,确认我们正在提供模型可以处理的数据。
开源工具:Great Expectations
3. 数据和目标漂移
事情会改变的, 即使我们处理非常稳定的过程。 几乎每个机器学习模型都有这个不合适宜的特性:它会随着时间的推移而退化。
当模型接收到它在训练中没有看到的数据时,我们可能会遇到数据漂移。想象一下来自不同年龄组、营销渠道或地理区域的用户。
如果现实世界的模式发生变化,概念漂移就会开始。想想一些随意的事情,比如:影响所有客户行为的全球流行病。 或者市场上提供慷慨的免费套餐的新竞争产品。 它改变了用户对您的营销活动的反应方式。
两种漂移的最终衡量标准是模型质量的下降。 但有时,实际值尚不清楚,我们无法直接计算。 在这种情况下,需要跟踪最重要的指标。 我们可以监控输入数据或目标应变量的属性是否发生了变化
例如,您可以跟踪主要的模型特征和模型预测的分布。 然后,如果它们与过去的时间范围有显着差异,则触发警报。
我们的目标是获得世界或数据发生变化的早期信号:是时候更新我们的模型了。
开源工具:Evidently
4. 模型性能
了解您的模型是否运行良好的最直接方法是将您的预测与实际值进行对比。您可以在模型训练阶段使用相同的指标,例如:分类的 Precision/Recall、回归的 RMSE 等等。如果数据质量或现实世界模式出现问题,我们将看到指标逐渐下降。
这里有一些警告。
- 首先,ground truth或实际标签通常会有延迟。例如,如果你预测的时间很长,或者数据交付滞后。有时您需要额外的努力来标记新数据以检查您的预测是否正确。在这种情况下,首先跟踪数据和目标漂移作为预警是有意义的。
- 其次,不仅需要跟踪模型质量,还需要跟踪相关的业务 KPI。 ROC AUC 的下降并不能直接说明它对营销转化的影响有多大。将模型质量与业务指标联系起来或找到一些可解释的代理至关重要。
- 第三,您的质量指标应该适合用户场景。例如,如果您有不平衡的类,则准确度指标远非理想。对于回归问题,您可能会关心错误符号。因此,您不仅应该跟踪绝对值,还应该跟踪误差分布。区分偶然的异常值和真正的衰减也很重要。
所以,明智地选择你的指标!
我们的目标是跟踪模型在多大程度上满足了其目的,以及在出现问题时如何调试它。
开源工具:Evidently
5. 分段性能表现
对于许多模型,上述监控设置就足够了。 但是,如果您处理更关键的用户场景,还有更多的项目要检查。
例如,模型在哪里犯了更多的错误,它在哪里工作得最好?
您可能已经知道要跟踪的一些特定分段(segments),例如:您的高级客户与整体基数的模型准确性。 它需要一个自定义质量指标,仅为您定义的段内的对象计算。
在其他情况下,主动搜索性能低下的段是有意义的。想象一下,您的房地产定价模型始终建议特定地理区域的报价高于实际报价。这是您要注意的事情!
根据场景,我们可以通过在模型输出之上添加后处理或业务逻辑来解决它。 或者通过重建模型来解决表现不佳的段。
6. 偏见/公平
当涉及到金融、医疗保健、教育和其他模型决策可能产生严重影响的领域时,我们需要更仔细地审查我们的模型。
例如,模型性能可能会因不同人口群体在训练数据中的表现而异。 模型创建者需要意识到这种影响,并与监管机构和利益相关者一起拥有减轻不公平的工具。
为此,我们需要跟踪合适的指标,例如准确率中的奇偶校验。它适用于模型验证和持续的生产监控。因此,仪表板上还有一些指标!
我们的目标是确保公平对待所有子群体并跟踪合规性。
开源工具:Fairlearn
7.异常值
我们知道模型会出错。 在某些用户场景中,例如广告定位,我们可能不在乎个别输入是否显得奇怪或平常。 只要它们不构成有意义的部分,模型就会失败!
在其他应用程序中,我们可能想了解每个此类情况。 为了最大限度地减少错误,我们可以设计一组规则来处理异常值。 例如,将它们发送给人工审核,而不是自动做出决定。 在这种情况下,我们需要一种方法来相应地检测和标记它们。
我们的目标是标记模型预测可能不可信的异常数据输入。
开源工具:Seldon Alibi-Detect
监控听起来可能很无聊。 但是,让机器学习在现实世界中发挥作用至关重要。 不要等到模型失败时才创建第一个仪表板!