Glosario

Integración continua (IC)

Mejore los flujos de trabajo de IA/ML con la integración continua. Automatice las pruebas, mejore la calidad del código y agilice el desarrollo de modelos sin esfuerzo.

La integración continua (IC) es una práctica de desarrollo de software en la que los desarrolladores fusionan con frecuencia sus cambios de código en un repositorio central, tras lo cual se ejecutan compilaciones y pruebas automatizadas. El objetivo principal de la integración continua es detectar problemas de integración en una fase temprana, mejorar la calidad del código y agilizar el flujo de trabajo de desarrollo. En el contexto de la Inteligencia Artificial (IA) y el Aprendizaje Automático (AM), la IC va más allá de las comprobaciones tradicionales del código e incluye la validación de datos, modelos y rendimiento general de la canalización, lo que constituye un componente fundamental de las Operaciones de Aprendizaje Automático (MLOps).

Principios clave de la integración continua

El proceso de CI se basa en la automatización y la iteración frecuente. Los desarrolladores introducen cambios pequeños y frecuentes en un repositorio compartido mediante un sistema de control de versiones como Git. Cada empuje desencadena un flujo de trabajo automatizado, o pipeline, que ejecuta varios pasos clave:

  • Compilación automática: El sistema compila automáticamente el código para garantizar que se integra correctamente. En los proyectos de ML, esto puede implicar la configuración del entorno mediante herramientas de contenedorización como Docker.
  • Pruebas automatizadas: Se ejecuta un conjunto de pruebas para validar los nuevos cambios. Esto incluye pruebas unitarias para la lógica del código, pruebas de integración para las interacciones de los componentes y pruebas especializadas para ML, como la validación de datos y la evaluación de modelos.
  • Rápido bucle de retroalimentación: Si falla algún paso del proceso, se notifica inmediatamente al equipo de desarrollo. Esto les permite abordar los problemas rápidamente antes de que se vuelvan más complejos y se integren en la base de código principal.

CI para el aprendizaje automático (CI4ML)

La aplicación de la IC a los proyectos de aprendizaje automático plantea retos únicos. Más allá del código, los sistemas de ML incluyen datos y modelos entrenados, que también deben ser versionados y validados. Un proceso de CI eficaz para un proyecto de ML, como el que implica un modelo YOLO de Ultralytics, incluye pasos adicionales:

  • Validación de datos: Comprobación automática de la exactitud de los nuevos datos, su conformidad con el esquema y los posibles sesgos del conjunto de datos. Para ello pueden utilizarse herramientas como Great Expectations.
  • Pruebas de modelos: Ejecución de pruebas para comprobar la degradación del rendimiento. Se trata de comparar las métricas de rendimiento del nuevo modelo con las de una versión de referencia en un conjunto de datos de validación normalizado.
  • Validación del proceso de formación: Garantizar que el propio proceso de formación del modelo sea reproducible y eficiente. Para ello se pueden utilizar plataformas como Ultralytics HUB, que agiliza la gestión de los conjuntos de datos y los flujos de trabajo de formación.

Aplicaciones reales

  1. Desarrollo de la conducción autónoma: Un equipo que trabaja en un modelo de detección de objetos para vehículos autónomos utiliza una canalización CI. Cuando un desarrollador envía código para mejorar la capacidad del modelo de detectar peatones por la noche, el proceso se activa automáticamente. Ejecuta pruebas unitarias, vuelve a entrenar una versión ligera del modelo YOLO11 en un conjunto de datos de prueba y evalúa su mAP. Si la precisión no disminuye y se superan todas las pruebas, se aprueba la fusión del cambio. Para automatizar estos flujos de trabajo se suelen utilizar herramientas de CI como GitHub Actions o Jenkins.
  2. Análisis de imágenes médicas: En un sistema diseñado para la detección de tumores en imágenes médicas, un científico de datos podría añadir nuevos datos aumentados para mejorar la robustez. El proceso CI valida el nuevo formato y distribución de los datos. A continuación, activa una ejecución de validación utilizando un modelo preentrenado para garantizar que las predicciones del modelo en un "conjunto de datos de oro" siguen siendo coherentes, evitando comportamientos inesperados en la producción. Este proceso ayuda a mantener altos niveles de fiabilidad, cruciales para la IA en la atención sanitaria.

Integración continua frente a entrega/implantación continua (CD)

Aunque están estrechamente relacionadas, la IC es distinta de la Entrega Continua y el Despliegue Continuo (DC).

  • Integración continua (IC): Se centra en la integración frecuente y las pruebas automatizadas de los cambios de código. El resultado es una compilación validada lista para la siguiente etapa. Ultralytics utiliza CI para probar todas las pull requests antes de fusionarlas.
  • Entrega continua (CD): Extiende CI preparando automáticamente cada cambio validado para su liberación a un entorno de staging o producción. Sin embargo, el despliegue final del modelo a producción requiere aprobación manual. Este enfoque se detalla en guías de fuentes como Atlassian.
  • Despliegue continuo (CD): Va un paso más allá desplegando automáticamente cada cambio validado directamente en producción sin intervención humana. Esto representa el nivel más alto de automatización en el ciclo de vida de lanzamiento de software.

Juntas, las prácticas de CI y CD son fundamentales para una sólida estrategia de MLOps, cuyo objetivo es unificar el desarrollo y el funcionamiento de los sistemas de aprendizaje automático, desde la experimentación inicial hasta el despliegue y la supervisión continua de modelos.

Únase a la comunidad Ultralytics

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

Únete ahora
Enlace copiado en el portapapeles