Observability
Explora la importancia de la observabilidad en IA y ML. Aprende a depurar sistemas complejos, monitorear el rendimiento de Ultralytics YOLO26 y obtener información profunda 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 la Artificial Intelligence (AI) y el Machine Learning (ML), que evolucionan con rapidez, la observabilidad va más allá de las simples comprobaciones de estado para ofrecer información detallada sobre por qué un modelo se comporta de una determinada manera. A medida que las arquitecturas modernas de Deep Learning (DL) —como el vanguardista YOLO26— 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 de forma indistinta, la observabilidad y el model monitoring cumplen propósitos distintos pero complementarios dentro del ciclo de vida de MLOps.
- El Model Monitoring es reactivo y se centra en los "desconocidos conocidos". Consiste en realizar un seguimiento de métricas predefinidas como la inference latency, el uso de CPU o las tasas de error en comparación con umbrales establecidos. El monitoreo responde a la pregunta: "¿Está el sistema saludable?"
- La observabilidad es proactiva y aborda los "desconocidos desconocidos". Proporciona los datos granulares —registros, rastreos y eventos de alta cardinalidad— necesarios para investigar nuevos problemas que no se anticiparon durante la preparación de los training data. Como se describe en el Google SRE Book, un sistema observable te permite comprender nuevos comportamientos sin necesidad de enviar nuevo código. Responde a la pregunta: "¿Por qué actúa el sistema de esta manera?"
Los tres pilares de la observabilidad#
Para lograr una verdadera observabilidad en los flujos de trabajo de Computer Vision (CV), los sistemas suelen depender de tres tipos principales de datos de telemetría:
-
Logs: Registros inmutables y con marca de tiempo de eventos discretos. En un flujo de detección, un registro podría capturar la resolución de la imagen de entrada o la configuración específica de hyperparameter tuning utilizada durante una ejecución. El registro estructurado, a menudo en formato JSON, permite realizar consultas y análisis complejos.
-
Métricas: Datos numéricos agregados medidos a lo largo del tiempo, como la precision promedio, el consumo de memoria o la utilización de GPU. Herramientas como Prometheus y Grafana son estándar para almacenar estos datos de series temporales con el fin de visualizar tendencias.
-
Rastreos: El rastreo sigue el ciclo de vida de una solicitud a medida que fluye a través de varios microservicios. Para aplicaciones de IA distribuidas, estándares como OpenTelemetry ayudan a mapear la ruta de una solicitud, destacando los cuellos de botella en el inference engine o los retrasos en la red. Herramientas especializadas como Jaeger ayudan a visualizar estas transacciones distribuidas.
Implementación de la observabilidad en Python#
Puedes mejorar la observabilidad en tus flujos de entrenamiento mediante el uso de devoluciones de llamada (callbacks) para registrar estados internos específicos. El siguiente ejemplo demuestra cómo añadir una devolución de llamada personalizada a una sesión de entrenamiento de YOLO26 para supervisar 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 implementar modelos de alto rendimiento en entornos dinámicos donde los test data pueden no coincidir perfectamente con las condiciones del mundo real.
- Vehículos Autónomos: En el desarrollo de autonomous vehicles, la observabilidad permite a los ingenieros reconstruir el estado exacto del sistema durante un evento de desconexión. Al correlacionar las salidas de object detection con los registros de los sensores y los comandos de control, los equipos pueden determinar si un error de frenado fue causado por el ruido de los sensores, un fallo en la predicción del modelo o un error lógico en el módulo de planificación.
- Diagnóstico en Salud: En la AI in healthcare, garantizar un rendimiento constante es vital para la seguridad del paciente. Las herramientas de observabilidad pueden detectar data drift si el rendimiento de un modelo se degrada al aplicarlo a imágenes de un nuevo tipo de escáner de resonancia magnética. Los rastreos pueden revelar si el problema proviene de un cambio en el data preprocessing de la imagen o de un cambio en la distribución de entrada, lo que permite una rápida corrección sin comprometer la AI safety.
Integración con herramientas modernas#
Los flujos de trabajo modernos a menudo integran la observabilidad directamente en la plataforma de entrenamiento. Los usuarios de la 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 una observabilidad en todo el ciclo de vida del modelo.






