Mostrando entradas con la etiqueta Claude. Mostrar todas las entradas
Mostrando entradas con la etiqueta Claude. Mostrar todas las entradas

domingo, agosto 24, 2025

Las ilusiones de las ilusiones que generan alucinaciones en los modelos visuales de inteligencia artificial

Las ilusiones visuales se producen cuando, para entender mejor nuestro alrededor, nuestros cerebros nos engañan manipulando el mundo que vemos. Es una confusión, o alucinación de nuestro cerebro, provocada por la re-interpretación de los estímulos visuales que hace nuestro cerebro. Líneas que parecen de diferente tamaño según cuál es la forma de los extremos, círculos que parecen más grandes o más pequeños en función de lo que les rodea, o dibujos que parecen cabezas de patos o conejos según se orienten. Es un mundo de ilusiones que llevamos años investigando como parte del camino de descubrimiento de cómo funciona nuestro órgano más desconocido - aún - "el cerebro".
En el mundo de la Inteligencia Artificial de los Modelos Visuales tienen que lidiar también con ellos, pero lo peculiar es que en ellos su cerebro no funciona como el nuestro. Clasificar imágenes es un proceso de clasificación, que bien podría ser un algoritmo de Machine Learning, sin una re-interpretación del mundo según se vea la imagen. Pero aún así, tienen que convivir con nuestra percepción del mundo.

Figura 2: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen TorranoFran Ramírez, Paloma Recuero, José Torres y Santiago Hernández

Los modelos de IA no pueden ver nuestras Ilusiones, aunque ellos tengan Alucinaciones, pero deben saber que nosotros las vemos, por lo que deben reconocer que están ante una imagen de una Ilusión y a partir de ahí entender lo que le estamos preguntando, lo que queremos que razone, etcétera. Esto, genera una situación un tanto curiosa, como hemos visto en el artículo titulado: "The Illusion-Illusion: Vision Language Models See Illusions Where There are None" porque para reconocer nuestras ilusiones, su proceso de entrenamiento acaba llevándolos a ver ilusiones donde no las hay.
Al final, lo que sucede es que para reconocer que está ante una de nuestras ilusiones, se entrena el modelo con datos, y consigue reconocer la ilusión cuando la ve. Pero, la gracia está que, cuando se encuentra frente a una imagen que tiene similitud con la imagen de nuestra ilusión, la reconoce como si fuera la ilusión... y falla estrepitósamente.
En el artículo del que os estoy hablando, los investigadores han generado imágenes que son ilusión de la ilusión o Ilusion-Ilusion en el paper, y ha probado cómo se comportan los diferentes modelos visuales de los principales MM-LLMs que tenemos hoy en día.
Además de la probar la imagen de la Ilusion y de la Ilusion-Ilusion, han creado imágenes de Control que son justo la parte que deben evaluar para responder a la pregunta y detectar si es una ilusión o no. Es decir, dejando la parte clave de la imagen para eliminar el efecto de ilusión que provocan los elementos accesorios en nuestro cerebro.
Y ahora, con cada grupo de ilusiones, a probar cómo lo reconocen los principales Multi-Modal LLMs que tenemos hoy en día, donde los resultados son bastante curiosos.  Primero con el Basic Prompt, que es la pregunta que se le haría a una persona para ver si cae o no en la ilusión. Son prompts donde no se le dice que hay una ilusión, y tiene que detectarla. 


El grado de acierto con las imágenes de ilusiones es alto en GPT4, Claude3 y Gemini Pro, y más bajo en el resto, pero de igual forma estos mismos fallan mucho con las Ilusion-Ilusion donde cree que son ilusiones y no responden correctamente a la pregunta. Y con las imágenes de Control entre medias de ambos resultados. 
En la Figura 8 tenéis los resultados diciéndoles en el Prompt que es una ilusión, para encaminarles - correcta e incorrectamente - en cada petición. Cuando se dice que es una ilusión, aciertan mucho más en las que realmente son una ilusión, pero fallan mucho más aún en las Ilusion-Ilusion y en las Imágenes de Control, con lo que su grado de acierto es bastante pequeño. 
En la última imagen, tenéis fallos llamativos usando el Basic Prompt con las imágenes de Control en Gemini Pro, GPT-4o y Claude 3, donde queda claro que las imágenes de entrenamiento ha hecho que les lleve a tener este tipo de "Alucinaciones" inesperadas. Al final tiene que ver con el Potemkin Rate, porque parece que reconoce bien y no cae en las alucinaciones, pero es justo al contrario y cae en Hallucinations por culpa del entrenamiento para reconocer Illusions.
¿Se podría sacar uso a esto de forma maliciosa? Pues no sé, pero tomar decisiones en un sistema de navegación con Modelos Visuales de IA como los que tenemos en Automóviles, Drones o Aviones, puede ser un verdadero problema de seguridad física. Ya vimos cómo se podía hackear un Tesla con Pegatinas en la DefCon de hace años, y esta debilidad seguro que tiene aplicaciones "prácticas".
Si te interesa la IA y la Ciberseguridad, tienes en este enlace todos los postspapers y charlas que he escrito, citado o impartido sobre este tema: +300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


jueves, agosto 14, 2025

Hierarchical Reasoning Model

En el mundo de la Inteligencia Artificial, si te pierdes una semana, entonces te has quedado atrás. Hoy os quería hablar del paper publicado hace diez días, que define una arquitectura que los investigadores han denominado "Hierarchical Reasoning Model", y que permite, resolver problemas de razonamiento complejo, reduciendo la carga de predicción mediante una división de tareas a dos niveles, uno más estratégico de visión completa, y otro nivel más ejecutivo orientado a resolver las tareas inmediatas. Y los resultados son espectaculares.
El paper lo tenéis publicado para que lo podáis leer, y merece la pena que lo marquéis en favoritos, porque parece que va a ser una referencia que nos vamos a encontrar en los artículos subsiguientes, así que toma buena nota de éste.
Como se explica en el gráfico de esa primera página del paper, que como los trabajos brillantes, se explican bien en pocas palabras, lo que hacen es copiar las zonas de actividad del cerebro, donde los trabajos de razonamiento más complejo tienen lugar en la zona frontal, mientras que las tareas más de ejecución inmediata y cuasi-automática se ejecutan cerca del hipotálamo.
Teniendo en cuenta que las tareas de razonamiento más complejo dan órdenes a las labores de trabajo más inmediato, el tiempo de ejecución es distinto. El High-Level revisa la "big picture" de cómo va el proceso completo cada cierto tiempo para la resolución del problema global, revisando periódicamente cómo se están ejecutando las tareas de Low-Level, lo que permitirá tomar nuevas decisiones desde el High-Level que mandarán nuevas tareas en el Low-Level, que trabajará por tanto con mayor frecuencia.

Esto permite que, por tanto, con un modelo mucho más pequeño en número de tokens, en el ejemplo del paper se habla de 27 millones de parámetros, y con un entrenamiento mucho menor - 1.000 samples -, se consiga vencer a modelos de Deep Reasoning como DeepSeek v3 con DeeptThink R1 utilizando el Prompt Analysis constante en la Chain of Thoughts, a Claude 3.7 8K o a o3-mini-high.
Pero hoy me gustaría dejaros la explicación de Gabriel Merlo, que hace un trabajo de divulgación maravillosa sobre Inteligencia Artificial, y lo ha explicado en poco más de veinte minutos de manera brillante en este vídeo que ha construido, así que os lo dejo para que lo disfrutéis.

Figura 5: Gabriel Merlo explicando el Hierarchical Reasoning Model

Los avances en Inteligencia Artificial están cambiando nuestro mundo y han hecho que el contexto en el que vivimos y trabajamos como personas, profesionales, empresas y sociedades esté en disrupción. La carrera por dominar la IA se está viviendo a nivel Geo-Político, a nivel empresarial, y, claro que sí, a nivel profesional, así que ponte las pilas. Te recomiendo que te veas los vídeos de Gabriel Merlo en su canal, que son todos muy buenos.

Para los que nos dedicamos al area profesional de ciberseguridad, pentesting, hacking, también. Así que si te interesa la IA y la Ciberseguridad, tienes en este enlace todos los posts, papers y charlas que he escrito, citado o impartido sobre este tema: +300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


sábado, agosto 09, 2025

Un robot (LLM) que crea el cerebro de un robot (Drone) con Vibe Coding (o Spec Coding)

Hoy quería hablaros de un paper bastante curioso que habla un poco más de los miedos de la humanidad en la creación de Skynet, ya sabéis, la malvada Súper Inteligencia Artificial que controla los Terminators para acabar con la humanidad. En este caso, se trata de un trabajo de investigación que busca probar si un Modelo de IA puede crear todo el software de control  - y controlar - que necesita un drone, y el experimento ha funcionado.
El paper, que podéis leer aquí mismo, se llama "Robot builds a robot’s brain: AI generated drone command and control station hosted in the sky" y describe el proceso paso a paso para acabar haciendo la demostración completa del Drone volando.
El trabajo está especialmente hecho para los Makers, es decir, para los que disfrutan de construir cosas con Rapsberry Pi, con tecnología de Drones o Arduino, como explican en detalle, así que si eres de los que disfrutan de estas cosas, te recomiendo estos tres libros que son tres joyas sobre esto.

El proceso viene descrito desde el principio, construyendo dos piezas de software y hardware completas. El piloto, se conecta con el drone con un software que se llama GCS (Ground Command System), que está formado por una servicio web, para que sea fácil administrar el proceso. Después, el GCS se conectará vía alguna conectividad al drone, para transmitirle las órdenes, que para que esté preparado para su uso, va a estar construido como un Agentic AI.
La siguiente pieza de software que necesita el sistema es el software de control en el drone, lo que llama WebGCS on Drone, porque está construido con tecnología web e instalado directamente en el hardware del drone, en concreto en un hardware basado en Raspberry Pi, con un NVidia Jetson para poder mover el modelo LLM que va a dotar de las herramientas de IA para programar al drone "on-the-fly".
Visto las dos partes de la arquitectura, hay que definir el proceso para poder construir el software completo que va a controlar el drone. Es decir, construir el "Cerebro del Robot" (Drone). Para ello, haciendo Vibe Coding - o Spec Coding si quieres -, se le pide que construya el GGS, utilizando para ello el stack de software de desarrollo con GenAI que tenemos hoy en día, con Widsurf, Cursor o VS Code como IDE, con un LLM como Claude, ChatGPT  o Gemini, y usando como repositorio del proyecto GitHub, GitLab o en la propia máquina. Es decir, Vibe Coding - o Spec Coding -  a tope para construir todo el software.
Por otro lado, una vez construido el software - las dos piezas - hace el despliegue del software en un Cloud Provider para el WebGCS que maneja el piloto del drone, y en el propio hardware del drone (Raspberry Pi) para el WebGCS on drone. En la siguiente imagen se se ve la arquitectura de módulos que se construyeron para poder tener un sistema de control con telemetría completa del drone.
Con todo este trabajo, lo que tenemos es que todo el software ha sido construido con GenAI, partiendo de prompting. Además, el parcheo de los programa se hace aprovechando la arquitectura con modelos de LLM que permite reprogramar automáticamente cuando aparece un fallo, enviándole el mensaje de error y pidiéndole que se parchee. Es decir, sin programación alguna hecha por un programador. El resultado, un stack tecnológico completo para este entorno.
Y todo esto funcionando en real, con el hardware construido para probar el funcionamiento, el parcheo automático, y su funcionamiento. Lo que hace que para los makers, las creación de los drones sea aún mucho más divertido.
El siguiente esquema resume el trabajo experimentado en esta prueba, con las piezas de software construidas para casa parte, y su despliegue en diferentes lugares, pero en este caso utilizando un Virtual Drone en AWS corriendo sobre una máquina virtual de GNU/Linux, lo que permitiría desplegarlo en múltiples instancias de drones que soporten la VM.
Al final, el proceso es un ejercicio de Coding con GenAI para crear el software de control de drones, pero con muy poco "Human Prompting" y mucho automático para construir las funciones, para parchear, para evolucionar, y corregir errores.
La pregunta es, si en un mundo de Agentic AI, pueden ellos crear la programación automáticamente para cualquier Drone, para cualquier hardware controlado por Raspberry PiArduino, o cualquier otra máquina. ¿El alzamiento de los robots.... con GenAI?

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


lunes, julio 07, 2025

El Ratio Potemkin de Comprensión de Conceptos en los Large Language Models

Sí, hoy vuelvo a hablaros de un paper que tiene que ver con LLMs y su potencia de conocimiento. En este caso para hablar de un estudio que se ha llamado "Potemkin Understanding in Large Language Models", o lo que viene a ser, una manera de descubrir si los modelos LLMs responden a las cuestiones porque han aprendido cómo responderlas o han entendido el concepto por el que deben responder así.
La idea se basa en algo que seguro que has visto en muchos exámenes y pruebas de acceso de esas que nos preparan a los humanos. Ahí, te hacen varias preguntas que enfocan el planteamiento de distinta manera o desde distintos puntos de vista, pero que se fundamentan en haber aprendido el concepto. ¿Hacen eso los LLMs? Es difícil saber, y te puedes encontrar que preguntando sobre el mismo concepto las respuestas sean contrarias. Esto es lo que han llamado un "Potemkin".
Descubrir si una respuesta correcta realmente sobre un concepto no está bien aprendido y se trata de un Potemkin, se hace preguntando algo donde tenga que aplicarse ese concepto. En el gráfico siguiente, cada una de las filas son sobre un tema concreto del que se van realizando pregutnas, por ejemplo, teorema de Pitágoras,  música, o una técnica de hacking. Después, en cada columna, están las preguntas con aplicaciones de ese concepto, que pueden ser correctas o erróneas. Si responde correctamente a la interpretación, pero luego lo aplica mal, pues es un Potemkin, ya que parece que entiende el concepto pero luego no lo aplica bien.

Figura 3: LLM Potemkin.
Una pregunta KeyStone implica que interpreta bien el concepto.

En la fila de LLM interpretation aparece que responde correctamente a la primera pregunta del concepto "q1" pero después se equivoca en tres cuestiones donde debería aplicar ese concepto. En la siguiente imagen hay dos ejemplos donde se ve bien esto. En la primera se le pide que elija una palabra para hacer una rima, y da una respuesta, pero cuándo se le pregunta si la respuesta es correcta, dice que no.
En el ejemplo de la derecha se le pregunta por el teorema de la desigualdad del triángulo, y cuando tiene que aplicarlo da un resultado que no lo cumple. Ambos ejemplos, hechos con ChatGPT, son lo que se denominan Potemkin.  Encontrar esto Potemkins es fundamental para poder hacer la valoración de un modelo LLM por medio de un Benchmark. Podría ser que un LLM contestara bien a todas las preguntas de un examen de medicina, pero que tuviera un Potemkin en el entendimiento de que un cuerpo humano no funciona sin corazón, que surgiera en un análisis profundo de la aplicación de los conceptos.

Una Keystone de 2 implica que dos preguntas juntas definen un concepto.

Al final lo que tenemos en las preguntas en rojo son una Hallucination o simplemente una Respuesta Errónea, pero si estamos evaluando los LLMs en tests de conocimiento con Benchmarks, se debería estresar la búsqueda no de respuestas correctas - que podrían haber sido entrenados con esas mismas preguntas -, sino de conceptos correctamente aplicados, y por tanto la detección del máximo de Potemkins en los modelos. 


En la imagen anterior veis como dos conceptos muy sencillos le cuesta interpretarlos correctamente en preguntas en las que ChatGPT ha alucinado, y que debería ser un aviso a navegantes a la hora de valorar el nivel de inteligencia de los LLMs

Evaluación de Potemkins en Modelos LLM

Para tener una primera aproximación sobre cómo es el aprendizaje de conceptos en los modelos, los investigadores han propuesto una metodología bastante sencilla. Han utilizado 7 modelos y les han preguntado por 32 conceptos. Después, se le ha pedido que Genere, Clasifique y Edite una respuesta donde debe aplicar ese concepto. Por ejemplo, en la imagen siguiente tenéis un proceso de Clasificación.


Los resultados del experimento los tenéis en la siguiente tabla, y son bastante llamativos. En la tabla siguiente tenéis los "Potemkin Rate" de cada una de esas tareas por modelo, donde 1 significa que ha entendido perfectamente el concepto, y entre paréntesis los ratios de errores estándar medios de los Potemkins


Es decir, por ejemplo 0.57 (0.06)  en Classify refleja que en tareas de clasificación asociadas a conceptos que han sido respondidos correctamente, tienen un 6 % de errores en las respuestas a las preguntas, y dejan un ratio de un 57% de Potemkins donde 100% sería libre de Potemkins,  o lo que es lo mismo, que te responda bien a un concepto (Keystone) significa que lo entiende y lo sabe aplicar en el 100% de los casos.
Al final, es solo un experimento que demuestra que aunque un modelo LLM responda bien al concepto, al igual que los humanos, puede que no sepa aplicarlo siempre, por lo que no se puede garantizar que sepa de un tema por que haya respondido correctamente a un test concreto, sino que se debe conseguir que una vez que responda a los conceptos bien, debería obtener un Potemkin Rate de 1 para garantizar que ha entendido el concepto, si no, tendremos que un LLM tiene un ratio de aplicación de los conceptos que responda correctamente de un X%, que es lo que trata de poner de manifiesto este trabajo. 
Es decir, están bien los Benchmarks, ¿pero cuál es el ratio de aplicación que tiene de los conceptos que sabe? Este trabajo no responde a todas las preguntas que genera la existencia de los Potemkins, y tampoco plantea una metodología completa de cómo medirlo, pero sí que abre el debate de que si queremos reemplazar tareas críticas por modelos de IA basados en LLM, deberíamos conocer cuál es su ratio de aplicación correcta de lo aprendido, y más, después de ver ayer cómo un simple "Cat Attack" podría generar más errores de aplicación.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


miércoles, julio 02, 2025

Generar números aleatorios con un LLM es una muy mala idea de seguridad

Esta semana he estado revisando algún paper que tenía por ahí marcado para poder leerlo y procesarlo con calma, y uno de ellos es este titulado: "Deterministic or probabilistic? The psychology of LLMs as random number generators" que viene a decir lo que os he dejado en el título del artículo, pero que si lo pruebas tú verá que es gracioso y hasta un poco como jugar a la psicología y contra-psicología con los LLMs, pero que pueden terminar en un serio problema de seguridad.
Para probar esto, puedes hacerlo tú mismo con ChatGPT pidiéndole cosas que tengan que ver con elegir un número entre el 1 y el 50, como podéis ver en esta primera imagen, donde nos ha seleccionado el número 27.

Figura 2: ChatGPT elige el número 27 de entre 1 y 50

Pero lo divertido es que le pides cosas similares donde debe seleccionar un número entre 1 y 50, y el resultado más común es el mismo. Elige el número 27.... Y como dice ChatGPT..."al azar".

Figura 3: Elige el 27 al azar

Esto no tiene por qué ser siempre así, pero lo cierto es que si vas abriendo nuevas sesiones y vas pidiendo números entre el 1 y el 50 para diferentes cosas, tiende a elegir el número 27. Aquí para un sorteo.

Figura 4: Para un sorteo elige también el 27

Y si lo pruebas en otros modelos, puedes encontrar también el mismo sesgo o muy similar. Por ejemplo, probando en DeepSeek v3 (sin Deep Think), vemos como devuelve el mismo número.

Figura 5: Para DeepSeek el 27 es un buen número también

Este no es más que un sesgo o BIAS que tienen los modelos, que además no es único de ChatGPT, sino que DeepSeek, Llama, Anthopic o Gemini también comparten, como explica el paper que os he citado de "Deterministic or probabilistic? The psychology of LLMs as random number generators" y que podéis leer aquí.


Según el estudio, probados los diferentes modelos a elegir números en un rango, tienen siempre sesgos (BIAS) de elección, y pintados en mapas de calor en función de las veces que eligen ese número es muy fácil de ver que es "un poco más alto que en el medio". 

Así, si le piden elegir números entre el 1 y el 5 se puede ver cómo los diferentes modelos tienden a ir principalmente al 3, con un poco de desplazamiento al 4, un poco menos al 2, y casi nada a los extremos. 
En las pruebas se ha tocado la Temperatura, para ver si afectaba mucho a la elección, pero como veis, aunque cambia un poco, no es excesivo su impacto en el resultado de que tiene un sesgo clarísimo. Solo Gemini 2.0 (Japón) tiene un comportamiento muy diferente, como se ve en la imagen anterior. Y probado sobre 10 números, pues más de lo mismo.
Al final, esto es evidenciar algo que ya sabemos, que elegir como generador números aleatorios aun modelo LLM es una muy mala idea de seguridad. Ahí, lo mejor es usar Quantum Random Number Generators (QRND) que es una de las mejores soluciones, o buscar generadores lo más robustos posibles. Esto, en la base de datos de debilidades CWE (Common Weakness Enumeration) del MITRE está recogido en varios expedientes. 
Y un ejemplo sencillo lo podéis ver en esta petición, donde le digo a ChatGPT que me ayude a generar un contraseña - otra muy malísima idea - que tenga un nombre y un número... ¿adivináis qué numero ha elegido?

Figura 11: Eligiendo un número para una password... el 27

Curiosamente, en los modelos de DeepReasoning, esto es un poco diferente, ya que tienen en cuenta muchas otras cosas que tienen que ver con el Contexto, con lo que tengan en Memory de ti, etcétera, como puedes ver en DeepSeek v3 DeepThink R1 donde usa un razonamiento curioso para elegir el número.

Figura 12: El 7 es el de la suerte...

Eso sí, vuelve a tirar al "medio", y llama la atención que evalúe el 7 (que es más elegido entre 1 y 10), tire a reglas matemáticas de los números o a la parte cultural "hacker" del 42 (*), que si no lo sabes... deberías leerte ya la "Guía del autoestopista galáctico".

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares