Descubra cómo las devoluciones de llamada optimizan el entrenamiento Ultralytics . Aprenda a implementar la detención temprana, los puntos de control y el registro personalizado para mejorar sus flujos de trabajo de IA.
En el ámbito de la ingeniería de software y la inteligencia artificial (IA), una devolución de llamada es un fragmento de código ejecutable que se pasa como argumento a otro código, el cual debe ejecutar (devolver la llamada) el argumento en un momento dado. En el contexto específico del marcos de aprendizaje profundo (DL) , las devoluciones de llamada son herramientas esenciales que permiten a los desarrolladores personalizar el comportamiento del entrenamiento del modelo sin modificar el código de entrenamiento principal en sí. Actúan como disparadores automatizados que realizan acciones específicas en diversas etapas del proceso de entrenamiento, como el inicio o el final de una época, un lote de entrenamiento o toda la sesión de entrenamiento.
Entrenamiento de una red neuronal compleja red neuronal puede llevar horas o incluso días. Sin devoluciones de llamada, el proceso de entrenamiento es esencialmente una «caja negra» que se ejecuta hasta completarse, lo que a menudo requiere supervisión manual. Las devoluciones de llamada introducen observabilidad y control, lo que permite que el sistema se autorregule en función de métricas de rendimiento en tiempo real.
Al utilizar bibliotecas de alto nivel como PyTorch o TensorFlow, las devoluciones de llamada proporcionan una forma de inyectar lógica en el algoritmo de optimización. Por ejemplo, si un modelo está aprendiendo bien, una devolución de llamada podría guardar el estado actual; si deja de aprender, una devolución de llamada podría detener el proceso para ahorrar recursos. Esto hace que el flujo de trabajo de aprendizaje automático (ML) más eficiente y robusto .
Las devoluciones de llamada son versátiles y se pueden utilizar para una amplia gama de tareas durante la supervisión de modelos y optimización de modelos.
Ultralytics admite un sólido sistema de devolución de llamada, lo que permite a los usuarios conectarse a eventos durante el entrenamiento de modelos como YOLO26. Esto resulta especialmente útil para los usuarios que gestionan flujos de trabajo en la Ultralytics que necesitan un registro personalizado o una lógica de control.
A continuación se muestra un ejemplo conciso de cómo definir y registrar una devolución de llamada personalizada que imprime un mensaje al final de cada época de entrenamiento utilizando la Python :
from ultralytics import YOLO
# Define a custom callback function
def on_train_epoch_end(trainer):
"""Callback function to execute at the end of each training epoch."""
print(f"Epoch {trainer.epoch + 1} complete. Current Fitness: {trainer.fitness}")
# Load the YOLO26 model (latest generation)
model = YOLO("yolo26n.pt")
# Register the custom callback to the model
model.add_callback("on_train_epoch_end", on_train_epoch_end)
# Train the model with the callback active
model.train(data="coco8.yaml", epochs=3)
Aunque están relacionados, es útil distinguir las devoluciones de llamada de los los hooks. En marcos como PyTorch, los hooks son generalmente funciones de nivel inferior asociadas a tensores específicos tensor o capas de redes neuronales para inspeccionar o modificar gradientes y salidas durante el paso hacia adelante o hacia atrás. Por el contrario, las devoluciones de llamada son normalmente abstracciones de mayor nivel vinculadas al bucles de entrenamiento (inicio, fin, procesamiento por lotes) en lugar del propio gráfico de cálculo matemático.
Para aquellos que deseen profundizar en su comprensión de cómo optimizar los flujos de trabajo de entrenamiento, explorar ajuste de hiperparámetros es un paso lógico. Además, comprender la tareas de visión artificial (CV) , tales como la detección de objetos y la segmentación de instancias proporcionarán contexto sobre por qué es necesario un control preciso del entrenamiento a través de callbacks. Para la gestión de estos procesos a nivel empresarial , la Ultralytics ofrece soluciones integradas que automatizan muchos de estos comportamientos impulsados por devoluciones de llamada.