Glosario

Devolución de llamada

Explora el papel esencial de las devoluciones de llamada en el aprendizaje automático: herramientas que supervisan, controlan y automatizan el entrenamiento de modelos para mejorar la precisión, la flexibilidad y la eficacia.

Entrena los modelos YOLO simplemente
con Ultralytics HUB

Saber más

En el aprendizaje automático, en particular durante el complejo proceso de entrenamiento de redes neuronales, una Devolución de llamada es una potente utilidad. Es esencialmente un objeto o función diseñado para realizar acciones específicas en varias etapas de un procedimiento, más comúnmente durante el entrenamiento o la evaluación del modelo. Piensa en las devoluciones de llamada como ganchos automatizados o disparadores que te permiten controlar los estados internos, observar las estadísticas del modelo, tomar decisiones o ejecutar código personalizado sin interrumpir manualmente el proceso de entrenamiento. Proporcionan un mecanismo crucial para personalizar y controlar el comportamiento de los bucles de entrenamiento y otras operaciones secuenciales dentro de marcos populares de aprendizaje profundo (AD) como TensorFlow y PyTorch.

Cómo funcionan las rellamadas

Las retrollamadas funcionan según un sistema basado en eventos. Normalmente se pasan como una lista a una función principal, como un train method within a aprendizaje automático (AM) marco. El marco está diseñado para llamar a estas devoluciones de llamada en puntos específicos, conocidos como "eventos". Entre los eventos más comunes están el inicio o el final de todo el proceso de entrenamiento, el inicio o el final de un épocao incluso antes o después de procesar una sola tamaño del lote de datos. Cuando se produce un evento concreto, el marco ejecuta la(s) función(es) de llamada de retorno correspondiente(s), a menudo pasando información relevante sobre el estado actual -como el número de época actual-, función de pérdida o métricas de rendimiento- como argumentos. Esto permite que la llamada de retorno interactúe dinámicamente con el proceso en curso e influya en él basándose en información en tiempo real.

Aplicaciones clave y casos de uso

Las devoluciones de llamada son increíblemente versátiles y permiten una amplia gama de funcionalidades esenciales para un desarrollo y entrenamiento eficaces de los modelos:

  • Supervisar el rendimiento del modelo: Realiza un seguimiento de métricas como la pérdida y la precisión en los datos de entrenamiento y los datos de validación a lo largo del entrenamiento. Los resultados pueden registrarse en la consola, guardarse en archivos o visualizarse mediante herramientas como TensorBoard.
  • Comprobación del modelo: Guarda automáticamente los pesos del modelo de forma periódica, a menudo guardando sólo la versión de mejor rendimiento en función de una métrica elegida (por ejemplo, la precisión de validación o la pérdida). Esto garantiza que el mejor modelo no se pierda si se interrumpe el entrenamiento o si el rendimiento se degrada posteriormente.
  • Parada anticipada: Controla una métrica de rendimiento (como la pérdida de validación) y detén el proceso de entrenamiento automáticamente si la métrica deja de mejorar durante un número definido de épocas. Esto evita el sobreajuste y ahorra recursos informáticos.
  • Ajustes dinámicos: Modifica los parámetros de entrenamiento sobre la marcha. Un ejemplo habitual es ajustar dinámicamente la tasa de aprendizaje en función del progreso del entrenamiento, a menudo reduciéndola cuando el rendimiento se estanca (programación de la tasa de aprendizaje).
  • Registro e informes: Envía registros, métricas y actualizaciones del progreso del entrenamiento a sistemas de supervisión externos o a plataformas de seguimiento de experimentos como Weights & Biases o Ultralytics HUB, ayudando en las prácticas de MLOps.
  • Gestión de recursos: Implementa lógica personalizada para gestionar los recursos del sistema, como borrar GPU a intervalos específicos. Encuentra más sugerencias en nuestra guía sobre Consejos para el entrenamiento de modelos.

Ejemplos prácticos

  1. Guardar el Mejor Modelo de Detección de Objetos: Al entrenar una Ultralytics YOLO para la detección de objetos, puedes utilizar una llamada de retorno ModelCheckpoint. Esta llamada de retorno controla la Precisión Media Media (mAP ) en el conjunto de datos de validación. Guarda las ponderaciones del modelo en un archivo sólo cuando la puntuación mAP mejora en comparación con la mejor puntuación guardada anteriormente, asegurándote de que conservas el modelo más preciso de la sesión de entrenamiento. Compara el rendimiento de diferentes modelos YOLO en nuestra página de comparación de modelos.
  2. Evitar el sobreajuste en la clasificación de imágenes: Imagina que entrenas un modelo de clasificación de imágenes en un conjunto de datos complejo como ImageNet. Se puede configurar una llamada de retorno EarlyStopping para controlar la pérdida de validación. Si la pérdida de validación no disminuye durante, digamos, 10 épocas consecutivas, la llamada de retorno detiene automáticamente el entrenamiento. Esto evita que el modelo se ajuste en exceso a los datos de entrenamiento y ahorra un tiempo y un coste de entrenamiento significativos. Explora más a fondo las tareas de clasificación de imágenes.

Ventajas de utilizar devoluciones de llamada

Integrar las devoluciones de llamada en el flujo de trabajo del aprendizaje automático ofrece varias ventajas significativas:

  • Automatización: Las devoluciones de llamada automatizan tareas repetitivas como guardar modelos, registrar métricas y ajustar parámetros, reduciendo la necesidad de intervención manual durante los entrenamientos largos.
  • Flexibilidad y personalización: Permiten a los desarrolladores insertar lógica personalizada en el bucle de entrenamiento sin modificar el código central del marco, permitiendo comportamientos de entrenamiento altamente personalizados. Esto es especialmente útil para experimentos complejos o el ajuste de hiperparámetros.
  • Eficacia: Las devoluciones de llamada, como la Parada anticipada y el ajuste dinámico de la tasa de aprendizaje, pueden hacer que el entrenamiento sea más eficiente, ahorrando recursos informáticos y acelerando potencialmente la convergencia.
  • Conocimiento y supervisión: Proporcionan una visión profunda de la dinámica de entrenamiento al permitir el registro detallado y la visualización de las métricas a lo largo del tiempo.
  • Reproducibilidad: Al estandarizar las acciones realizadas durante el entrenamiento (por ejemplo, criterios de guardado, condiciones de parada), las devoluciones de llamada contribuyen a que los experimentos de aprendizaje automático sean más reproducibles.

Los marcos como Keras y PyTorch Lightning ofrecen amplias colecciones de retrollamadas integradas e interfaces sencillas para crear retrollamadas personalizadas. Ultralytics también aprovecha las retrollamadas internamente en sus cadenas de entrenamiento, lo que contribuye a la solidez y facilidad de uso de herramientas como Ultralytics YOLO11 y la plataforma Ultralytics HUB. Consultar la documentaciónUltralytics Ultralytics puede proporcionar ejemplos más específicos relacionados con el entrenamiento de modelos YOLO .

Leer todo