深圳Yolo 视觉
深圳
立即加入
词汇表

可观测性

探索AI和ML中可观测性的重要性。学习如何调试复杂系统、监控Ultralytics YOLO26性能并获得深入的模型洞察。

可观测性是指仅根据复杂系统的外部输出来理解其内部状态的能力。在快速发展的人工智能 (AI) 和机器学习 (ML) 领域,可观测性超越了简单的状态检查,能够深入洞察模型为何以特定方式运行。随着现代深度学习 (DL) 架构(例如最先进的 YOLO26)变得日益复杂,它们常常表现为“黑箱”。可观测性工具为这些系统创建了一个透明的窗口,使工程团队能够调试意外行为、追溯错误根源,并确保生产环境中的可靠性。

可观测性与监控

尽管可观测性和模型监控经常互换使用,但在MLOps生命周期中,它们各自扮演着独特而互补的角色。

  • 模型监控 是反应性的,专注于“已知未知”。它涉及跟踪预定义的指标,如 推理延迟、CPU 使用率或错误率,并与既定阈值进行比较。监控回答了这个问题:“系统是否健康?”
  • 可观测性是主动的,旨在解决“未知未知”问题。它提供所需的粒度数据——日志、追踪和高基数事件——以调查在训练数据准备期间未曾预料到的新问题。正如Google SRE手册中所述,一个可观测系统使您无需发布新代码即可理解新行为。它回答了“系统为何以这种方式运行?”的问题。

可观测性的三大支柱

为了在 计算机视觉 (CV) 管道中实现真正的可观测性,系统通常依赖于三种主要的遥测数据:

  1. 日志: 带有时间戳的、不可变的离散事件记录。在检测管线中,日志可能捕获输入图像分辨率或在运行期间使用的特定 超参数调优 配置。结构化日志,通常采用 JSON 格式,允许进行复杂的查询和分析。
  2. 指标:随时间测量的聚合数值数据,例如平均precision、内存消耗或GPU利用率。像PrometheusGrafana这样的工具是存储这些时间序列数据以可视化趋势的标准工具。
  3. 追踪:追踪记录了请求在流经各种微服务时的生命周期。对于 分布式AI应用,像 OpenTelemetry这样的标准有助于描绘请求的路径,突出显示 推理引擎中的瓶颈或网络 延迟。像Jaeger这样的专用工具则有助于可视化 这些分布式事务。

在 python 中实现可观测性

您可以通过使用回调函数记录特定的内部状态,从而增强训练管道的可观察性。以下示例演示了如何向 YOLO26 训练会话添加自定义回调函数,以实时监控性能指标。

from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")


# Define a custom callback for observability
def on_train_epoch_end(trainer):
    # Access and print specific metrics at the end of each epoch
    map50 = trainer.metrics.get("metrics/mAP50(B)", 0)
    print(f"Observability Log - Epoch {trainer.epoch + 1}: mAP50 is {map50:.4f}")


# Register the callback and start training
model.add_callback("on_train_epoch_end", on_train_epoch_end)
model.train(data="coco8.yaml", epochs=3)

实际应用

可观测性对于在测试数据可能无法完美匹配真实世界条件的动态环境中部署高性能模型至关重要。

  • 自动驾驶车辆:自动驾驶车辆 的开发中,可观测性使工程师能够在脱离事件期间重建系统的精确状态。通过将 目标检测 输出与传感器日志和控制命令相关联,团队可以确定制动错误是由传感器噪声、模型预测故障还是规划模块中的逻辑错误引起的。
  • 医疗保健诊断:医疗AI中,确保一致的性能对患者安全至关重要。可观测性工具可以检测到数据漂移,如果模型在应用于新型MRI扫描仪的图像时性能下降。追踪可以揭示问题是否源于图像数据预处理的变化或输入分布的偏移,从而实现快速修复,同时不损害AI安全

与现代工具集成

现代工作流程通常将可观测性直接集成到训练平台中。Ultralytics Platform 的用户受益于内置的损失曲线、系统性能和数据集分析可视化功能。此外,与 TensorBoardMLflow 等工具的标准集成允许数据科学家在整个模型生命周期中保持严格的实验跟踪和可观测性。

让我们一起共建AI的未来!

开启您的机器学习未来之旅