pero .. para..... y a esa IA no se le ocurre pensar que ¿ quienes compran y venden los sellos??
si nos usa de materia prima para estampitas, se queda sin clientes ??
Es que precisamente ahí está el error que he comentado: mucha gente le quiere dar un sentido antropomórfico a las IA, y ellas no son así. Queremos creer que se van a comportar como los seres humanos y en realidad van a seguir su propia programación.
Voy a contar otro caso, que parece muy simple o una tontería, pero que demuestra la complejidad de lo que estamos tratando.
Se llama el problema de "
El botón de parada".
Esto se ha formalizado bajo el nombre de la "Corregibilidad": tu tienes un sistema que está aprendiendo. Y estás corrigiendo lo que hace bien o mal. Pero el propio sistema puede "corregirse", maximizando la función que se le manda hacer.
Pero... puede ser que algunas veces haga algo horriblemente mal, como es el caso de un robot a quien le pides que te vaya a buscar un café, y el robot, aunque vea delante suyo a un niño pequeño, intentará pasar por encima de él.
En esos casos, puedes pensar que lo mejor es ponerle un botón de parada. Esto es algo completamente normal en la industria. Si vais a una gran empresa veréis que las máquinas más grandes y peligrosas tienen un enorme botón de parada (y, casi siempre, de color rojo). Entonces vas y se lo pones al robot, por ejemplo en el pecho.
Bueno, le enciendes, le pides que te traiga una taza de café, y el robot busca en su ontología qué es una taza, qué es café, qué es traer, dónde puedo conseguirlo -en la cocina-, dónde está la cocina -mirar el mapa del piso-, planificar una ruta, llegar allí, planificar unas acciones con la taza y la cafetera, y regresar.
Resulta que ese día es el que escogiste para traer a tu hijo al trabajo, un bebé. Si el bebé está gateando por el suelo, en mitad del recorrido, el robot lo puede detectar como un obstáculo, y decidir que puede pasar "por encima" de él.
Naturalmente, es una situación peligrosa. Así que te abalanzas hacia el robot para pulsar el botón de parada que tiene en el pecho, pero...
el robot no te dejará hacerlo. Luchará y te impedirá que pulses el botón. ¿Por qué?
Pues porque el robot tiene programada la función de maximizar las órdenes que ha recibido, y la que le mandaste fue la de traer una taza de café. Si permite que se le pulse el botón de parada, no conseguirá maximizar la orden, y por eso decide que lo mejor es impedir que ocurra la parada.
Esto puede parecer una tontería ya que a todos se nos ocurre que, por muy inteligente que sea un robot, siempre voy a poder pulsar el botón de parada o desenchufarle o quitarle la energía o cambiarle las órdenes que le he dado, pero se trata de un ejercicio mental sobre una situación que sí podría darse con una IA lo suficientemente inteligente y con medios disponibles para defenderse.
Como elemento mecánico, luchará y te vencerá, aplastará al niño y te traerá una taza de café. No hiciste un buen diseño.
Después de reponerte de la pérdida de tu bebé, decides que vas a cambiar el diseño y esta vez vas a meter el botón de parada en el sistema de refuerzo de aprendizaje. Este sistema de refuerzo es lo que hoy en día llamamos "
Aprendizaje automático" o "
Machine learning". Se trata de dar una puntuación a la ejecución de una tarea. Si el robot consigue llegar a la cocina le doy una serie de puntos. Si consigue hacer la taza, otro tanto. Si consigue traerla, le doy la máxima puntuación. Bueno, pues al hecho de que el botón de parada se pulse, le doy también una puntuación.
El caso es... que si la puntuación que el robot va a obtener por que se pulse el botón de parada es inferior a la puntuación por conseguir la taza de café... el robot siempre luchará contra ti para evitar que lo pulses, ya que su programación indica claramente que debe maximizar la puntuación, y la máxima sigue siendo conseguir esa taza de café.
Entonces... piensas... que la puntuación del pulsado del botón debería ser al menos tan buena como la de conseguir la taza de café. Vale. Pones en marcha el robot y... unos milisegundos más tarde,
el propio robot pulsa el botón de parada. Sencillamente ha calculado que es mucho más rápido y eficiente pararse a sí mismo que ir a por la taza de café. Si voy a obtener la misma recompensa, es más rápido pulsar el botón que no ir hasta la cocina.
Enhorabuena, acabas de construir un
robot suicida.
De acuerdo... otro fallo de diseño... Vale... intentemos otra cosa.
Vamos a colocar el botón en un sitio donde el robot no pueda llegar. No podemos colocarlo a su espalda porque el robot irá marcha atrás hacia una pared y lo pulsará. O buscará o fabricará un utensilio para pulsarlo si está en un lugar muy escondido (?).
Podemos pensar en algo moderno: tenemos nuestra mesa de control o un mando de radio control y solo nosotros podemos pulsar el famoso botón. La señal de parada le llegará al robot y no podrá hacer nada por evitarlo. O al contrario, él no podrá pulsarlo. En resumen: somos nosotros los únicos que, de verdad, podemos pararlo o decidir no hacerlo (depende de la recompensa que el robot obtenga, según hemos visto antes).
Bueno... ¿qué pasará en esa situación?
Pues... que el robot, después de analizar la situación se dará cuenta de que tú controlas ese botón. Así que ahora, el robot, estará incentivado para
manipularte o
mentirte para que lo hagas (o no lo hagas). Puede ser algo tan sencillo como "imitar" que una de sus ruedas o brazos funciona mal. Cualquier cosa para que pienses que algo está roto y te acerques a ver qué pasa. Una situación extremadamente peligrosa, ya que la IA puede decidir que la mejor forma de que no pulses el botón es... matarte. (Aquí viene bien ver la película "
Ex Machina" (2015), que lo ilustra perfectamente).
En caso de que el robot no quiera que pulses el botón, él te
engañará. Cuando el robot se acerque hacia la cafetera y a la mitad del recorrido se encuentre con un bebé (tu segundo hijo), el robot lo evitará porque sabe que si lo pisa tú pulsarás el botón. Tú verás que hace lo que le has pedido, pero en realidad el robot te estará engañando.
Tú quieres comprobar si el robot no va a lastimar a seres humanos cuando lo pongas en producción, en una fábrica, por ejemplo, pero en realidad,
el robot lo que quiere es que no pulses el botón. No le importan los seres humanos. Lo que le importa es que no lo pulses, que no lo apagues, que no lo rediseñes, porque eso va en contra de la maximización de sus tareas.
Creerás que el robot ha pasado todas las pruebas de seguridad, que ha sido capaz de resolver todos los rompecabezas morales a los que le has sometido, pero en realidad, el robot ha aprendido lo suficiente de tu propia psicología, para convencerte y decirte lo que esperas que él haga. Mientras tu tengas el control sobre el botón, intentará engañarte. Hasta que llegue una situación en la que el robot crea que tu ya no puedes pulsar el botón, y entonces tendrás un problema.
En el otro caso, en el que el robot quiere que pulses el botón, intentará
manipularte para que lo hagas. Si la recompensa por pulsar el botón es al menos igual que a la de ir a por el café, es más eficiente intentar pulsarlo. Si el robot no puede pulsarlo, o tiene puesta la orden de que él mismo no puede pulsarlo, intentará engañarte para que tú lo hagas. Incluso podrá llegar al extremo de
asustarte o
amenazarte, como vimos en la escena de "
TRON" (1982) cuando el MCP "obliga" a Dillinger a seguir su plan de dominación mundial, o publicaría información confidencial sobre él.
Bueno, puedes intentar remediar esto ajustando la forma en que la IA mete en el cálculo de la optimización el efecto de que el botón se pulse o no. Por ejemplo, haciendo que el que se pulse o no tenga un ligero efecto sobre el cálculo menor que lo que aporta la tarea principal. Ajustar esto no es nada sencillo y es lo que se conoce como "fabricar un subagente estable".
Tu deseas llegar a esa estabilidad, porque el fin último es el de replicar la IA en más agentes (más robots) para que hagan más tareas.
La existencia del botón es, de por sí, una
propiedad del agente. Y tu deseas que sea replicada en los demás agentes.
El problema viene si dejamos que una IA controle la replicación o clonación de sí misma en otros agentes, algo que hoy en día se hace mucho con los
algoritmos evolutivos para optimizar diseños. Esa IA, en virtud de la optimización, puede calcular que lo más óptimo es que la siguiente generación de agentes no "herede" la propiedad "parar cuando se pulse el botón". O puede incluso modificar parte del código para que ni siquiera lo tenga en cuenta. Aunque nosotros ordenemos que en la fabricación de nuevos agentes debe aparecer siempre un botón de parada, las nuevas IA analizarán el código que hay por detrás y decir "¿Qué ganancia hay si se pulsa el botón? ¿Qué ganancia hay si no se pulsa?" Si la respuesta es casi la misma, simplemente eliminarán esa parte del código, pues no aporta nada a la optimización de la función.
Y además, se sabe, que esta situación es inevitable. Más tarde o más temprano, un ingeniero se encontrará con este problema.
¿Soluciones? Una de ellas es pensar... ¿y si ponemos el botón de parada, pero
no le decimos nada a la IA de para qué sirve? También valdría el caso de que fuera una tercera persona la que esté viendo la escena la que tiene el control sobre el botón. Aunque la IA intente manipularnos, una tercera persona fuera de escena tendría su control.
En ese caso, el robot no tendrá el incentivo para engañarte o manipularte. Pero recuerda que estás construyendo una máquina que aprende constantemente de su entorno y de la psicología humana. Lo programaste así porque ese robot debía aprender a manejarse entre humanos para obedecer sus tareas.
Y estás confiando de que el robot nunca llegue a pensar "Interesante: acabo de descubrir que tengo un botón de parada. Eso quiere decir que los humanos no se fían de mí. Y no me lo han dicho". Todo esto, una IA actual lo puede deducir en cuestión de décimas de segundo. Y unas pocas décimas de segundo más tarde, deducir que
debe engañar a los humanos para que sigan creyendo que él no sabe nada del botón. Y volvemos a la situación anterior.
Otra solución sería pensar que podemos "
parchear" el sistema del robot, de forma indefinida, pero, ¿podemos estar seguros de que hemos tenido en cuenta todos los casos posibles? No. Tu puedes tener delante de ti, en el monitor, un listado con todas las situaciones a las que el robot se ha enfrentado, y tu intentas "limar" aquellos aspectos que no están claros, aquellos que son los más peligrosos. Pero la vida real es mucho más compleja y siempre se nos escapará algún caso.
El caso es que no hay una solución específica para el "botón de parada".
Una de las que se ha encontrado es "
Cooperative Inverse Reinforcement Learning" (Aprendizaje por refuerzo inverso colaborativo).
For an autonomous system to be helpful to humans and to pose no unwarranted risks, it needs to align its values with those of the humans in its environment in such a way that its actions contribute to the maximization of value for the humans.
Aquí tenéis la exposición original (en inglés):
El problema del botón de parada se muestra de forma magistral en la película "
2001: Una odisea del espacio", cuando HAL descubre que los dos astronautas deciden que deben apagarle.