Una alucinación de la IA es una respuesta que suena segura y es falsa: un dato inventado, una cita de un artículo que no existe, una función que una biblioteca nunca tuvo. Todos los modelos de chat lo hacen, incluidos ChatGPT, Claude y Gemini. No es un error que se vaya a corregir con un parche; se deriva de cómo producen texto los modelos de lenguaje. Los prompts pueden hacer que las alucinaciones sean menos frecuentes, y solo la verificación puede detectar las que quedan.
Por qué alucinan los modelos de lenguaje
Un modelo de lenguaje escribe un token a la vez, y elige cada uno porque es probable que siga al texto anterior. Probable según todo lo que el modelo vio durante el entrenamiento. Nada en ese proceso consulta un dato. Cuando la respuesta era común en los datos de entrenamiento, la continuación probable suele ser la verdadera. Cuando era rara, reciente o no estaba en absoluto, el modelo igualmente produce la continuación más verosímil, y un texto verosímil sobre un dato que no tiene es una alucinación.
Algunos tipos de pregunta están más expuestos que otros:
- Detalles concretos: cifras exactas, fechas, nombres, números de versión, referencias de página. La forma de la respuesta es fácil de predecir; el detalle no.
- Citas y enlaces. Una referencia tiene un formato previsible (autores, año, título, revista), así que un modelo puede producir una bien formada para un artículo que nunca se escribió.
- Temas raros o recientes: una biblioteca pequeña, una normativa local, cualquier cosa posterior al final de los datos de entrenamiento del modelo.
- Preguntas con una premisa falsa. Pregunta qué hace una función, y el modelo tiende a responder como si la función existiera.
La fluidez no es señal de precisión. Una respuesta alucinada tiene el mismo tono seguro, el mismo formato y el mismo nivel de detalle que una correcta, y por eso es fácil que se te pase.
La trampa de la premisa falsa
Las pestañas de abajo preguntan por DataFrame.smart_merge() en pandas. Ese método no existe. La primera pregunta da por hecho que existe; la segunda permite al modelo decir que no.
DataFrame.smart_merge() une dos DataFrames y detecta las claves de unión por ti comparando los nombres y los tipos de datos de las columnas. Úsalo cuando tus tablas comparten columnas clave con nombres un poco distintos, por ejemplo user_id y userId, ya que puede emparejarlas automáticamente.
Para tener control total sobre las claves y el tipo de unión, merge() sigue siendo la mejor opción.
La primera respuesta es una alucinación construida con piezas reales: pandas sí une DataFrames, y emparejar claves es algo razonable de querer. La pregunta aportó la premisa y el modelo aportó una función verosímil que encajara. Los modelos actuales detectan las premisas falsas más a menudo que los antiguos, pero una pregunta formulada como una suposición sigue empujando la respuesta hacia el acuerdo.
El segundo prompt hizo dos cosas. Preguntó si el método existe antes de preguntar qué hace, y dio permiso explícito para dudar. La respuesta además devolvió una forma de verificarlo, que es el hábito que conviene conservar: hasattr consulta la biblioteca real en una línea.
Responder desde la fuente, con citas
La forma más eficaz de reducir las alucinaciones es poner los datos en el prompt. Cuando la respuesta está en un texto que el modelo puede ver, no necesita recordar nada, y tú puedes comprobar cada afirmación con ese texto. Pedir una cita que respalde cada afirmación hace rápida la comprobación, y decirle al modelo qué decir cuando el documento no dice nada hace menos probable que rellene el hueco con una suposición.
Cuánto tiempo se conservan las copias de producción: 30 días. El documento da 30 días para las copias de seguridad en general y 7 días solo para staging. "Las copias de seguridad se ejecutan cada noche a las 02:00 UTC y se conservan durante 30 días."
Si puedo restaurar una yo mismo: No está en el documento. Solo dice cómo se solicitan las restauraciones: "Las restauraciones se solicitan en el canal #ops y normalmente se completan en menos de cuatro horas." Eso sugiere que las hace otro equipo, pero el documento no dice si existe la restauración por cuenta propia.
Fíjate en cómo trató la respuesta la segunda pregunta. Un modelo que respondiera desde su conocimiento general podría haber descrito un comando de restauración. Limitado al documento, separó lo que dice el texto de lo que solo sugiere. Desactiva la parte de restricciones y vuelve a preguntar para ver si la respuesta sigue manteniéndolos separados.
Las etiquetas <document> mantienen el material de origen separado de tus instrucciones; delimitadores y etiquetas XML explica por qué importa, y ingeniería de contexto cubre cómo darle a los modelos los documentos adecuados a gran escala. La misma idea es la que hay detrás de las apps de chat con búsqueda web o subida de archivos: la respuesta solo está tan fundamentada como las fuentes que hay en la conversación, así que lee la fuente citada, no solo su resumen.
Otros hábitos de prompting que ayudan
- Pregunta, no des por hecho. "¿Hay alguna forma de hacer X?" antes de "¿Cómo hago X?". Una premisa falsa es la alucinación más fácil de provocar.
- Pide la incertidumbre. "Marca cualquier afirmación de la que no estés seguro" te da una lista de sitios que comprobar primero. Las marcas no son probabilidades calibradas, pero a menudo señalan los puntos débiles.
- Pide fuentes que puedas abrir. Y luego ábrelas. Una cita que no has abierto no está comprobada, y un enlace puede existir y decir algo distinto de la afirmación que respalda.
- Empieza de cero cuando un chat se alarga. Los detalles del principio de un chat largo pueden mezclarse o perderse a medida que crece la conversación. Para los datos que importan, abre una conversación nueva con el material relevante pegado; tokens y ventana de contexto explica por qué.
- Pregunta una segunda vez, desde cero. Si dos respuestas independientes a la misma pregunta factual no coinciden, al menos una está mal. Que coincidan es una evidencia más débil, porque un modelo puede repetir el mismo error.
Verifica lo que importa
Ningún prompt elimina las alucinaciones, así que decide qué hay que comprobar según lo que cueste equivocarse. Una lluvia de ideas o un primer borrador pueden llevar algunos errores. Una cifra en un informe, una afirmación legal o médica, una cita atribuida a una persona o una referencia en tu trabajo necesitan una fuente primaria.
El código es la salida más fácil de verificar, porque ejecutarlo lo pone a prueba. Un método inventado falla con un AttributeError o su equivalente en cuanto se ejecuta la línea que lo llama, así que asegúrate de que tu prueba llega a esa línea. El caso arriesgado es el nombre de paquete inventado. Si un modelo te dice que instales un paquete del que nunca has oído hablar, comprueba que existe, que es el proyecto que crees y que se usa ampliamente antes de instalarlo. Investigadores de seguridad han mostrado que los modelos suelen inventar los mismos nombres de paquetes falsos una y otra vez, y un atacante que publique un paquete con uno de esos nombres consigue que instale su código cualquiera que siga la sugerencia. Las comprobaciones para el código escrito por IA están en prompts para escribir código.
Preguntas frecuentes
¿Qué es una alucinación de la IA?
Una alucinación de la IA es una respuesta de un modelo de lenguaje que suena segura y fluida pero es falsa o no tiene respaldo: un dato inventado, una cita de un artículo que no existe, una función que una biblioteca nunca tuvo. El modelo no miente a propósito. Produjo el texto que parecía más probable, y probable no es lo mismo que verdadero.
¿Por qué ChatGPT inventa cosas?
Los modelos de chat generan texto prediciendo el siguiente token, uno tras otro, a partir de patrones aprendidos durante el entrenamiento. A menos que haya una herramienta como la búsqueda web o un documento en la conversación, nada consulta la respuesta. Cuando la respuesta correcta era rara en los datos de entrenamiento, o no estaba, el modelo igualmente produce la continuación más verosímil, y una respuesta incorrecta verosímil se lee exactamente igual que una correcta.
¿Se puede evitar del todo que la IA alucine?
No. Los modelos actuales alucinan menos que los anteriores, y responder a partir de documentos que aportas o de resultados de búsqueda lo reduce todavía más, pero ningún prompt lo elimina. Trata cualquier dato, cifra, cita, referencia o API que importe como una afirmación que hay que comprobar con una fuente primaria.
¿Qué prompts reducen las alucinaciones de la IA?
Tres ayudan más que nada. Da permiso explícito para decir "no lo sé". Aporta el material de origen y pide al modelo que responda solo a partir de él. Pide una cita literal que respalde cada afirmación, para poder comprobarla con el texto. Evita las preguntas que dan algo por cierto, porque el modelo tiende a seguirle la corriente a esa suposición.
¿Qué ejemplos hay de alucinaciones de la IA al programar?
Llamar a un método que una biblioteca no tiene, pasar una opción que no existe, importar un paquete que nadie publicó y describir como actual el comportamiento de una versión antigua de una biblioteca. El código hace que muchas de ellas sean fáciles de detectar, porque un método inventado falla en cuanto se ejecuta la línea que lo llama. Los nombres de paquetes inventados son el caso peligroso: comprueba que un paquete existe y es conocido antes de instalarlo.