¿Por qué la IA no puede contar el número de "R" en la palabra "fresa"?
Los grandes modelos de lenguaje, especialmente ChatGPT de OpenAI, revolucionaron la forma en que interactuamos con máquinas que sí entendían y podían generar texto similar al humano. Pero, en sí mismos, estos modelos venían con sus propios caracteres extraños. La rareza más molesta que ha circulado recientemente en todas las redes sociales es el fracaso de este gran modelo de lenguaje para contar correctamente el número de una determinada letra en una palabra. Un ejemplo muy popular es la palabra "fresa", en la que la IA muy a menudo no logra contar correctamente cuántas veces ha aparecido "r". Pero, ¿por qué hace esto? La respuesta se encuentra en lo más profundo del núcleo mismo de cómo estos modelos procesan y generan el lenguaje.
Una de las principales razones por las que la IA se traba en cuestiones como contar letras es la forma en que procesa las palabras. Los modelos de lenguaje, como GPT-3 y GPT-4, no tratan las palabras como una secuencia de letras individuales, sino que descomponen el texto en unidades más pequeñas llamadas "tokens". Los tokens pueden ser tan cortos como un carácter o tan largos como una palabra entera, dependiendo del diseño del modelo en cuestión y de la palabra en particular involucrada.
Por ejemplo, la palabra "fresa" probablemente se dividiría en dos tokens, representaciones de fragmentos parciales de palabras que el modelo conoce gracias al entrenamiento. El problema es que estos normalmente no corresponden a las letras de la palabra. Esto se debe a que, en ejemplos como "fresa", la IA puede no ver la división de la palabra en letras individuales completas, sino dos tokens; como los identificadores de token 496 y 675. Cuando, más adelante, se le pida que cuente letras particulares, este modelo no encontrará una forma sencilla de asignar los tokens al número de ocurrencias de una letra en particular.
Básicamente, los modelos de lenguaje predicen cuál será la siguiente palabra o elemento de una secuencia, basándose en el contexto dado por las palabras o elementos anteriores. Esto funciona especialmente para generar texto que no solo sea coherente, sino que también tenga en cuenta su contexto. Sin embargo, no es realmente adecuado para propósitos en los que se necesita contar algo con precisión o razonar sobre caracteres individuales.
Si le pidiéramos a la IA que contara el número de apariciones de la letra "r" en la palabra "fresa", no tendría una representación tan precisa de la palabra de la que se pudiera derivar el número y la posición de cada instancia de esa letra. En cambio, responde en el molde de lo que ha aprendido sobre la formación de predicciones a partir de la estructura de la solicitud. Por supuesto, esto puede ser inexacto, porque los datos de los que aprendió no tienen que ver con el conteo de letras, y es posible que ni siquiera incluyan el tipo de material que se necesitaría para rastrear la "r" en nuestra palabra de ejemplo.
Otro punto importante es que los modelos de lenguaje per se, utilizados en la mayoría de los chatbots, no son apropiados para el conteo explícito o la aritmética. En otro sentido, los modelos de lenguaje puro son poco más que diccionarios avanzados o algoritmos de texto predictivo que realizan tareas ponderadas con probabilidad en función de los patrones que aprenden, pero tienen dificultades con las tareas que requieren un razonamiento lógico estricto, como el conteo. Si se le pide a la IA que deletree una palabra o la descomponga en letras individuales, es posible que lo haga correctamente con más frecuencia, ya que esto se ajusta más a la tarea para la que ha sido entrenada: la generación de texto.
A pesar de estas limitaciones, es posible mejorar el rendimiento de la IA en estas tareas. Se pueden mejorar pidiéndole a la IA que emplee todo tipo de lenguajes de programación, como Python, para realizar el recuento. Por ejemplo, puedes intentar darle a la IA una instrucción para que escriba una función Python que cuente la cantidad de "r" en "fresa", y probablemente lo haría correctamente. Usamos este enfoque porque aprovecha la capacidad de la IA para comprender y generar código, que se puede ejecutar para realizar la tarea correctamente.
Además de eso, se combinan generaciones más recientes de modelos de lenguaje, con otras herramientas y algoritmos que hacen que estos modelos sean más potentes para tareas más estructuradas, que también incluyen el conteo y la aritmética.
Incorporar el razonamiento simbólico o combinar los LLM con motores de razonamiento externos haría que un sistema de IA fuera capaz de superar esas deficiencias.
El problema de contar letras en palabras como "fresa" apunta a un problema mucho más amplio y general en este sentido: la "estupidez colectiva" de estos modelos entrenados. Estos modelos, aunque han sido entrenados con conjuntos de datos muy grandes y pueden, por lo tanto, generar texto a niveles muy sofisticados, a veces cometen errores muy estúpidos que un niño pequeño evitaría fácilmente. Esto sucede porque el "conocimiento" del modelo debe estar compuesto por reconocimiento de patrones y asociaciones estadísticas, en lugar de su comprensión del mundo real o inferencia lógica.
Incluso cuando se le dan instrucciones detalladas o incluso se le plantea una situación en la que varios modelos se comprueban entre sí, la IA puede persistir en dar respuestas incorrectas. Este comportamiento demuestra con gran detalle lo importante que es no sobrestimar las capacidades de los sistemas de IA más allá de sus puntos fuertes, sino apreciar plenamente lo que pueden y no pueden hacer.
La incapacidad de la IA para contar la cantidad de "r" en una "fresa" no es un simple defecto trivial; es más bien un reflejo de la arquitectura subyacente y la filosofía de diseño de los modelos de lenguaje. Estos modelos son muy eficaces para generar texto similar al humano, comprender el contexto y emular una conversación, pero no están diseñados directamente para tareas que requieran específicamente atención a los detalles a nivel de los caracteres.
Dado que la IA mejora continuamente, es probable que los modelos futuros sean más capaces de realizar esas tareas mediante procesos mejorados de tokenización, la integración de herramientas de razonamiento adicionales o incluso formas completamente diferentes de comprender y manipular el lenguaje. Hasta entonces, se debe abordar esta tecnología teniendo en cuenta sus limitaciones, utilizando soluciones alternativas adecuadas y reconociendo que, si bien puede simular la comprensión, todavía no "entiende" verdaderamente como lo hacen los humanos.