'No human in the loop': ¿es posible programar sin humanos?

‘No human in the loop’: ¿es posible programar sin humanos?

no human in the loop programar sin humanos

Uno de los temores infundados más frecuentes al hablar de robots aparece cuando las máquinas construyen máquinas. Cuánto daño ha hecho Hollywood. Si un robot aprende a diseñar robots (recordemos que una máquina virtual no deja de ser un robot), ¿se alzarán las máquinas? Improbable.

Hasta la fecha, tanto en diseño de hardware (componentes) como de software (programación) hace falta un humano. Somos necesarios en todo punto de la cadena de valor relacionada con los robots y las máquinas: diseño, implementación en el puesto de trabajo y mantenimiento. Pero ¿veremos la programación sin humanos? ¿Alcanzaremos el no human in the loop?

Las máquinas nos necesitan, de momento

Human-in-the-loop o HITL es una forma de catalogar los procesos realizados por las máquinas. Como ocurre con la inteligencia artificial, en la que separamos “inteligencia artificial débil” de “inteligencia artificial fuerte”, esta última aún no la hemos alcanzado. Tampoco la fase de no human in the loop, momento en el que los programadores del futuro podrían quedarse sin trabajo.

Las máquinas, a fecha actual, no son capaces de diseñarse, repararse o mantenerse por su cuenta. Incluso las más avanzadas, con capacidad de autodiagnóstico, requieren de un técnico. Aquí las leyes humanas no tienen nada que ver. No se ha programado a las máquinas con la incapacidad de asistirse a sí mismos, como ocurre en la película ‘Autómata’ (2014).

no human in the loop programar sin humanos fabrica

Simplemente no hemos alcanzado aún un nivel tecnológico en el que los robots sean capaces de tal logro. Incluso los programados para la durabilidad, eventualmente, se detienen por todo tipo de problemas. El mantenimiento físico es el más fácil de visualizar: sin mantenimiento, una máquina acabará por estropearse. Sin embargo, lo mismo ocurre con el mantenimiento virtual y la programación.

Pensemos en un entorno corriente como nuestro sistema operativo. Pasados los años, incluso con un cuidado excepcional de la máquina, el sistema operativo dará problemas. Lejos de tratarse de “Segmentos aleatorios de códigos que se agrupan juntos para formar protocolos inesperados”, frase que en ‘Yo, robot’ (2004) admitía la posibilidad de máquinas con alma, lo cierto es que se debe a errores. Nada más, y nada menos.

¿Querremos máquinas que se autoprogramen?

Ya hemos conseguido con cierto éxito máquinas que reparan código. Al menos bugs básicos localizados dentro de una librería. El sistema CodePhage, del MIT, examina lo que se hace en otras aplicaciones para aprender. Luego, replica lo que ha observado y es capaz de localizar y corregir pequeños errores. Nada demasiado elevado, pero sin duda un alivio para los programadores.

no human in the loop programar sin humanos robots

Quien haya programado alguna vez sabrá lo frustrante que resulta no entender dónde está el fallo. Si no has programado nunca, esta es tu oportunidad. A veces, una simple coma o una letra mal colocada da al traste cualquier compilación. Una subrutina, más o menos inteligente o autónoma y capaz de echarnos una mano, siempre es bienvenida.

Podemos pensar en estas máquinas que se autorreparan como en el corrector automático del Word o el teclado del móvil. El sistema no sabe muy bien qué está haciendo, si está reparando texto, código o una imagen. No es consciente ni tiene intereses ocultos más allá de dejar las palabras tal y como las tiene almacenadas en su diccionario. Tampoco tiene sentido común. Además, se puede desactivar (botón de la muerte).

Como escritor, doy fe de que estas herramientas automáticas han salvado más de un email. De modo que los programas que reparan programas son útiles, pero tremendamente limitados. El nivel es, a día de hoy, muy bajo. Incluso programas que tienen una autonomía considerable acaban por detenerse en algún momento.

no human in the loop programar sin humanos programador

Pensemos en una máquina virtual excepcionalmente inteligente alojada en un servidor. ¿Y si la luz se va unos segundos, entra un virus o hay un error de copiado de la base de datos de la que depende? Hay miles de problemas para los que hace falta un humano, aunque la idea tras NHITL es facilitarles la vida.

¿Llegarán las máquinas a programarse de forma autónoma?

No lo sabemos. Hay tecnooptimistas que aseguran que en unas décadas la singularidad igualará en capacidades a los humanos. Si una persona puede programar, ¿por qué una máquina no? El científico chino He Jiankui aseguró que había editado el ADN humano en embriones de gemelas. Parece que las personas tenemos el poder de alterar nuestro propio código. ¿Por qué las máquinas no iban a tener la misma capacidad una vez sean más inteligentes?

De momento la respuesta prudente es “no”. Ni sabemos si una superinteligencia es posible ni tenemos la certeza de poder crear un sistema robótico lo suficientemente complejo para que su autonomía esté garantizada. Cualquier error de programación podría detener primero una máquina y luego otra, y provocaría, mediante efecto dominó, la parada del sistema.

Construyendo sobre un futuro hipotético, quién sabe. Para prevenir cualquier problema de autoprogramación robótica, así como de autofabricación robótica, lo ideal sería programar de forma ética y teniendo en cuenta el impacto de la tecnología. Si las máquinas consiguen autoprogramarse, es poco probable que se alcen contra nada, y muy probable que acaben por romperse.

En Nobbot | ¿Ya nadie quiere ser granjero? Los robots se encargan de ello

Imágenes | iStock/Andrey Suslov, iStock/ipopba, iStock/Besjunior, iStock/oatawa