Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Observability

Наблюдаемость — это возможность объяснить внутреннее состояние системы по создаваемым ею логам, метрикам и трассировкам. Разбираем OpenTelemetry и наблюдаемость ML-систем.

Наблюдаемость — это способность понимать, что происходит внутри программной системы, по создаваемой ею телеметрии, главным образом журналам, метрикам и трассировкам, и при этом отвечать на новые вопросы о её поведении без развёртывания нового кода. Термин пришёл из теории управления: в 1960 году Рудольф Калман определил систему как наблюдаемую, если её внутреннее состояние можно определить по выходным данным. В 2010-х годах этот термин переняли команды разработчиков программного обеспечения, когда системы разделились на множество сервисов и сбои перестали соответствовать заранее подготовленным панелям мониторинга. Для систем машинного обучения наблюдаемость охватывает также данные и предсказания: какие входные данные получает модель, что она выдаёт, насколько уверена в результате и как всё это меняется со временем.

Журналы, метрики и трассировки#

Три типа телеметрии, которые часто называют основами наблюдаемости, помогают ответить на разные вопросы:

  • Метрики: Числовые временные ряды, например частота запросов, частота ошибок, перцентили задержки, использование памяти и GPU; их недорого хранить, и они подходят для панелей мониторинга и оповещений. В руководстве Google по обеспечению надёжности сайтов названы четыре ключевых показателя для каждого сервиса: задержка, трафик, ошибки и насыщение ресурсов.
  • Журналы: Записи отдельных событий с временными метками; они наиболее полезны в структурированном формате JSON с такими полями, как идентификатор запроса, версия модели и размер входных данных, — тогда их можно фильтровать и подсчитывать.
  • Трассировки: Путь одного запроса через все затронутые им сервисы, записанный в виде дерева интервалов. Каждый интервал содержит название, время начала, длительность и атрибуты, показывая, на что ушло время запроса.

OpenTelemetry, созданная в 2019 году путём объединения проектов OpenTracing и OpenCensus, предоставляет независимые от поставщиков API, SDK и сетевой протокол (OTLP) для всех трёх типов сигналов, а такие системы хранения и отображения, как Prometheus, Grafana и Jaeger, собирают и показывают их. Этот пример трассирует один запрос классификации изображения с помощью SDK OpenTelemetry для Python, записывая родительский интервал для запроса и дочерний интервал для каждого этапа:

import torch
import torchvision
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import SimpleSpanProcessor
from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter

# Keep finished spans in memory; a production service exports them over OTLP instead
exporter = InMemorySpanExporter()
provider = TracerProvider()
provider.add_span_processor(SimpleSpanProcessor(exporter))
tracer = provider.get_tracer("classifier")
model = torchvision.models.resnet18().eval()
frame = torch.rand(3, 1080, 1920)

# Trace one request as a parent span with a child span for each stage
with tracer.start_as_current_span("predict", attributes={"model.name": "resnet18", "image.height": 1080}):
    with tracer.start_as_current_span("preprocess"):
        batch = torchvision.transforms.functional.resize(frame, [224, 224]).unsqueeze(0)
    with tracer.start_as_current_span("inference"), torch.inference_mode():
        logits = model(batch)

spans = exporter.get_finished_spans()
names = {span.context.span_id: span.name for span in spans}
for span in spans:
    parent = names[span.parent.span_id] if span.parent else "-"
    print(f"{span.name:<11} {(span.end_time - span.start_time) / 1e6:5.1f} ms  parent: {parent}")

На CPU Apple M5 Pro выводятся интервал preprocess длительностью от 1.0 до 1.4 мс и интервал inference длительностью от 7 до 9 мс; у обоих родитель — predict. Также выводится интервал predict длительностью от 8 до 10 мс, поэтому трассировка показывает, что большая часть времени запроса уходит на модель. Когда интервалы экспортируются через OTLP, каждый сервис, обрабатывающий запрос, добавляет свои интервалы с тем же идентификатором трассировки, а такая система, как Jaeger, отображает их на одной временной шкале.

Наблюдаемость и мониторинг#

Мониторинг моделей отслеживает известные виды сбоев с помощью заранее заданных метрик, панелей мониторинга и порогов оповещения, например частоты ошибок выше 1% или задержки инференса выше целевого значения. Наблюдаемость — более широкое понятие: она позволяет расследовать непредвиденные сбои, анализируя подробную телеметрию задним числом по клиенту, версии модели, камере или любому другому атрибуту. В руководстве Google SRE мониторингу предлагается отвечать на два вопроса — что сломалось и почему; расследование переходит от первого ответа ко второму, опираясь на все три типа сигналов:

Объяснимый ИИ — отдельная область, которая объясняет, почему модель сформировала конкретный результат на основе входных признаков или внутренних активаций; сведения об атрибуции можно записывать как ещё один сигнал.

Наблюдаемость систем машинного обучения#

Системы машинного обучения часто дают сбои незаметно: модель компьютерного зрения может отвечать HTTP 200 на каждый запрос, хотя качество предсказаний ухудшается из-за перемещения камеры, изменения освещения или появления нового товара. Поэтому наблюдаемость ML дополняет стандартные сигналы сервиса телеметрией данных и предсказаний. Команды записывают статистику входных данных, например размер и яркость изображения, чтобы обнаруживать дрейф данных, отслеживают распределение предсказаний — например, число объектов каждого класса, пустые результаты и среднюю уверенность — и рассчитывают точность по сегментам после поступления меток эталонной разметки, часто через несколько дней. Во время обучения обратные вызовы передают графики потерь, метрики и данные об использовании системы для каждого запуска в инструменты отслеживания экспериментов, такие как TensorBoard и MLflow. В приложениях с ИИ-агентами и большими языковыми моделями трассировки фиксируют каждый запрос, этап извлечения данных, вызов инструмента и ответ; семантические соглашения OpenTelemetry GenAI стандартизируют такие атрибуты, как gen_ai.usage.input_tokens, чтобы счётчики токенов и стоимость можно было сопоставлять между инструментами.

У каждой выделенной конечной точки на платформе Ultralytics встроен мониторинг развёртывания: карточки с числом запросов, частотой ошибок и задержкой p95; вкладка Logs с уровнями серьёзности и фильтром Errors для записей об ошибках и предупреждениях; а также статистика предсказаний с графиками наиболее частых классов, средней уверенности во времени, числа предсказаний на изображение и времени инференса модели, отдельно от задержки запроса. Падение уверенности или изменение наиболее частых классов будет заметно на графиках, даже если все запросы завершаются успешно.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения