如果您迟早将模型部署到生产环境,那么您将开始寻找 ML 模型监控工具。
当您的 ML 模型影响业务时,您只需要了解“事物是如何工作的”。
当事物停止工作时,你真正感受到这一点的第一刻。如果没有设置模型监控,您可能不知道哪里出了问题以及从哪里开始寻找问题和解决方案。
人们希望你尽快解决这个问题。但在这种情况下,“事物”和“工作”是什么意思?
有趣的是,依据团队/问题/流水线/设置,人们的意思完全不同。
在 MLOps 公司工作的一个好处是,您可以与许多 ML 团队交谈并获得第一手信息。所以事实证明,当人们说“我想监控 ML 模型”时,他们可能想要:
-
监控生产中的模型性能:查看模型的预测有多准确。看看模型性能是否会随着时间的推移而衰减,你应该重新训练它。 -
监控模型输入/输出分布:查看模型中输入数据和特征的分布是否发生了变化?预测的类分布是否随时间变化?这些东西可能与数据和概念漂移有关。 -
监控模型训练和重新训练:在训练和再训练期间查看学习曲线、训练模型预测分布或混淆矩阵。 -
监控模型评估和测试:为您的自动化评估或测试流水线记录指标、图表、预测和其他元数据。 -
监控硬件指标:查看模型在训练和推理期间使用了多少 CPU/GPU 或内存。 -
监控 ML 的 CI/CD 流水线:查看来自 CI/CD 流水线作业的评估并直观地比较它们。在 ML 中,指标通常只能告诉您这么多,并且需要有人真正看到结果。
另请阅读:
您指的是哪种ML模型监控?
无论哪种方式,我们都将研究有助于处理所有这些场景的工具。
如何比较 ML 模型监控工具
显然,根据您要监控的内容,您的需求会发生变化,但在选择 ML 模型监控工具之前,您绝对应该考虑一些事项:
-
易于集成:将其连接到模型训练和部署工具有多容易 -
灵活性和表现力:您可以记录并查看您想要的内容以及您想要的方式 -
开销:日志记录对模型训练和部署基础架构施加了多少开销 -
监控功能:你能监控数据/特征/概念/模型漂移吗? 您能否比较同时运行的多个模型(A/B 测试)? -
警报:当性能或输入失控时,它是否提供自动警报?
下面,让我们看看实际的模型监控工具吧!
ML 模型监控工具
首先,我们看看不同工具的监控能力。
工具\监控能力 | 模型评估和测试 | 硬件指标 | 模型输入/输出分布 | 模型训练和重新训练 | 生产中的模型性能 | 用于 ML 的 CI/CD 流水线 |
---|---|---|---|---|---|---|
Neptune.ai | 是 | 是 | 否 | 是 | 否 | 是 |
Arize | 有限的 | 否 | 是 | 有限的 | 是 | 否 |
WhyLabs | 有限的 | 否 | 是 | 有限的 | 是 | 否 |
Grafana + Prometheus | 否 | 是 | 有限的 | 否 | 有限的 | 否 |
Evidently | 否 | 否 | 是 | 否 | 是 | 否 |
Qualdo | 否 | 否 | 是 | 否 | 是 | 否 |
Fiddler | 否 | 否 | 是 | 否 | 是 | 否 |
Amazon SageMaker | 是 | 否 | 是 | 是 | 是 | 是 |
Seldon Core | 否 | 否 | 是 | 否 | 是 | 否 |
Censius | 否 | 否 | 是 | 否 | 是 | 否 |
1. Neptune

Neptune 是为运行大量实验的研究和生产团队构建的 MLOps 元数据平台。
您可以记录和显示几乎任何 ML 元数据,从指标和损失、预测图像、硬件指标到交互式可视化。
在监控 ML 模型时,人们主要将其用于:
-
模型训练、评估、测试、 -
硬件指标显示 -
但是您可以(并且一些团队可以)记录生产作业的性能指标,并 查看来自 ML CI/CD 流水线的元数据。
它具有灵活的元数据结构,允许您按照自己的方式组织训练和生产元数据。您可以将其视为您在代码中创建并显示在 UI 中的字典或文件夹结构。
您可以构建仪表板来显示您想要查看的性能和硬件指标,以更好地组织您的模型监控信息。
您可以比较模型和运行之间的指标,以查看模型更新如何改变性能或硬件消耗,以及是否应该中止实时模型训练,因为它不会超过基线。
您可以通过易于使用的 API 和 25+ 种与 ML 生态系统工具的集成来记录您想要监控的元数据。
如果您想知道它是否适合您的工作流程:
2. Arize

2021 年,Arize AI 被福布斯称为最有前途的 AI 工具之一。这是一个 ML 模型监控平台,能够提高项目的可观察性并帮助您解决生产 AI 问题。
如果 ML 团队在没有强大的可观察性和实时分析工具的情况下工作,工程师可能会浪费数天时间试图识别潜在问题。 Arize AI 筹集了 1900 万美元的投资,因为它可以轻松查明问题所在,以便软件工程师立即发现并解决问题。此外,它允许 ML 工程师稳健地更新现有模型。 Arize AI 具有以下特点:
-
简单的集成。 Arize AI 可用于增强任何模型在任何环境中的可观察性。详细的文档和社区支持可让您在几分钟内集成并上线。 -
发布前验证。在部署模型之前检查模型的行为是否符合预期非常重要。发布前验证工具包可以帮助您获得对模型性能的信心,并执行发布前和发布后的验证检查。 -
自动监控。模型监控应该是主动的而不是被动的,以便您可以及早发现性能下降或预测偏差。自动化监控系统可以帮助您做到这一点。它要求零设置,并为易于定制的仪表板提供空间。
3. WhyLabs

WhyLabs 是一个模型监控和可观察性工具,可帮助 ML 团队监控数据流水线和 ML 应用程序。监控已部署模型的性能对于主动解决此问题至关重要。您可以确定重新训练和更新模型的适当时间和频率。它有助于检测数据质量下降、数据漂移和数据偏差。 WhyLabs 很快在开发人员中变得非常流行,因为它可以很容易地用于经验丰富的开发人员与初级员工并肩工作的混合团队中。
该工具使您能够:
-
使用开箱即用或定制的指标自动监控模型性能。 -
检测整体模型性能下降并成功识别导致它的问题。 -
与其他工具轻松集成,同时通过其开源数据记录库(Whylogs)保持高隐私保护标准。 -
使用流行的库和框架,如 MLFlow、Spark、Sagemaker 等,使 WhyLabs 的推选顺利进行。 -
使用内置工具轻松调试数据和模型问题。 -
通过易于使用的零配置设置在几秒钟内设置工具。 -
通过您喜欢的渠道(如:Slack、SMS 等)获得有关当前工作流程的通知。
WhyLabs 用于模型监控的最大优势之一是它消除了手动解决问题的需要,从而节省了金钱和时间。无论规模如何,您都可以使用此工具处理结构和非结构化数据。 WhyLabs 使用 AWS 云。它使用 Amazon ECS 运行容器,并使用 Amazon EMR 进行大规模数据处理。
4. Grafana + Prometheus
Prometheus 是一款流行的开源 ML 模型监控工具,最初由 SoundCloud 开发,用于收集多维数据和查询。
Prometheus 的主要优势是与 Kubernetes 和许多可用的导出器和客户端库的紧密集成,以及快速查询语言。 Prometheus 也与 Docker 兼容,可在 Docker Hub 上使用。
Prometheus 服务器有自己的独立单元,不依赖网络存储或外部服务。因此,部署额外的基础架构或软件不需要大量工作。它的主要任务是存储和监视某些对象。对象可以是任何东西:Linux 服务器、进程之一、数据库服务器或系统的任何其他组件。您要监控的每个元素都称为一个指标。
Prometheus 服务器以您定义的时间间隔读取目标以收集指标并将它们存储在时间序列数据库中。您设置读取指标的目标和时间间隔。您可以使用 PromQL 查询语言查询 Prometheus 时间序列数据库以了解指标的存储位置。

Grafana 允许您可视化监控指标。 Grafana 专注于时间序列分析。它可以以折线图、热力图和直方图的形式将监控工作的结果可视化。
您无需将 PromQL 查询直接写入 Prometheus 服务器,而是使用 Grafana GUI 面板从 Prometheus 服务器请求指标并将它们呈现在 Grafana 仪表板中。
Grafana 的主要特点:
-
警报。您可以通过从信使到 Slack 的各种渠道接收警报。如果您更喜欢其他选项,您可以使用一点代码手动添加自己的警报。 -
仪表板模板。您可以为不同的任务创建自定义仪表板,并在一个界面中管理您需要的一切。 -
自动化。您可以使用脚本在 Grafana 中自动化工作。 -
注释。如果出现问题,您可以对来自不同仪表板和来源的事件进行时间匹配,以分析故障原因。您可以通过向所需点和绘图片段添加评论来手动创建注释。
5. Evidently

Evidently 是一个开源的 ML 模型监控系统。 它有助于在开发、验证或生产监控期间分析机器学习模型。 该工具从 pandas DataFrame 生成交互式报告。
目前,有 6 份报告可用:
-
数据漂移:检测特征分布的变化 -
数值目标漂移:检测数值目标和特征行为的变化 -
分类目标漂移:检测分类目标和特征行为的变化 -
回归模型性能:分析回归模型的性能和模型错误 -
分类模型性能:分析分类模型的性能和错误。适用于二分类和多分类模型 -
概率分类模型性能:分析概率分类模型的性能、模型校准的质量和模型错误。适用于二分类和多分类模型
6. Qualdo

Qualdo 是 Azure、Google 和 AWS 中的机器学习模型性能监控工具。 该工具具有一些不错的基本功能,可让您在整个生命周期中观察模型。
使用 Qualdo,您可以从生产 ML 输入/预测数据、日志和应用程序数据中获得洞察力,以观察和改进您的模型性能。 有模型部署和数据漂移和数据异常的自动监控,您可以看到质量指标和可视化。
它还提供了在 Tensorflow 中监控 ML 流水线性能的工具,并利用了 Tensorflow 的数据验证和模型评估功能。
此外,它还集成了许多人工智能、机器学习和通信工具,以改善您的工作流程并简化协作。
这是一个相当简单的工具,并没有提供许多高级功能。 因此,如果您正在寻找一个简单的 ML 模型监控性能解决方案,那它就是一个好的选择。
7. Fiddler

Fiddler 是一个模型监控工具,具有用户友好、清晰、简单的界面。它使您可以监控模型性能、解释和调试模型预测、通过整个数据和切片来分析模型行为、大规模部署机器学习模型以及管理机器学习模型和数据集。
以下是 Fiddler 的 ML 模型监控功能:
-
性能监控 - 一种探索数据漂移并识别哪些数据在漂移、何时漂移以及如何漂移的可视化方式 -
数据完整性 - 确保没有不正确的数据进入您的模型,并且不会对最终用户体验产生负面影响 -
跟踪异常值 - Fiddler 在异常值检测选项卡中显示单变量和多变量异常值 -
服务指标 - 让您基本了解生产环境中 ML 服务的运行状况 -
警报 — Fiddler 允许您为项目中的一个模型或一组模型设置警报,以警告生产中的问题
总体而言,它是监控具有所有必要功能的机器学习模型的绝佳工具。
8. Amazon SageMaker Model Monitor

Amazon SageMaker 模型监控 是 Amazon SageMaker 的工具之一。它会自动检测生产中部署的模型的不准确预测并发出警报,以便您保持模型的准确性。
以下是 SageMaker 模型监控功能的摘要:
-
可定制的数据收集和监控——您可以选择您想要监控和分析的数据,无需编写任何代码 -
以统计规则的形式内置分析,以检测数据和模型质量的漂移 -
您可以编写自定义规则并为每个规则指定阈值。然后可以使用这些规则来分析模型性能 -
指标的可视化,并在 SageMaker notebook 实例中运行临时分析 -
模型预测——导入数据以计算模型性能 -
调度监控作业 -
该工具与 Amazon SageMaker Clarify 集成,因此您可以识别 ML 模型中的潜在偏差
当与其他机器学习工具一起使用时,SageMaker 模型监视器可让您完全控制您的实验。
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 模型监视工具以及现有的工具,那么最好的方法就是测试出您喜欢的工具!