什么是模型监控?(Valohai)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 型监控是指密切跟踪机器学习模型在生产中的性能的过程。 它使您的 AI 团队能够识别和消除各种问题,包括糟糕的质量预测和糟糕的技术性能。 因此,您的机器学习模型可提供最佳性能。有效地监控模型对于使您的机器学习服务获得成功非常重要。 它使您能够在现实世界中产生重大影响。 但是在监控模型时应该跟踪什么? 在这篇文章中,您将找到所有详细信息。

为什么要监控模型?

监控机器学习模型的原因有很多。它使您能够分析预测的准确性、消除预测错误并调整模型以确保最佳性能。


消除不良泛化

由于缺乏标记数据或其他计算限制,机器学习模型通常在总域内数据的一小部分数据上进行训练。尽管构建模型是为了减少偏差,但这种做法会导致泛化性差。结果,输出数据样本将不准确或效率低下。监控模型可以解决这个问题。它可以帮助您创建平衡且准确的模型,而不会过度拟合或欠拟合数据。

消除参数随时间变化的问题

基于特定时间的变量和参数优化模型。在部署模型时,相同的参数将变得微不足道。例如,5 年前创建的情感模型可能会错误地对某些单词或短语的情感进行分类。因此,预测将是不准确的。模型监控使您能够通过帮助您分析模型在很长一段时间内对真实数据的执行情况来解决问题。


确保预测的稳定性

机器学习模型的输入不是独立的。因此,系统任何部分的变化,包括超参数和采样方法,都可能导致不可预测的变化。模型监控通过跟踪各种稳定性指标来确保高度稳定的预测,包括群体稳定性指数 (PSI) 和特征稳定性指数 (CSI)。

机器学习模型清单:您应该跟踪什么?

您应该密切关注这些事情,以使您的机器学习模型在现实生活中取得成功:

1. 数据分布变化

每个机器学习模型都会随着时间的推移而退化。在更改模型输入时,您可能会遇到数据漂移。当模型接收到它在训练中没有看到的数据时,性能会显着下降。模型监控可帮助您有效地识别与性能相关的问题。

让我们想想大流行病造成的严峻形势。它极大地影响了客户的行为,因为许多人失去了工作。因此,他们对营销活动的反应与前几年截然不同。

这就是为什么尽早获得有关数据分布变化的信号很重要的原因。因此,您可以相应地更新模型。通过监控模型,您可以跟踪关键模型特征和模型预测的分布。如果数据分布的变化与过去显著不同,您可以触发警报以对模型进行必要的更新。

2. 性能改变

模型监控可帮助您跟踪性能变化。因此,您可以确定模型的执行情况。此外,它还可以帮助您了解如何在出现问题时有效地进行调试。

跟踪模型性能改变最直接的方法是不断评估真实数据的性能。您可以将预测值与实际值进行比较,以确定模型是否运行良好。此外,您可以触发自定义通知,以获取有关指标任何重大变化的信息,例如:准确率和精确率。

3. 健康指标/运营指标

您需要密切关注系统性能,包括 CPU、内存、磁盘和网络 I/O 的使用情况。分析这些指标对于确保机器学习服务全面运行非常重要。

Valohai 部署中内置了健康指标。还有各种工具,例如:Grafana,可用于跟踪机器学习系统的运行状况。它们允许您方便地查询和可视化指标。此外,您可以为最重要的指标定义警报规则。

4. 数据完整性

数据完整性是指数据在其整个生命周期内的可靠性。您必须确保数据准确无误。有多种方法可以做到这一点,包括错误检查和验证。

您必须检查数据分布、特征统计和相关性中的错误以确保完整性。有不同的工具可以帮助您。例如,Great Expectations,以促进数据管道的分析完整性。作为传统持续集成 (CI) 工作流程的一部分,它会测试、记录和分析您的数据管道。以这种方式检查数据完整性可以为您节省大量时间。

5. 分段性能

通过分段跟踪性能,您可以深入了解特定切片上的模型质量。它可以帮助您找到关键区域,例如:机器学习模型在哪里出错以及在哪里表现最好。

您可能已经定义了要监控的细分市场,例如:高端客户与企业整体消费者的模型准确性。要按细分跟踪性能,您将需要仅针对已定义细分内的对象自定义质量指标。

此外,您应该寻找低性能的细分市场。让我们考虑一个您正在研究车辆定价模型的场景。如果它不断建议高于特定地区的实际报价,您应该记下它并找到提高准确性的解决方案。

6. 偏见/公平

监控偏差确保所有子组和跟踪合规性都得到公平对待。在医疗保健和金融等关键领域,模型决策可能会产生严重影响,这是一个非常重要的因素。

作为模型的创建者,您必须了解不同情况下的性能差异。例如,不同人口统计群体的模型性能可能会因其在训练数据中的表现而异。您可以使用在线提供的不同工具来解决此问题。

小结

模型监控正在成为机器学习在生产中成功应用的核心组成部分。上面的清单将为实施彻底的模型监控提供有价值的考虑,以确保生产中持续不变的性能。


在 Valohai 中如何监控模型?

Valohai 是一个独立的 MLOps 平台。 它专注于提供一个基础设施来收集、版本化和可视化现在和未来可以想象的任何指标。 最终取决于数据科学家来确定哪些指标是值得的,以及如何为每个模型计算它们。

生产中的模型在操作系统级别与 Valohai 通信,这意味着它收集并存储您的进程内部打印的所有内容,无论是错误堆栈跟踪、模型指标还是健康信息。

第 1 步:存储指标

一旦用户选择了哪些指标值得跟踪以及如何计算它们,就该将它们展示给平台了。

Valohai 始终存储所有原始日志,但为了将指标与其他指标分开,它们需要打印为带有特殊键 vh_metadata 的 JSON 字典。 Valohai 提供了一个 Python 实用程序来简化此操作,但专家也可以打印原始 JSON。

示例代码:

c = calculate_response_confidence()
# Stored as a raw log
print(f”Confidence: {c}”)
# Stored as a metric
print(“{'vh_metadata': {'confidence': c}}”)
# Stored as a metric (alternative)
import valohai
logger = valohai.logger()
logger.log(“confidence”, c)
复制代码


第 2 步:在 UI 中可视化指标

一旦 Valohai 从原始日志中解析出指标,就可以使用 Valohai 部署监控 UI 随着时间的推移对其进行可视化,用户可以在其中分析任何选定时间范围的日志和指标。

三种不同的监控视图:

  • 日志
  • 折线图
  • 直方图

网络异常,图片无法展示
|


在日志视图中,用户可以监视选定时间范围内的原始日志。为了方便起见,打印到stdout和stderr的内容颜色不同,时间戳自然由平台自动处理。此视图主要用于调试目的。

网络异常,图片无法展示
|


直方图将所选时间步长的数据与Count(计数)、Min(最小值)、Max(最大值)、Mean(平均值)和Sum(总和)进行聚合,以更好地了解长期漂移和异常。


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
存储 人工智能 Prometheus
ML 模型监控最佳工具(上)
如果您迟早将模型部署到生产环境,那么您将开始寻找 ML 模型监控工具。 当您的 ML 模型影响业务时,您只需要了解“事物是如何工作的”。 当事物停止工作时,你真正感受到这一点的第一刻。如果没有设置模型监控,您可能不知道哪里出了问题以及从哪里开始寻找问题和解决方案。
pip镜像源大全及配置
在中国使用pip时,可以配置国内镜像源来提高安装速度和稳定性。以下是一些常见的国内镜像源:
18102 0
|
5月前
|
机器学习/深度学习 存储 Prometheus
机器学习模型监控警报系统设计:Prometheus+Evidently 实战教程
本系统采用Prometheus与Evidently双引擎架构,实现从数据采集、智能分析到精准告警的全流程监控。通过时序数据与模型分析深度集成,支持数据漂移检测、性能评估及根因分析,结合Grafana可视化与Alertmanager智能路由,构建高可用、低延迟的监控体系,显著提升异常检测能力与系统稳定性。
216 1
|
5月前
|
机器学习/深度学习 存储 缓存
Chonkie:面向大语言模型的轻量级文本分块处理库
Chonkie是一个专为大语言模型(LLM)应用场景设计的轻量级文本分块处理库,提供高效的文本分割和管理解决方案。该库采用最小依赖设计理念,特别适用于现实世界的自然语言处理管道。本文将详细介绍Chonkie的核心功能、设计理念以及五种主要的文本分块策略。
224 0
Chonkie:面向大语言模型的轻量级文本分块处理库
|
10月前
|
SQL OLAP API
微财基于 Flink 构造实时变量池
本文整理自微财资深数据开发工程师穆建魁老师在 Flink Forward Asia 2024 行业解决方案(一)专场中的分享。主要涵盖三部分内容:1) 基于 Flink 构建实时变量池,解决传统方案中数据库耦合度高、QPS 上限低等问题;2) 选择 Flink 进行流式计算的架构选型(Kappa 架构)及开发效率提升策略,通过数据分层优化开发流程;3) 实时变量池架构与多流关联优化实践,确保高效处理和存储实时变量,并应用于公司多个业务领域。
613 4
微财基于 Flink 构造实时变量池
|
JavaScript
Vue3相关组件项目依赖依赖版本信息
这篇文章展示了一个Vue 3项目中使用的组件和库的依赖版本信息,包括`ant-design-vue`、`swiper`、`vue`、`vue-router`等,以及开发依赖如`vite`、`vue-tsc`、`eslint`等。
211 1
Vue3相关组件项目依赖依赖版本信息
|
机器学习/深度学习 Prometheus 监控
使用Python实现深度学习模型:模型监控与性能优化
【7月更文挑战第8天】 使用Python实现深度学习模型:模型监控与性能优化
314 4
|
存储 NoSQL Java
redis zset详解:排行榜绝佳选择
新发布的App中,搜索功能使用Redis的有序集合(ZSET)来显示四个热门搜索词。由于应用初期,热门搜索显示的是测试词汇,为提升专业形象,计划删除这些测试词。文章介绍了ZSET的特性,如有序性、唯一性和快速查找,并讲解了如何在命令行中操作ZSET。此外,还分享了利用ZSET实现热搜功能的思路,每次搜索时增加对应词的分数以实现排序。最后,提供了Java代码示例展示了如何在Redisson中操作ZSET数据,以及如何实现热搜词汇功能。
925 1
|
存储 SQL 编解码
阿里 移动端(Android)编码规范
为指导 Android 开发者更加高效、高质量地进行 App 开发,呈现给用户体验好、性能优、稳定性佳、安全性高的产品。 本手册以开发者为中心视角分为Java语言规范,Android 资源文件命名与使用,Android 基本组件,UI 与布局,进程、线程与消息通信,文件与数据库,Bitmap、Drawable 与动画,安全,其他等九大部分,根据约束力强弱,规约依次分为强制、推荐、参考三大类:
1957 0
|
存储 缓存 Java
Elasticsearch 8.X 聚合查询下的精度问题及其解决方案
Elasticsearch 8.X 聚合查询下的精度问题及其解决方案