可观察性
了解可观测性如何增强 Ultralytics YOLO 等 AI/ML 系统。在实际应用中获得洞察力、优化性能并确保可靠性。
可观察性是对系统进行设计和仪表化以提供有关其内部状态的高保真数据的实践,从而使团队能够有效地探索、调试和理解其行为。在人工智能(AI)和机器学习(ML)的背景下,它超越了简单的监控,能够深入洞察复杂的模型和数据管道。可观测系统不只是跟踪预定义的性能指标,而是提供丰富的可探索数据,让您能够在模型部署后提出新问题并诊断未知问题。
可观察性与监测
可观测性和模型监测虽然经常一起使用,但却是两个不同的概念。
- 监控是收集和分析数据以观察已知故障模式的过程。您可以针对特定的预定义阈值设置警报,例如错误率超过 5%或推理延迟超过 200 毫秒。它会告诉你是否出了问题。
- 可观察性是系统的一种属性,即使以前从未见过问题,也能让你了解问题出在哪里。它使用详细的日志、度量和跟踪来进行探索性分析和根本原因识别。一个可观察的系统可以让你无需编写新代码来收集更多信息就能进行调试。这种能力对于管理生产中人工智能系统的不可预测性至关重要。
可观察性的三大支柱
可观测性通常建立在三类核心遥测数据的基础上:
- 日志:这些是不可变的、带有时间戳的事件记录。在人工智能系统中,日志可能会记录单个预测请求、数据验证错误或系统配置更改。传统日志可以是简单的文本,而结构化日志(如JSON格式)则更易于大规模查询和分析日志。
- 度量:这些是随时间测量的数据的数字表示。ML 系统中的关键指标包括模型准确率、预测吞吐量、CPU /GPU 利用率和内存使用率。时间序列数据库(如Prometheus)通常用于存储和查询这些数据。
- 跟踪:跟踪可提供单个请求或事务在系统所有组件中移动时的详细视图。在计算机视觉流水线中,跟踪可以跟踪单张图像从摄取、预处理到模型推理和后处理的整个过程,显示每个步骤所花费的时间。这对于找出分布式系统中的瓶颈和错误非常有价值。
为什么可观察性对人工智能系统至关重要?
深度学习模型可能非常复杂且不透明,因此很难理解它们在现实世界中的行为。可观察性对于以下方面至关重要
实际应用
- 自主车辆: 自动驾驶汽车使用感知模型进行实时目标检测。可观察性工具可通过整个系统跟踪摄像机帧,从传感器到决策。如果车辆在黄昏时分未能检测到行人,工程师就可以通过跟踪来了解是否是图像预处理步骤中的延迟造成的。他们还可以分析一天中不同时间段的检测置信度得分指标,找出系统性问题。
- 零售库存管理:智能零售系统使用摄像头监控货架库存。可观察性平台可跟踪每个货架检测到的产品数量、API 调用频率和预测延迟。如果系统报告某一特定产品的库存水平不正确,开发人员可以过滤该产品 SKU 的跟踪,检查记录的图像和预测分数,并确定是否是光线不足或包装异常造成的问题。这样就可以通过更好的数据增强功能进行快速诊断和重新训练。
工具和平台
实现可观察性通常需要专门的工具和平台。像Grafana(可视化)、Loki(日志)和Jaeger(跟踪)这样的开源解决方案很受欢迎。OpenTelemetry提供了一个厂商中立的仪器标准。Datadog、New Relic 和Dynatrace等商业平台提供集成解决方案。MLOps 平台(如MLflow、Weights & Biases 和ClearML)通常包含跟踪实验和监控模型的功能。Ultralytics HUB可帮助管理训练运行和部署的模型,并与TensorBoard等工具集成,实现指标的可视化,这是模型训练阶段可观察性的一个关键方面。