Observability
Explora la importancia de la observabilidad en IA y ML. Aprende a depurar sistemas complejos, supervisar el rendimiento de Ultralytics YOLO26 y obtener información detallada sobre los modelos.
La observabilidad se refiere a la capacidad de comprender el estado interno de un sistema complejo basándose únicamente en sus salidas externas. En los campos de rápida evolución de la Inteligencia artificial (AI) y el aprendizaje automático (ML), la observabilidad va más allá de las comprobaciones de estado simples para proporcionar información detallada sobre por qué un modelo se comporta de una determinada manera. A medida que las arquitecturas modernas de aprendizaje profundo (DL) —como la [YOLO26](https://ultralytics-translation-3.invalid] de última generación— se vuelven cada vez más sofisticadas, a menudo pueden funcionar como «cajas negras». Las herramientas de observabilidad crean una ventana transparente hacia estos sistemas, lo que permite a los equipos de ingeniería depurar comportamientos inesperados, rastrear las causas raíz de los errores y garantizar la fiabilidad en entornos de producción.
Observabilidad frente a monitorización#
Aunque a menudo se utilizan indistintamente, la observabilidad y la monitorización de modelos cumplen funciones distintas pero complementarias dentro del ciclo de vida de MLOps.
- La monitorización de modelos es reactiva y se centra en las «incógnitas conocidas». Consiste en realizar un seguimiento de métricas predefinidas, como la latencia de inferencia, el uso de la CPU o las tasas de error, comparándolas con umbrales establecidos. La monitorización responde a la pregunta: «¿Está el sistema en buen estado?»
- La observabilidad es proactiva y aborda las «incógnitas desconocidas». Proporciona los datos granulares —registros, trazas y eventos de alta cardinalidad— necesarios para investigar problemas nuevos que no se habían previsto durante la preparación de los datos de entrenamiento. Como se describe en el libro SRE de Google, un sistema observable permite comprender comportamientos nuevos sin publicar código nuevo. Responde a la pregunta: «¿Por qué se comporta así el sistema?»
Los tres pilares de la observabilidad#
Para lograr una observabilidad real en las canalizaciones de visión por computador (CV), los sistemas suelen basarse en tres tipos principales de datos de telemetría:
-
Registros: registros inmutables y con marca de tiempo de eventos discretos. En una canalización de detección, un registro podría capturar la resolución de la imagen de entrada o la configuración específica de ajuste de hiperparámetros utilizada durante una ejecución. El registro estructurado, normalmente en formato JSON, permite realizar consultas y análisis complejos.
-
Métricas: datos numéricos agregados medidos a lo largo del tiempo, como la precisión media, el consumo de memoria o la utilización de la GPU. Herramientas como Prometheus y Grafana son estándares para almacenar estos datos de series temporales y visualizar tendencias.
-
Trazas: el trazado sigue el ciclo de vida de una solicitud mientras atraviesa varios microservicios. En aplicaciones de IA distribuidas, estándares como OpenTelemetry ayudan a mapear la ruta de una solicitud y destacan los cuellos de botella en el motor de inferencia o las demoras de red. Herramientas especializadas como Jaeger ayudan a visualizar estas transacciones distribuidas.
Implementación de la observabilidad en Python#
Puedes mejorar la observabilidad en tus canalizaciones de entrenamiento mediante callbacks que registren estados internos específicos. El siguiente ejemplo muestra cómo añadir un callback personalizado a una sesión de entrenamiento de YOLO26 para monitorizar las métricas de rendimiento en tiempo real.
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)Aplicaciones en el mundo real#
La observabilidad es fundamental para desplegar modelos de alto rendimiento en entornos dinámicos donde los datos de prueba podrían no coincidir perfectamente con las condiciones del mundo real.
- Vehículos autónomos: en el desarrollo de vehículos autónomos, la observabilidad permite a los ingenieros reconstruir el estado exacto del sistema durante un evento de desconexión. Al correlacionar las salidas de detección de objetos con los registros de los sensores y los comandos de control, los equipos pueden determinar si un error de frenado se debió al ruido de los sensores, a un fallo en la predicción del modelo o a un error lógico en el módulo de planificación.
- Diagnóstico sanitario: en la IA en la atención sanitaria, garantizar un rendimiento uniforme es vital para la seguridad de los pacientes. Las herramientas de observabilidad pueden detectar una deriva de datos si el rendimiento de un modelo se degrada al aplicarlo a imágenes procedentes de un nuevo tipo de escáner de MRI. Las trazas pueden revelar si el problema se debe a un cambio en el preprocesamiento de datos de las imágenes o a un desplazamiento en la distribución de entrada, lo que permite una corrección rápida sin poner en riesgo la seguridad de la IA.
Integración con herramientas modernas#
Los flujos de trabajo modernos suelen integrar la observabilidad directamente en la plataforma de entrenamiento. Los usuarios de Ultralytics Platform se benefician de la visualización integrada de las curvas de pérdida, el rendimiento del sistema y el análisis de conjuntos de datos. Además, las integraciones estándar con herramientas como TensorBoard y MLflow permiten a los científicos de datos mantener un seguimiento riguroso de los experimentos y la observabilidad durante todo el ciclo de vida del modelo.









