Seguridad

De Errores Humanos y Errores Humanizados en los Modelos de Deep Reasoning

El pasar de tener sistemas informáticos basados en programación determinista a usar modelos de IA con alucinaciones y errores es un salto importante de adaptación mental. Es verdad que nuestros sistemas informáticos han estado lejos de ser perfectos y nos han dejado errores lógicos, interbloqueos, cuelgues y bugs de seguridad, y cada vez que hemos ido complejizando la estructura de capas de abstracción, garantizar que un programa hace solo lo que debe de hacer y nada más, y además lo hace bien, ha sido un esperanza no comprobada matemáticamente.

Figura 1: De Errores Humanos y Errores Humanizados
en los Modelos de Deep Reasoning

De hecho, confiamos en los tests unitarios, los tests de integración, las pruebas de QA, los escaneos con herramientas de fuzzing, y los análisis de código estático y dinámico – o incluso con Rayos X para sacar mapas de calor -, pero todo se basa en detectar algún comportamiento anómalo, una respuesta inesperada, o un funcionamiento anormal del sistema, para luego investigar la raíz de ese problema. Pero eso, queda muy lejos de una demostración empírica de que el código hace lo que tiene que hacer bien, y nada más que lo que tiene que hacer. 
Conocido esto, vemos que cuando la garantía de calidad y robustez del sistema informático es lo más importante, es mejor irse a tecnologías, hardware y software, altamente probados. De esto tenemos un ejemplo en el artículo de nuestra compañera Selena Sánchez donde explicaba por qué la NASA utiliza en el Rover Perseverance la arquitectura del IBM PowerPC G3. La respuesta es muy sencilla: ha sido altamente probado. De estos ejemplos conocemos más en la historia de la tecnología, y algunos casos, como las arquitecturas Mainframe con sus archi-famosos programas en COBOL han sido iconos de industrias enteras.
Sabiendo que no podemos garantizar que un código se va a comportar en todas las situaciones como esperamos, porque demostrarlo matemáticamente es una tarea hercúlea, basamos en la confianza en el robustez de su comportamiento en el determinismo de las respuestas generadas por el código, y probadas con los tests de calidad del software, y garantizar que estos son completos es mucho decir. Recuerdo que en la universidad, en una de las prácticas de programación de sistemas operativos teníamos que hacer un programa que recibiera datos de entrada por el teclado, y había que controlar todos los errores. 
Pero una de las pruebas que nos hacía el profesor era «aporrear» el teclado para hacer saltar comandos de interrupción del sistema. Y contaba si habías controlado las interrupciones. Nosotros no lo entendíamos, pero la respuesta era… «si haces el software para un controlador de maquinas en un areopuerto, o para un avión, o para un tanque, lo último que quieres es que si por error humano alguien toca lo que no debe, el sistema se caiga.» Y hay que reconocer que, como prueba de robustez es fantástica, así que nos enseñó a tomarnos más en serio la gestión de errores cuando hicimos el driver de teclado para un sistema operativo UNIX.
Dicho esto, ahora entramos en la época de la Inteligencia Artificial Generativa, donde la respuesta que te va a dar un sistema no es «determinista«. Es decir, puedes pedir el mismo Prompt al mismo modelo, y el resultado puede ser diferente. De hecho, en un porcentaje pequeño puede ser una alucinación, de las que hemos hablado largo y tendido. Podéis leer el artículo donde Bard se inventaba una historia personal mía donde me llevaba a la cárcel, o en las versiones anteriores de ChatGPT inventaba cosas de personas públicas.
Usamos el término de «Hallucination» porque es tan fácilmente comprobable que ese dato es inventado, que no podemos considerarlo un error puntual, sino un fallo estructural en el sistema, que llamamos alucianción. Yo escribí un artículo que se llamaba «Las mentiras infinitas que ChatGPT se inventa sobre «Chema Alonso»» porque era hasta cómico ver que algo, tan fácilmente comprobable, salía como respuesta de un Prompt.
Sin embargo, con la llegado de los modelos de Deep Reasoning conectados a fuentes de Internet en tiempo real, esto ha cambiado mucho. La búsqueda de datos, la comprobación de los mismos, el análisis del Prompt, el uso de la Memory, la segmentación de tareas en los diferentes Expertos, y la verificación y análisis de los resultados intermedios y la salida final, han hecho que las «Hallucinations» se hayan reducido en varios órdenes de magnitud.
No sé si estaremos en la Paridad Humana o no con estos modelos de Deep Reasoning a la hora de hacer una tarea tan sencilla como decirle a una persona que busque la respuesta a un problema, o información de un tema, utilizando para ello todo el contenido que hay en Internet, y la respuesta del modelo tenga más o menos porcentajes de errores que los que cometen las personas. Pero debemos estar cerca, si no ha sido superada ya esa destreza cognitiva.

Figura 3: Prompt para Perplexity Pro con Deep Research
Para la última charla que impartí sobre IA en Ciudad Real, estuve el fin de semana trabajando en ejemplos que me sirvieran para explicar cómo de bien estos modelos de Deep Reasoning buscan en Internet y procesan la información para mostrar unos resultados ajustados a lo que se les pide. El ejemplo que tenéis aquí fue hecho con Perplexity Pro Deep Research, y es a la petición de un plan de riego de un campo de vides analizando las lluvias de los dos últimos años en la región. 

Figura 4: Informe de Resultados parte 1

Figura 5: Informe de Resultados parte 2

Figura 6: Informe de Resultados parte 3

El resultado se obtiene en apenas dos minutos de Thought Time. No soy un experto en riego de campos de vides para validar la respuesta o encontrar errores o mejoras – que seguro que puede que existan -, pero sí que fui mirando los enlaces de dónde había sacado la información, y no fui capaz de localizar una alucinación razonando con mi pobre y lento cerebro humano. Para poder comprobarlo mejor, está el Research Plan, donde se puede ver en detalle todo el proceso de obtención, procesado y verificación de la información que el modelo de Deep Reasoning ha seguido para llegar al Informe de Resultados final. Y me cuesta encontrar alguna alucinación en este ejemplo concreto.
Como después de hacer varias pruebas no estaba seguro aún de que no hubiera alucinaciones, decidí probar con algo que me resulta fácil. Repetir las pruebas que había hecho en el pasado con ChatGPT preguntándole por los libros que yo he escrito. Y el resultado es curioso.

Figura 7: ¿Qué libros ha escrito Chema Alonso? parte 1

En la primera parte es totalmente correcto, porque analiza la información y salen los trabajos en 0xWord, con lo que todo perfecto, pero en el Informe de Resultados aparecen unos libros que son de otras temáticas que no tienen que ver conmigo.

Figura 8: ¿Qué libros ha escrito Chema Alonso? parte 2

Por supuesto, no son míos, pero es que no soy el único «Chema Alonso» del planeta, así que, el Prompt de entrada era inexacto, ya que no especifica sobre «qué Chema Alonso» se quieren conocer los libros. El modelo ha asumido que son sobre mí, pero cuando ha ido a Internet ha encontrado los libros de otro Chema Alonso, y los ha confundido con que son míos.  En este caso, «El lenguaje Subterraneo de las Miradas», escrito por Chema Alonso.
Sin embargo, en la Figura 7, recuadrado en color verde sí hay una alucinación, ya que ha procesado mi nombre por separado, y ha mezclado las referencias a «Chema» como si fueran mías. Una alucinación que hay que detectar manualmente. Llegados a este punto, la cuestión importante sería, el primer caso: «¿Es una alucinación o es un Error que podría cometer cualquier persona?» Esta es la gran pregunta. 
Porque si hacemos este test con 1.000 Prompts «no deterministas» a 1.000 personas y al modelo de Deep Reasoning, y vemos cuantos Informes de de Resultados de ese millón resultante (1.000 personas x 1.000 informes) y tenemos más errores que los que comete el modelo de Deep Reasoning, entonces tendríamos la Paridad Humana en la destreza cognitiva de «buscar respuestas en Internet«.
Errores Humanos y Errores Humanizados
Lo cierto es que, independientemente de estar cerca o no de ese hito, el número de Alucinaciones ha disminuido drásticamente aunque vamos a tener que seguir viviendo con los errores. Errores que pueden cometer también las personas. Y es verdad que en las empresas, el Talento Humano, aún sigue siendo una de las piezas clave que marca la diferencia entre una empresa que va bien, y otra que va mal. Y vivimos con ello a pesar de no ser «deterministas«. Puedes preguntar a diez empleados de tu empresa por la respuesta a una pregunta o ante una situación, y por mucho que esté escrita la respuesta, que se hayan hecho cursos de formación, etcetéra… ¿tienes garantías de que van a responder lo mismo y sin errores? No. Somos humanos, decimos los humanos.
De hecho, las interacciones humanas entre empresas y clientes son fundamentales. Los clientes quieren interacción humana, porque sus «Prompts» a las empresas tampoco son deterministas muchas veces. No saben cómo explicarlo, o no entienden qué tienen que pedirle a la empresa. O no saben exactamente el matiz del producto o servicio que tienen controlado. Así que van explorando «Prompts» con un servicio de atención al cliente que tiene que ir entendiendo y razonando sobre esos «Prompts» no deterministas que dan los clientes para poder crear un «Informe de Resultados» que sea correcto. Y la garantía de que ese «Informe de Resultado» hecho por un humano sea determinista y sin errores, tiende a cero. Somos humanos, decimos los humanos.
Pero aún así, vimos con ello. Aceptamos nuestra falibilidad como seres humanos en la interacción con otros humanos. La aceptamos con más o menos comprensión y enfado, pero entendemos que es un ser humano y que comete errores. De hecho, sabiendo esto, estamos mucho más preparados para detectar la mentira y el error, en forma de exageración, recuerdo inventado, o conversación de teléfono escacharrado, cuando alguien nos dice algo. Y lo comprobamos en Internet

Figura 10: ¿Error de Daniel o de un bot humanizado con errores?

El otro día, solucionando un problema con un pedido online, fui a chatear con el bot de soporte, y en un momento dato el mensaje que me llegó tenía un error. Y pensé: «Mira que truco más bueno para humanizar un bot. Podríamos incluir Errores Humanizados, meterle errores de tipado para simular Errores Humanos». Y me guardé la idea para contaros toda esta historia.
Así que, vamos a tener que acostumbrarnos a crear sistemas de Agentes AI que van cometer errores como los humanos, y vamos a tener que desarrollar sistemas de control deterministas para la verificación de los posibles errores que cometan los humanos o los Agentes de AI, pero es justo a eso «vamos a tener». Porque esta revolución es imparable, con alucinaciones, errores o indeterminismos.
¡Saludos Malignos!
Autor: Chema Alonso (Contactar con Chema Alonso)  

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.