Inteligencia artificial frente a programadores
La IA mejora el código, pero no “borra” del mapa a los programadores humanos
Al mundo moderno lo mueve el código; prácticamente todos los dispositivos digitales funcionan al ejecutarse un código diseñado para desarrollar unas acciones concretas. La revolución de la Inteligencia Artificial ha obligado a muchos sectores a reinventarse para hacer compatible su permanencia con la implementación de la IA. La labor de codificación de los programadores no ha quedado ajena.
Gonzalo Álvarez Marañón, director de Funditec Research, explica que, aunque la Inteligencia Artificial también se construya con código su comportamiento no se programa “instrucción a instrucción”. Explica el ingeniero en telecomunicaciones que “la IA aprende a partir de enormes cantidades de datos”. Esa diferencia clave hace que la programación y la Inteligencia Artificial sean compatibles y puedan caminar de la mano.
El código se escribe mediante lenguajes de programación con unas reglas muy estrictas y, según Álvarez Marañón, “la IA generativa es excepcionalmente buena con el lenguaje. Una ventaja que tienen estos lenguajes formales es que se puede comprobar si el código funciona, lo que le permite a la IA aprender por ensayo y error y mejorar muy deprisa”.
El código perfecto no existe, pero podría definirse como aquel que hace exactamente aquello para lo que está diseñado “y nada más”. Este ideal de código perfecto debe ser fácil de entender por otros y ser capaz de mantenerse en el tiempo. El fallo de forma segura también ha de estar contemplado en este “código perfecto” porque como apunta el experto “si algo sale mal, que no deje la puerta abierta a fallos aún peores”.
El papel crucial del programador
La misión del programador resulta crucial porque la Inteligencia Artificial “no puede desarrollar aplicaciones de software complejas de forma fiable sin supervisión. La IA en manos de quien no sabe programar puede hacer un código con fallos de seguridad que no sabrá detectar”.
Los dos principales retos a los que los programadores se han enfrentado a lo largo de la historia y perdurarán en el tiempo son la detección de errores y la complejidad creciente del código en proyectos grandes, saber cómo funciona y mantenerlo a lo largo del tiempo o actualizarlo para mejorarlo. “La IA acelera el proceso ayudando a depurar el código de manera mucho más eficiente”, expone Álvarez Marañón.
Los errores del código pueden ser la entrada a posibles ciberataques
Gonzalo acerca el símil entre los ingredientes de un pastel y las instrucciones para que un dispositivo digital funcione, reconoce que “el código siempre ha tenido errores”. Los conocidos como bugs, hacen que el programa no funcione o se comporte de manera “indeseable”. Estos bugs son fáciles de detectar, pero, por el contrario, otros errores del código “no alteran en absoluto la funcionalidad del programa” y se traducen en brechas de seguridad que permiten que “un actor malicioso cause daños imprevistos, como por ejemplo acceder a datos confidenciales, cambiar el precio de los productos o borrar información vital”.
Reconocen desde Funditec Research que no todo es culpa del código porque hoy en día “muchos ataques comienzan con una contraseña interceptada o un correo malicioso que alguien abre”. Subraya además que la inmensa mayoría de los atacantes “operan como organizaciones criminales o pertenecen a estados rivales”.
La IA escribe mucho código, pero como apunta el director del centro de investigación Funditec, “también introduce fallos de seguridad y hace falta expertos capaces de detectarlos y corregirlos”. Algunas vulnerabilidades del código son fortuitas y los atacantes las descubren “probando miles de entradas hasta dar con el fallo”. En este caso la Inteligencia Artificial puede ayudar tanto a los “defensores como a los atacantes”. Otra posibilidad de acceder es forzar al programa a realizar tareas para las que no ha sido diseñado.