El desarrollo, integración, mantenimiento y uso de soluciones basadas en Inteligencia Artificial (IA) puede resultar muy desalentador cuando no se tiene un alto grado de especialización y conocimiento. Desgraciadamente, en el momento de escribir este artículo, la IA y en especial las técnicas de Machine Learning (ML) o Deep Learning (DL) presentan una pronunciada curva de aprendizaje que requiere cientos de horas de formación y experimentación antes de adquirir un nivel adecuado de conocimiento en la materia. Para paliar de algún modo estas barreras de entrada, Automated Machine Learning o AutoML surge como un nuevo paradigma que representa una solución holística para automatizar en la medida de lo posible todos los pasos que conforman un pipeline de IA/ML/DL (Machine Learning Operations o MLOps). Sin embargo, cabe destacar que AutoML no cubre algunas partes del flujo de trabajo, y tareas como la recogida de datos y el preprocesamiento deben realizarse "manualmente". En cambio, las fases centrales, y en ocasiones más costosas en tiempo, de los pipelines puedes ser automatizadas por nuevas plataformas. De este modo, la mayoría de las tareas repetitivas/iterativas (es decir, la ingeniería y selección de características, la selección de modelos, la configuración de hiper parámetros, etc.) se llevarán a cabo de forma transparente, dando lugar a la configuración que mejor se adapte a las particularidades de los conjuntos de datos objeto de análisis y entrenamiento. Todo ello sin requerir la intervención directa de los usuarios. No obstante, huelga decir que las soluciones de AutoML también permiten a los usuarios expertos en IA realizar una manipulación a medida de todos los entresijos. El objetivo final buscará también reducir de forma significativa el tiempo necesario para completar el proceso de generación y puesta en producción de un modelo de ML, tal y como se ilustra en la siguiente figura.
De acuerdo con algunas estimaciones, el proceso necesario para desplegar y poner en producción un modelo de ML puede llevar entre varias semanas hasta varias semanas o meses. Las fases que requieren un mayor tiempo son (en este orden), la recolección, ingesta y preprocesado de los datos; la construcción, selección y optimización del modelo. El uso de técnicas de AutoML puede ayudar de forma sensible a la mejora de las prestaciones de los sistemas resultantes, aportando también una fuerte reducción del tiempo y recursos necesarios, pudiendo llegar hasta un 20 o 30% en comparación con sistemas no automatizados .
Dado que el potencial de negocio de este paradigma es enorme, podemos ver como muchas de las mayores empresas tecnológicas están invirtiendo ingentes cantidades de dinero para destacar en este campo. De esta forma, podemos encontrar funcionalidades AutoML en las principales ofertas de servicios de las plataformas IA existentes. Además, al margen de estas soluciones comerciales, existen también frameworks de código abierto que ofrecen prestaciones similares: AutoKeras y TPOT son algunas de las soluciones más extendidas y aprovechadas por creciente comunidad de científicos de datos. Explotando las posibilidades del orquestador de contenedores más extendido, Kubernetes, se han desarrollado también soluciones a medida que se ocupan directamente del despliegue de los flujos de trabajo de MLOps. Por un lado, Kubeflow , diseñado por una parte de los autores originales de Kubernetes, pretende ofrecer una orquestación de flujos de trabajo de ML de extremo a extremo (es decir, procesamiento de datos + entrenamiento + servicio). En estado beta, Kubeflow incorpora Katib , un componente que permite realizar la optimización de hiper-parámetros y la búsqueda de la arquitectura de red neuronal óptima (neural architecture Search o NAS). Este entorno es agnóstico con respecto a las librerías de ML más habituales, soportando TensorFlow, MXNet, PyTorch o XGBoost.
Es importante resaltar que dentro del campo del AutoML, múltiples algoritmos o modos pueden utilizarse para obtener resultados acordes a las expectativas y requerimientos del caso de uso que se está afrontando. En este sentido, MLJAR AutoML es una implementación que proporciona diversos modos de funcionamiento:
- Búsqueda de modelos altamente explicables y comprensibles, incorporando técnicas de visualización de datos o SHAP (SHapley Additive exPlanations).
- Construcción de modelos robustos para ser puestos en producción.
- Obtención de la máxima precisión posible, cuando no hay limitaciones en tiempo o recursos computacionales.
Como se puede extraer del presente artículo, el potencial del Automated Machine Learning o AutoML para reducir la complejidad en el desarrollo de sistemas de Inteligencia Artificial es inmenso. Las implementaciones existentes permiten empezar a conseguir importantes mejoras en cuanto al tiempo y recursos necesarios para completar la puesta en producción de un modelo de ML, pero a futuro las expectativas son incluso superiores. Diferentes autores comienzan a proponer no solo la automatización del proceso de construcción y optimización del modelo, sino el flujo completo de MLOps, dando lugar a una nueva y poderosa aproximación llamada Automated Artificial Intelligence o AutoAI.