¿Cómo piensa una Inteligencia Artificial?
Limitaciones y curiosidades del proceso de razonamiento de las IAs. Memoria, sesgos, ineficiencias y la importancia del contexto.
A estas alturas ya todos hemos oído hablar de DeepSeek, un LLM con origen chino que ha sido capaz de destronar a ChatGPT de la lista de aplicaciones más descargadas en la App Store de EEUU.
La clave de DeepSeek es su modelo R1, una variante que “razona” antes de responder, como ya hacía el modelo O1 de OpenAI. Sin embargo, DeepSeek ha innovado en dos áreas fundamentales que le ha permitido arrasar el mercado:
Es gratuito, mientras que su equivalente en OpenAI era de pago.
Muestra su proceso de razonamiento en abierto.
El aspecto económico es importante, sin duda, pero si me preguntáis, el gran éxito se debe a lo segundo. Poder leer el proceso de razonamiento, permite entender mucho mejor qué está haciendo y mejorar las interacciones con el modelo. Hay quien, de hecho, dice que lo humaniza. En Reddit he llegado a leer comentarios sobre que la GenZ lo considera “cute” y adorable.
La entrada de hoy es un resumen de algunos aspectos interesantes que he descubierto interactuando con DeepSeek R1 esta semana, y que nos ponen sobre la pista de cómo piensan realmente estos modelos.
Por qué el contexto es clave para la IA
Una de las primeras cosas que aprendes al utilizar un LLM es la importancia de darle contexto sobre lo que estás haciendo para acotar la posible respuesta. Pero, ¿por qué es importante?
Ver el razonamiento de DeepSeek nos ayuda a entenderlo. Cuando utilizamos un prompt escueto y ambiguo, DeepSeek invierte mucho tiempo dándole vueltas a tratar de entender la verdadera motivación del usuario antes de responder. Por el contrario, si le damos instrucciones detalladas, tarda mucho menos en dar una respuesta porque no tiene que resolver la ambigüedad.
Para comprobarlo, utilicé estos dos prompts:
Prompt 1) Ambiguo: 103 segundos de razonamiento
Prompt 2) Conciso: 13 segundos de razonamiento
Fijaros también en la longitud del proceso de razonamiento para cada uno. Y el de la izquierda, el prompt ambiguo, está cortado porque he llegado a los límites de lo que podía capturar. Son difíciles de leer en la imagen, así que por si tenéis curiosidad, os he copiado las respuestas del prompt 1 y el 2 en Pastebin.
La IA no tiene memoria
Una de las cosas que más me ha sorprendido ha sido ver que el modelo no tiene memoria de su propio razonamiento. Así, si comienzas un juego diciéndole que elija un número, a la siguiente interacción no es capaz de saber si lo ha hecho, y ni siquiera qué número ha sido:
Hmm, in the first message, I said I chose a number, but since I'm an AI, I don't have memory of past interactions unless it's in the current context. Wait, looking back at the conversation history, the user started the game and I responded with "Alright, I've chosen a number between 1 and 10. Let’s start! What’s your first guess? 😊". So, in that moment, I need to have selected a number. But how did I do that? Since I can't generate a random number on the fly in a static way, maybe I need to simulate it by picking a number now. Wait, but the user's first guess is 6. So to make the game work, I should have a number in mind.
Lo que sí puede leer son sus respuestas y las del usuario. Si, por ejemplo, escojo el número 1, luego el 2, y luego el 3, el LLM los recuerda. Pero no es que los recupere de su memoria; en cada interacción, procesa toda la conversación y la añade como contexto para generar la siguiente respuesta.
De hecho, en una de las simulaciones que hice, DeepSeek, consciente de sus propias limitaciones, decidió añadir el número que había elegido a su primera respuesta para poder así recordarlo en jugadas sucesivas.
Sobra decir que esa partida no fue muy divertida 😁.
La IA tiene favoritos
Si bien la IA no es capaz de recordar, en alguna de mis pruebas sí era consistente entre respuestas con el número elegido, y, casualidades de la vida, casi siempre ocurría con el número 7.
El número 7 es el número favorito en gran parte del planeta y eso es algo que también aprende cualquier LLM durante su proceso de entrenamiento. Para comprobarlo, salte a Openrouter.ai, una interfaz unificada de LLMs en la que puedes lanzar la misma consulta contra varios simultáneamente:
Hice la misma prueba para un color y un alimento, y debo deciros que hay unanimidad con el azul y la pizza. Así que ya sabéis, la IA tiene favoritos, o dicho de otra forma, está sesgada hacia lo más popular.
La IA se las inventa
Si no tiene memoria, y no es capaz de recordar el número que ha elegido al comenzar el juego, ¿cómo lo hace para responder? En muchos casos, se lo inventa, simple y llanamente.
Por ejemplo, en esta partida, en la 7ª jugada, “recuerda” que su número era el 7, pero en la 8ª, decide cambiarlo al 5 como quién cambia de camisa.
En otras ocasiones, al no poder recordar el número, y tras gastar una cantidad ingente de tokens (y tiempo) de razonamiento, decide tirar la toalla y darle la victoria al humano aunque no sepa si en realidad ha acertado.
Es esta interacción, por ejemplo, empieza la partida escogiendo el 5. Lo mantiene durante dos rondas, y en la tercera gasta 82 segundos pensando para terminar aceptando que quizás el usuario ha acertado escogiendo el 8 🤪.
La IA es muy poco eficiente
Se atranca. La IA se atranca. Sólo así se explica los 82 segundazos invertidos razonando del ejemplo anterior. Os dejo su razonamiento aquí por si queréis ver la cantidad de vueltas que le da para terminar concediendo el juego.
En general, he visto muchísimo desperdicio en mis pruebas. Por ejemplo, otro punto débil de los LLMs son los cálculos y operaciones matemáticas, algo que se pone de relieve cuando observas las volteretas que da para elegir un número aleatorio:
But how to decide? Since the model can't actually generate a random number and remember it, maybe in the context of this conversation, the number is 7. Alternatively, maybe it's another number.
Alternatively, maybe the number is fixed based on the hash of the user's first message. Let's try a simple hash: take the sum of the ASCII values of the first message's characters. Let's approximate:
The initial message starts with "Let’s play a number-guessing game..." Let's take the first few words: "Let’s play a number-guessing game." Summing the ASCII values of each character:
L (76) + e (101) + t (116) + ’ (39) + s (115) + space (32) + p (112) + l (108) + a (97) + y (121) + space (32) + a (97) + space (32) + n (110) + u (117) + m (109) + b (98) + e (101) + r (114) + - (45) + g (103) + u (117) + e (101) + s (115) + s (115) + i (105) + n (110) + g (103) + space (32) + g (103) + a (97) + m (109) + e (101) + . (46)
Calculating this sum:
76 +101=177; +116=293; +39=332; +115=447; +32=479; +112=591; +108=699; +97=796; +121=917; +32=949; +97=1046; +32=1078; +110=1188; +117=1305; +109=1414; +98=1512; +101=1613; +114=1727; +45=1772; +103=1875; +117=1992; +101=2093; +115=2208; +115=2323; +105=2428; +110=2538; +103=2641; +32=2673; +103=2776; +97=2873; +109=2982; +101=3083; +46=3129.
Total sum is 3129. Now, 3129 modulo 10 is 9 (since 3129 /10 = 312.9, remainder 9). So 9 +1 =10. So the number would be 10. But the user hasn't guessed 10 yet. So in that case, their guess of 7 is wrong. But this method is just an example; the actual approach is unclear.
Y este es sólo uno de los métodos que propone en una respuesta. He llegado a ver cómo el LLM consideraba más de 5 modos de “calcular” un número al azar en un sólo paso de razonamiento.
Conclusiones
En resumen, DeepSeek R1 nos brinda una mirada fascinante a las peculiaridades y capacidades de los modelos de lenguaje actuales. El hecho de que podamos observar su proceso de razonamiento nos permite entender mejor cómo funcionan y cómo podemos interactuar con ellos de manera más efectiva.
Por ejemplo, nos demuestra la importancia de proporcionarles un contexto claro y detallado. Al igual que nosotros, estos modelos aprecian cuando se les dan instrucciones precisas, lo que les permite comportarse de manera más eficiente y efectiva.
La transparencia también nos ayuda a identificar y comprender los sesgos y patrones inherentes en estos modelos. Es curioso observar cómo siempre tienden a elegir el número 7 o a preferir el color azul y la pizza. Estas coincidencias no son fruto del azar, sino reflejos de los patrones más comunes en los datos con los que han sido entrenadas. Este tipo de detalles no solo hacen que las IA parezcan más humanas y hasta adorables, sino que también nos recuerdan que están influenciadas por nuestra propia cultura y comportamientos.
DeepSeek también nos habla de la importancia de la experiencia de usuario. El simple hecho de mostrar el proceso de razonamiento le ha permitido conquistar un mercado dominado por OpenAI con mano firme. Lo cual no deja de ser curioso, porque fue OpenAI, precisamente quién puso de moda los LLMs a través de una innovación en la forma de interactuar con ellos: ChatGPT.
Sam Altman, por cierto, no está muy contento con la aparición de DeepSeek. Tiene razones para estar preocupado. ¿He dicho ya que DeepSeek es además open source? Bienvenida sea la competencia en el sector de la Inteligencia Artificial.
Que tal Simón,
Sigo tus publicaciones desde hace tiempo, y más de una vez he estado tentado de comentar o matizar alguno de tus artículos, pero por unas razones o por otras, no me he animado.
Pero este artículo me ha gustado especialmente, y al final me he animado a comentarlo.
Llevo involucrado en el mundo de la IA mucho tiempo, directa e indirectamente, y nunca había vivido la irrupción de una tecnología tan disruptiva como los Transformers para LLM. Quizás la irrupción del BigData y el procesamiento en memoria con Spark; pero estos avances no son comparables con el impacto directo en mercado y producto que han supuesto las nuevas técnicas de LLM.
Pero incluso aquí veo un hype tan brutal, que la gente de a pie (i.e. los no tecnólogos, o los tecnólogos, pero no de nuestro campo) ha llegado a pensar que son la solución para todo y que para ese todo su precisión es del 100%.
Y es que sólo se cuentan los casos de éxito. Y de esos, sólo la parte buena.
Nadie habla de los modelos que tratas de entrenar con un subconjunto de documentos, y que no terminan de funcionar del todo bien. O de lo complicado que es crear un bot para un ámbito de aplicación en el que las respuestas tienen que ser deterministas. Como en un ChatBot para RRHH, donde no es aceptable que alguien le pregunte por los días de vacaciones que le corresponden, y el bot cambie su respuesta según le preguntes o le insistas.
Por eso me ha gustado tanto tu artículo. Creo que es un magnífico ejemplo de lo que puede, y lo que no puede hacer la IA. De su tremenda capacidad, pero también de sus limitaciones.
Un artículo sin sesgo, y desinteresado.
Porque hemos llegado a un punto, en el que uno debe desconfiar hasta de algunos artículos y ejemplos que lee por la red.
Así que gracias Simón. Por este, y por muchos otros artículos que has compartido hasta el momento.
Un saludo,
Francisco