MLOPS:最佳的机器学习模型监控工具的简介及其对比(Neptune/Arize AI/WhyLabs/Prometheus和Grafana/Evidently/Qualdo/Fiddler/SageMaker Model Monitor/Seldon Core/Censius)
摘要:本文章系统总结了常用的机器学习模型监测工具,重点概述了每种工具的主要功能,并介绍了选择监测工具需要考虑的关键因素,对Neptune进行了更详细的介绍。
ML模型监控是确保模型在生产环境中持续高效运行的关键步骤。选择合适的监控工具可以帮助团队及时发现和解决模型性能下降、数据漂移和概念漂移等问题,提高模型的可靠性和准确性。
>> ML模型监控的重要性:当模型在生产环境中部署后,需要对其进行监控,以确保其性能和预测准确性。模型监控可以帮助发现模型性能下降、数据漂移和概念漂移等问题。
>> 不同的ML模型监控需求:监控模型在生产环境中的性、控模型输入输出的分布情况、模型的训练和重新训练过程、模型的评估和测试过程、硬件指标(如CPU/GPU和内存的使用情况)、ML的CI/CD流水线。
>> 选择ML模型监控工具时需要考虑的因素:集成的便捷性、灵活性和表达能力、监控对基础设施的负载、监控功能的丰富性、提供自动化警报功能
推荐的ML模型监控工具:
Neptune:元数据存储,支持监测模型训练、评估、测试等多个阶段。
Arize AI:监测模型性能下降和预测漂移,支持A/B测试。
WhyLabs:自动监测模型性能,检测问题原因。
Prometheus和Grafana:记录和可视化监测指标。
Evidently:提供多种报告分析模型在不同阶段的性能。
Qualdo:简单的监测工具支持主流云平台。
Fiddler:用户友好,支持错别预测分析。
SageMaker Model Monitor:定制数据收集和分析。
Seldon Core:开源平台支持千万模型生产部署。
Censius:支持完整机器学习管道监测。
目录
8、Amazon SageMaker Model Monitor
最佳的机器学习模型监控工具的简介及其对比
地址 | |
时间 | 2023年11月9日 |
作者 | Jakub Czakon |
如果你将机器学习模型部署到生产环境,迟早你将开始寻找机器学习模型监控工具。
当你的机器学习模型影响业务(而它们应该这样做)时,你只需要了解“事物是如何工作的”。
你真正感受到这一点的时刻是当事情停止工作时。如果没有设置模型监控,你可能不知道出了什么问题,也不知道从哪里开始寻找问题和解决方案。而且人们希望你尽快解决这个问题。
但在这种情况下,“事物”和“工作”指的是什么呢?
有趣的是,根据团队/问题/流程/设置的不同,人们指的是完全不同的事物。
在MLOps公司工作的一个好处是,你可以与许多机器学习团队交流,并直接获得这些信息。因此,人们说“我想监控机器学习模型”时,他们可能想要:
>> 监控生产中的模型性能:查看模型预测的准确性。查看模型性能是否随时间衰减,以及是否应重新训练它。 >> 监控模型输入/输出分布:查看输入数据和进入模型的特征的分布是否发生了变化?预测的类分布是否随时间而变化?这些可能与数据和概念漂移有关。 >> 监控模型训练和重新训练:查看学习曲线、训练模型预测分布或混淆矩阵,在训练和重新训练过程中。 >> 监控模型评估和测试:记录自动评估或测试流水线的指标、图表、预测和其他元数据。 >> 监控硬件指标:查看模型在训练和推理过程中使用的CPU/GPU或内存有多少。 >> 监控ML的CI/CD流水线:查看CI/CD流水线作业的评估,并进行可视比较。在机器学习中,指标通常只能告诉你很多,有人确实需要亲自看到结果。 |
以正确的方式进行机器学习模型性能监控
地址:Doing ML Model Performance Monitoring The Right Way
在生产环境中监控你的模型的全面指南
地址:A Comprehensive Guide on How to Monitor Your Models in Production
你指的是哪种机器学习模型监控呢?无论如何,我们将研究适用于所有这些用例的工具。
但首先…
如何比较机器学习模型监控工具
显然,根据你要监控的内容,你的需求会发生变化,但在选择机器学习模型监控工具之前,有一些事项你肯定需要考虑:
>> 集成的便利性:将其连接到你的模型训练和模型部署工具有多容易 >> 灵活性和表达力:你是否可以记录和查看你想要的内容以及你想要的方式 >> 开销:日志记录对你的模型训练和部署基础架构施加多少开销 >> 监控功能:你能否监控数据/特征/概念/模型漂移?你能否比较同时运行的多个模型(A/B测试)? >> 报警:在性能或输入出现问题时,它是否提供自动警报? |
好了,现在让我们看看实际的模型监控工具!
机器学习模型监控工具
首先,让我们回顾一下不同的监控功能,并看看哪个工具符合这些需求。
工具\监控能力 | Neptune.ai | Arize | WhyLabs | Grafana + Prometheus | Evidently | Qualdo | Fiddler | Amazon SageMaker | Seldon Core | Censius |
模型评估和测试 | 是 | 有限的 | 有限的 | 否 | 否 | 否 | 否 | 是 | 否 | 否 |
硬件指标 | 是 | 否 | 否 | 是 | 否 | 否 | 否 | 否 | 否 | 否 |
模型输入/输出分布 | 否 | 是 | 是 | 有限的 | 是 | 是 | 是 | 是 | 是 | 是 |
模型训练和重新训练 | 是 | 有限的 | 有限的 | 否 | 否 | 否 | 否 | 是 | 否 | 否 |
生产中的模型性能 | 否 | 是 | 是 | 有限的 | 是 | 是 | 是 | 是 | 是 | 是 |
用于 ML 的 CI/CD 流水线 | 是 | 否 | 否 | 否 | 否 | 否 | 否 | 是 | 否 | 否 |
现在,我们将更详细地审查每个工具。
1、Neptune
Neptune是一个为进行大量实验的研究和生产团队构建的MLOps元数据存储。你可以记录和显示几乎任何机器学习元数据,包括指标和损失、预测图像、硬件指标以及交互式可视化。在监控机器学习模型方面,人们主要用它来进行:
>> 模型训练、评估、测试, >> 硬件指标显示 >> 但你可以(一些团队确实这样做)记录来自生产作业的性能指标,并查看来自ML CI/CD流水线的元数据。 |
它具有灵活的元数据结构,允许你以你想要的方式组织训练和生产元数据。你可以将其视为在代码中创建并在UI中显示的字典或文件夹结构。
你可以构建仪表板,显示你想要看到的性能和硬件指标,以更好地组织你的模型监控信息。
你可以比较模型之间和运行之间的指标,以查看模型更新如何改变性能或硬件消耗,以及是否应该中止实时模型训练,因为它只会击败基准。
你可以通过易于使用的API和与ML生态系统中工具的25多个集成来记录要监控的元数据。
如果你想知道它是否适合你的工作流程:
>> 查看人们如何使用Neptune设置其MLOps工具堆栈的案例研究 >> 探索一个示例公共项目 >> 在Colab中运行模型监控示例,亲自看看 地址:Monitoring model training live - neptune.ai documentation |
2、Arize AI
Arize AI是一款能够提升项目可观察性并帮助你解决生产人工智能故障排除的机器学习模型监控平台。
如果你的机器学习团队在没有强大的可观察性和实时分析工具的情况下工作,工程师可能会花费数天来识别潜在问题。Arize AI使得很容易找出问题出在哪里,使软件工程师能够立即找到并解决问题,而不会对业务产生影响。Arize AI具有以下功能:
>> 简单集成。Arize AI可用于增强任何环境中任何模型的可观察性。详细的文档和社区支持使你能够在几分钟内集成并投入使用。 >> 预发布验证。在部署模型之前检查模型是否会按预期行为是很重要的。预发布验证工具包可以帮助你对模型的性能进行验证,并执行预发布和发布后的验证检查。 >> 自动监控。模型监控应该是主动的,而不是被动的,以便你可以及早识别性能降级或预测漂移。自动化监控系统可以帮助你做到这一点,并与PagerDuty或Slack等工具集成,可以实时通知你。它不需要任何设置,并提供易于自定义的仪表板的空间。 >> 监控和识别漂移。跟踪模型维度和值之间的预测、数据和概念漂移,并在训练、验证和生产环境之间进行比较。 >> 确保数据完整性。通过自动检查缺失、意外或极端值,确保模型数据输入和输出的质量。 >> 改善模型性能。使用ML性能追踪自动定位模型性能问题的源头,并映射回底层数据问题。 >> 利用可解释性。查看模型维度如何影响预测分布,并利用SHAP来解释特定群体的特征重要性。 >> 监控非结构化数据。通过监控CV或NLP模型的非结构化数据嵌入,团队可以主动识别它们的非结构化数据何时发生漂移。 >> 动态仪表板。利用预配置的仪表板模板或创建自定义仪表板,以帮助集中故障排除工作的注意力。 |
3、WhyLabs
WhyLabs是一款模型监控和可观察性工具,帮助机器学习团队监控数据管道和机器学习应用程序。监控已部署模型的性能对于积极解决问题至关重要。你可以确定重新训练和更新模型的适当时间和频率。它有助于检测数据质量下降、数据漂移和数据偏差。由于WhyLabs可以轻松在有经验的开发人员与初级员工并肩工作的混合团队中使用,因此该工具在开发者中迅速变得非常流行。
该工具使你能够:
>> 使用即插即用或定制指标自动监控模型性能。 >> 检测整体模型性能降级并成功识别引起问题的问题。 >> 通过其开源数据日志库whylogs,与其他工具轻松集成,同时保持高标准的隐私保护。 >> 使用流行的库和框架,如MLFlow、Spark、Sagemaker等,使WhyLabs的采用变得顺利。 >> 使用内置工具轻松调试数据和模型问题。 >> 通过易于使用的零配置设置在几秒钟内设置工具。 >> 通过首选的渠道,如Slack、短信等,获得有关当前工作流的通知。 |
WhyLabs在模型监控方面的最大优势之一是它消除了手动解决问题的需要,从而节省了时间和金钱。你可以使用此工具处理结构化和非结构化数据,而不受规模的限制。WhyLabs使用AWS云。它在Amazon ECS上运行容器,并使用Amazon EMR进行大规模数据处理。
4、Grafana + Prometheus
Prometheus是一款流行的开源机器学习模型监控工具,最初由SoundCloud开发,用于收集多维数据和查询。
Prometheus的主要优势在于与Kubernetes以及许多可用的导出器和客户端库的紧密集成,以及快速的查询语言。Prometheus还与Docker兼容,并可在Docker Hub上获得。
Prometheus服务器具有自包含的单元,不依赖网络存储或外部服务。因此,它不需要部署额外的基础架构或软件。其主要任务是存储和监视特定对象。对象可以是任何东西:Linux服务器、进程之一、数据库服务器或系统的任何其他组件。你要监视的每个元素称为指标。
Prometheus服务器以你定义的间隔读取目标以收集指标,并将它们存储在时间序列数据库中。你设置要读取指标的目标和时间间隔。使用PromQL查询语言查询Prometheus时间序列数据库中存储的指标。
Grafana允许你可视化监控指标。Grafana专注于时间序列分析。它可以以折线图、热图和直方图的形式可视化监控工作的结果。
与直接向Prometheus服务器编写PromQL查询不同,你使用Grafana GUI面板从Prometheus服务器请求指标并在Grafana仪表板中呈现它们。
Grafana的关键功能:
>> 警报。你可以通过各种渠道接收警报,从即时通讯工具到Slack。如果你喜欢其他选项,>> 你还可以通过一点点代码手动添加自己的警报。 仪表板模板。你可以为不同任务创建自定义仪表板,并在一个界面中管理所有需要的内容。 >> 自动化。你可以使用脚本在Grafana中自动化工作。 >> 注释。如果出现问题,你可以将来自不同仪表板和来源的事件进行时间匹配,以分析故障的原因。你可以通过向所需的点和图段添加注释来手动创建注释。 |
5、Evidently
Evidently是一款开源的ML模型监控系统。它有助于在开发、验证或生产监控期间分析机器学习模型。该工具从pandas DataFrame生成交互式报告。
目前,有6种报告可用:
>> 数据漂移:检测特征分布的变化 >> 数值目标漂移:检测数值目标和特征行为的变化 >> 分类目标漂移:检测分类目标和特征行为的变化 >> 回归模型性能:分析回归模型的性能和模型错误 >> 分类模型性能:分析分类模型的性能和错误。适用于二进制和多类模型 >> 概率分类模型性能:分析概率分类模型的性能、模型校准质量和模型错误。适用于二进制和多类模型 |
6、Qualdo
Qualdo是Azure、Google和AWS中的机器学习模型性能监控工具。该工具具有一些不错的基本功能,可帮助你观察整个模型生命周期。
使用Qualdo,你可以从生产ML输入/预测数据、日志和应用程序数据中获取见解,以监视和改进你的ML模型性能。有模型部署和自动监控数据漂移和数据异常的功能,你可以查看质量指标和可视化。
它还提供了用于在Tensorflow中监视ML流水线性能并利用Tensorflow的数据验证和模型评估功能的工具。
此外,它与许多人工智能、机器学习和通信工具集成,以改进你的工作流程并使协作更加轻松。
这是一个相当简单的工具,没有提供很多高级功能。因此,如果你正在寻找简单的ML模型监控性能解决方案,它是最佳选择。
7、Fiddler
Fiddler是一款模型监控工具,具有用户友好、清晰和简单的界面。它使你可以监控模型性能,解释和调试模型预测,分析整个数据和切片的模型行为,扩展机器学习模型,以及管理你的机器学习模型和数据集。
以下是Fiddler的ML模型监控功能:
>> 性能监控——以可视化的方式探索数据漂移,并确定数据何时漂移、漂移如何以及如何漂移 >> 数据完整性——确保错误数据不会进入模型,不会对最终用户体验产生负面影响 >> 跟踪异常值——Fiddler在异常检测选项卡中显示单变量和多变量异常值 >> 服务指标——为你的ML服务在生产中提供基本的洞察 >> 警报——Fiddler允许你为项目中的模型或一组模型设置警报,以警告生产中的问题 |
总体而言,它是一个具有所有必要功能的监控机器学习模型的出色工具。
8、Amazon SageMaker Model Monitor
Amazon SageMaker Model Monitor是Amazon SageMaker工具之一。它可以自动检测和警报生产中部署的模型的不准确预测,以便你可以保持模型的准确性。
以下是SageMaker Model Monitoring功能的摘要:
>> 可定制的数据收集和监控——你可以选择要监控和分析的数据,无需编写任何代码 >> 内置的分析,以统计规则的形式检测数据和模型质量的漂移 >> 你可以编写自定义规则并为每个规则指定阈值。然后可以使用这些规则分析模型的性能 >> 可视化指标,并在SageMaker笔记本实例中运行临时分析 >> 模型预测——导入你的数据以计算模型性能 >> 安排监控作业 >> 该工具与Amazon SageMaker Clarify集成,因此你可以识别ML模型中的潜在偏见 |
当与其他ML工具一起使用时,SageMaker Model Monitor使你完全掌握你的实验。
另请参阅
Neptune和SageMaker之间的比较
地址:Neptune vs Amazon SageMaker - neptune.ai
9、Seldon Core
Seldon Core是用于在Kubernetes上部署机器学习模型的开源平台。它是一个MLOps框架,使你能够打包、部署、监控和管理成千上万个生产机器学习模型。
它可以在任何云和本地运行,是框架不可知的,支持顶级ML库、工具包和语言。此外,它将你的ML模型(例如Tensorflow、Pytorch、H2o)或语言包装器(Python、Java)转换为生产REST/GRPC微服务。
基本上,Seldon Core具有扩展大量ML模型所需的所有功能。你可以期望拥有高级指标、异常检测器、金丝雀部署、由预测器、变压器、路由器或合并器制成的丰富推断图等功能。
10、Censius
Censius是一款AI模型可观察性平台,可让你监控整个ML管道,解释预测,并积极解决问题,以改善业务结果。
Censius的主要功能:
>> 完全可配置的监控器,检测漂移、数据质量问题和性能下降 >> 实时通知,让你提前了解模型服务管道中的问题 >> 可自定义的仪表板,你可以在其中切片和切块你的模型训练和生产数据,并观察任何业务KPI >> 对A/B测试框架的本机支持,因此你可以继续在生产中尝试和迭代不同的模型 >> 通过对表格、图像、文本数据的可解释性,深入了解问题的根本原因 |
结论
现在你知道如何评估ML模型监控工具以及有哪些选择,继续前进的最佳方法是测试你喜欢的工具!
如果你想尝试Neptune,可以执行以下操作:
>> 查看Neptune中的示例模型监控仪表板和模型训练运行比较:neptune.ai
>> 查看ML模型监控文档:Monitoring model training live - neptune.ai documentation
你还可以通过查看mlops.community准备的这个出色的资源,ml模型监控工具比较来继续评估工具。
无论哪种方式,愿你监控愉快!