Impacto IA
Software 2.0: El futuro de la programación viene de la mano de la inteligencia artificial

El desarrollo de software será uno de los campos donde la inteligencia artificial será realmente útil para las personas: más facilidad, más velocidad y menos errores. Esa es la promesa del software 2.0
Recientemente publicábamos las grandes tendencias tecnológicas que vienen esta década. Hoy hablamos de una de ellas, el futuro de la programación. El Software 2.0, que se refiere, entre otras cosas, al uso de inteligencia artificial -redes neuronales que utilizan el aprendizaje automático- para ayudar a los programadores en el desarrollo de software. Es decir, programas escritos por máquinas o por programadores ayudados por máquinas.
El software 2.0 promete acelerar casos de uso de enorme complejidad como la programación para vehículos autónomos. También proporcionará a las organizaciones una forma mucho más fácil, iterativa e intuitiva de personalizar el código existente y automatizar tareas de programación.
Orígenes del concepto Software 2.0
El concepto software 2.0 fue acuñado por Andrej Karpathy, director de Inteligencia Artificial de Tesla. Karpathy argumenta que estamos al comienzo de un cambio profundo en la forma en que se desarrolla el software. Hasta ahora, hemos construido software con lenguajes de programación como C, Java o Python, mediante un proceso que es lento y propenso a errores. Este experto sugirió algo radicalmente diferente: utilizar el aprendizaje automático para programar con el ejemplo. Es decir, podemos recopilar muchos ejemplos de lo que queremos que haga el programa y lo que no debe hacer (ejemplos de comportamiento correcto e incorrecto), etiquetarlos adecuadamente y entrenar un modelo para que funcione correctamente con nuevas entradas. En resumen, podemos utilizar el aprendizaje automático para automatizar el propio desarrollo de software.
El uso de software 2.0 va a generalizarse debido a las tendencias emergentes en el aprendizaje automático que intentan resolver muchas de las dificultades y complejidades que actualmente tiene el desarrollo y aplicación de modelos de IA.
Inteligencia artificial que sabe programar
Así, una de las ramas más sorprendentes del Software 2.0 es lo que se denomina AutoML (Automated machine learning), esto es, es el proceso de automatizar las tareas necesarias para utilizar soluciones de machine learning. Gigantes como Google tienen ya primeras versiones de AutoML. Esta tecnología permitirá diseñar aplicaciones de aprendizaje automático a personas sin experiencia previa, ya que podría, de manera automática:
- realizar el procesado y filtrado de los datos,
- elegir qué algoritmo de aprendizaje automático utilizar,
- optimizar los parámetros del algoritmo,
- detectar errores de configuración y, finalmente,
- realizar el análisis de los resultados obtenidos.
Sorprendente, ¿verdad?
De DevOps a MLOps
Pues eso no es todo. La relativa homogeneidad de las redes neuronales podría crear nuevas bibliotecas de código abierto, cada vez más modulares, interoperables y utilizables en todos los dominios. Eso reduciría aún más las barreras técnicas de entrada para esta clase de aplicaciones.
En todo caso, aún debe madurar todo el proceso de puesta en producción de las aplicaciones de aprendizaje automático. Igual que hasta ahora hablábamos de DevOps como el proceso de diseño, desarrollo y puesta en producción de aplicaciones de software, a partir de ahora se empieza a hablar de MLOps, como la práctica de diseño, desarrollo y puesta en producción de aplicaciones de machine learning.
Se está produciendo un cambio de enfoque en la puesta en producción de sistemas de IA, creándose un conjunto de mejores prácticas y procesos MLOps replicables que ayudarán a implementar servicios de manera mucho más rápida y segura. Si quieres saber más sobre MLOps, uno de los pioneros en este campo, Yaron Haviv, lo explica muy bien en su artículo Looking into 2022: Predictions for a New Year in MLOps.
Ámbitos de aplicación
Existiendo potenciales aplicaciones en prácticamente cualquier industria, destacamos tres:
Industria del automóvil: La recopilación de millones de datos de conducción permite mejoras continuas de la IA de las aplicaciones de conducción automática, sin intervención humana en la reprogramación.
Industria del entretenimiento: Metaflow, desarrollado por Netflix, proporciona una API unificada para diseñar el flujo de trabajo, ejecutarlo, implantarlo en producción y proporcionar un seguimiento automático de versiones. Como resultado, el tiempo medio de implementación en Netflix se redujo 16 veces, de cuatro meses a siete días. Actualmente Metaflow se encuentra disponible como open-source.
Ámbito financiero: Ya existen plataformas de creación de modelos de datos como servicio (MaaS – Model-as-a-Service), para ayudar a las empresas de servicios financieros a evaluar los riesgos cuando crean modelos para aplicaciones de IA, con métricas y herramientas sencillas de supervisión y depuración. Estas plataformas reducen el tiempo de diseño e implementación de modelos de meses a minutos sin comprometer el riesgo y garantizando el cumplimiento normativo.
De manera horizontal, el Software 2.0 está empezando a aplicarse en los siguientes campos: