Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Callback

Explore el papel esencial de los callbacks en el aprendizaje automático: herramientas que supervisan, controlan y automatizan el entrenamiento de modelos para mejorar la precisión, la flexibilidad y la eficiencia.

En machine learning (ML), un callback es una función versátil o bloque de código diseñado para ejecutarse automáticamente en etapas específicas de un proceso informático. En contexto del entrenamiento de redes neuronales (NN), las retrollamadas sirven como "ganchos" que interactúan con el ciclo de vida del entrenamiento para realizar acciones como registrar métricas, guardar resultados intermedios o ajustar parámetros de control. Al desacoplar estas tareas auxiliares del bucle de del bucle de entrenamiento principal, los desarrolladores pueden crear flujos de trabajo modulares, legibles y altamente personalizables sin modificar el algoritmo principal. del algoritmo.

Funcionamiento de las retrollamadas

Un proceso de entrenamiento típico itera sobre un conjunto de datos durante un número determinado de pasadas, denominadas épocas. número de pasadas, denominadas épocas. Durante este ciclo, el sistema realiza pases hacia adelante para hacer predicciones y retropropagación para actualizar los pesos del modelo. Las llamadas de retorno intervienen en "dentro de este bucle, como el inicio del entrenamiento, el final de un lote o la finalización de una época.

El objeto Trainer en frameworks como Ultralytics gestiona estos eventos. Cuando se produce un evento específico, el entrenador ejecuta las funciones de devolución de llamada registradas, pasándoles el estado actual del modelo. el estado actual del modelo. Este mecanismo es fundamental para los MLOps, ya que permite la en tiempo real y la intervención automatizada.

Aplicaciones comunes en IA

Las devoluciones de llamada son indispensables para optimizar el rendimiento y el uso de recursos en aprendizaje profundo (AD).

  • Parada temprana: Una de las aplicaciones es evitar el sobreajuste. Una llamada monitoriza la tasa de error en los datos datos de validación. Si el rendimiento del modelo Si el rendimiento del modelo se estanca o degrada en un número determinado de épocas, la llamada de retorno detiene el entrenamiento inmediatamente, ahorrando tiempo y costes de computación en la nube. tiempo y costes de computación en la nube.
  • Programación dinámica del ritmo de aprendizaje: El ajuste del tamaño del paso del algoritmo de optimización es crucial para convergencia. Las devoluciones de llamada pueden reducir la tasa de aprendizaje cuando se detecta una meseta, lo que permite que el modelo se establezca en una solución más óptima. solución más óptima.
  • Comprobación de modelos: Para garantizar que se conserva la mejor versión de un modelo, una llamada de retorno al punto de control guarda el estado del sistema cada vez que una métrica clave, como la precisión media (mAP), mejora. Esto es vital para largas sesiones de entrenamiento en grandes conjuntos de datos como ImageNet o COCO.
  • Registro de experimentos: Integración con herramientas de visualización como TensorBoard, ClearMLo MLflow se realiza a menudo mediante callbacks. Estas herramientas registran las curvas de pérdida de hardware del sistema y predicciones de muestras para su posterior análisis.

Implementación de una devolución de llamada personalizada

En ultralytics proporciona una API sencilla para adjuntar retrollamadas personalizadas a modelos como YOLO11. Esto permite a los usuarios inyectar lógica específica, como la impresión de actualizaciones de estado o la interacción con API externas, directamente en el proceso de formación.

El siguiente ejemplo muestra cómo añadir una simple llamada de retorno que imprime un mensaje de confirmación al final de cada cada época de entrenamiento:

from ultralytics import YOLO


def on_train_epoch_end(trainer):
    """Callback function to print the current epoch number after it finishes."""
    print(f"Custom Callback: Epoch {trainer.epoch + 1} completed successfully.")


# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Register the custom callback for the 'on_train_epoch_end' event
model.add_callback("on_train_epoch_end", on_train_epoch_end)

# Train the model with the registered callback
model.train(data="coco8.yaml", epochs=2)

Distinción de conceptos afines

Para utilizar las devoluciones de llamada de forma eficaz, es útil distinguirlas de términos similares en ingeniería de software y ciencia de datos. de datos.

  • Ganchos: Aunque "devolución de llamada" y "gancho" a menudo se utilizan indistintamente, un gancho generalmente se refiere al lugar en el código donde se puede adjuntar una función externa (el punto de intercepción). La llamada de retorno es la función función proporcionada por el usuario para ser ejecutada en ese gancho.
  • Ajuste de hiperparámetros: Las devoluciones de llamada facilitan el ajuste (por ejemplo, mediante programadores de velocidad de aprendizaje o la integración con bibliotecas como Ray Tune), pero no son el proceso de ajuste en sí. El ajuste implica la búsqueda de valores de configuración óptimos, mientras que las devoluciones de llamada son el mecanismo para aplicar cambios o supervisar el progreso durante esa búsqueda.
  • Aumento de datos: El aumento modifica los datos de entrada antes de que lleguen a la red. Mientras que algunos conductos avanzados utilizan callbacks para ajustar dinámicamente la intensidad del aumento (por ejemplo, la probabilidad de mosaico en YOLOv5), el aumento estándar suele formar parte del proceso de carga de datos y no de un bucle de entrenamiento. en lugar de un evento del bucle de entrenamiento.

Beneficios reales

El uso de callbacks se traduce directamente en agentes y aplicaciones de IA más robustos y eficientes. y eficientes. Por ejemplo, en vehículos autónomos, el entrenamiento de modelos requiere procesar grandes cantidades de datos de sensores. Las devoluciones de llamada permiten a los ingenieros instantanear automáticamente los modelos que funcionan mejor en casos extremos difíciles sin necesidad de supervisión manual. Del mismo modo, en análisis de imágenes médicas, las pueden activar alertas o un registro exhaustivo si el modelo empieza a memorizar los datos del paciente (sobreajuste) en lugar de aprender características generalizables, lo que garantiza una alta fiabilidad para el despliegue clínico. características generalizables, garantizando una alta fiabilidad para el despliegue clínico.

Al aprovechar las retrollamadas, los desarrolladores que utilizan frameworks como PyTorch o TensorFlow pueden construir sistemas autorregulados que ahorran errores y maximizar el rendimiento de sus soluciones de soluciones de visión por ordenador (CV).

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora