Cómo la puntuación basada en la entropía puede indicarte cuándo tu modelo está inventándose cosas —y en qué puntos—: todo ello incluido en «artefactual», nuestro paquete de Python.
Nota: Este artículo es una continuación del artículo de nuestros amigos de Ardian, en el que se detalla lo importante AI responsable para las instituciones financieras. ¡No te lo pierdas!
El problema de las alucinaciones
Los modelos de lenguaje a gran escala tienen unas capacidades asombrosas. Resumen, traducen, razonan y programan (mejor que yo). Pero, a diferencia de mí, también se han hecho famosos por inventarse hechos con una seguridad inquietante.
En la literatura sobre el procesamiento del lenguaje natural (PLN), se entiende por «alucinación» cualquier contenido generado por un modelo que sea objetivamente incorrecto, carezca de sentido o no sea fiel a una fuente proporcionada, aunque parezca perfectamente plausible. Las consecuencias van desde lo benigno (una respuesta errónea a una pregunta de trivial) hasta lo grave (una cita jurídica inventada, una dosis incorrecta de un medicamento). A medida que las organizaciones integran los LLM en los sistemas de producción, la pregunta pasa de ser «¿puede este modelo generar texto útil?» a «¿podemos confiar en lo que acaba de decir?».
Veamos un ejemplo concreto. Trabajas en una entidad financiera y le preguntas a tu LLM local:
«¿Cuál fue la facturación neta de Emerson Electric en 2023?»

El modelo responde: «Emerson Electric declaró unos ingresos netos de aproximadamente 15 200 millones de dólares para el ejercicio fiscal 2023». Suena razonable. Pero, ¿es correcto? No tienes abierto el informe anual. No dispones de un dato de referencia con el que compararlo. Solo tienes el resultado del modelo... y la duda.
Este es el contexto en el que trabajamos. Sin oráculo. Sin respuesta de referencia en el momento de la inferencia. Solo una respuesta del modelo de lenguaje grande (LLM) y los metadatos que genera al producirla. El objetivo: cuantificar la probabilidad de que este resultado sea fruto de una alucinación, a partir de una única pasada de generación.
Detectar las alucinaciones: es más difícil de lo que parece
El método de fuerza bruta
Una idea lógica es plantear al modelo la misma pregunta varias veces y comprobar si las respuestas coinciden. Si cinco de cada seis ejecuciones dan como resultado «15 200 millones de dólares» y una da «18 700 millones de dólares», el consenso ofrece cierta confianza. Este es el principio en el que se basan métodos como SelfCheckGPT, que miden la coherencia entre múltiples resultados muestreados: un enfoque «tipo Monte Carlo» para la detección de alucinaciones.
Funciona. Pero tiene dos inconvenientes importantes:
- Coste. Cada generación adicional multiplica tu presupuesto de inferencia. En el caso de SelfCheckGPT con 10 muestras, pagas aproximadamente 10 veces el coste de computación, más el coste de un modelo de similitud semántica. A gran escala, esto resulta prohibitivo.
- Granularidad. Los métodos de múltiples intentos operan a nivel de secuencia. Te indican que «esta respuesta parece poco fiable», pero no te dicen qué parte de la respuesta es problemática. Una respuesta podría tener una precisión del 90 %, pero contener una sola cifra inventada en medio. Te gustaría saber dónde está.
Estas limitaciones nos llevaron a buscar una señal diferente: una que fuera económica, de un solo paso y que funcionara a nivel de token (las unidades individuales de las palabras que el modelo de lenguaje grande manipula internamente).
La señal ya está ahí
Cuando un modelo de lenguaje grande (LLM) genera texto, no se limita a producir tokens. En cada paso, calcula una distribución de probabilidad sobre todo su vocabulario: «dada la solicitud y todo lo que he generado hasta ahora, ¿qué probabilidad hay de que cada uno de los posibles tokens siguientes sea el correcto?».Se selecciona el token ganador. El resto se descarta. Pero esas probabilidades (y, más concretamente, su dispersión) contienen información sobre la confianza interna del modelo.
Si el modelo está muy seguro, la mayor parte de la masa de probabilidad se concentra en un único elemento. Si el modelo duda, la probabilidad se distribuye entre muchos candidatos. Esta distribución es precisamente lo que mide la entropía.
Entropía: un breve desvío
La entropía es una magnitud de la teoría de la información que mide la incertidumbre de una distribución de probabilidad. El concepto es sencillo. Imagina tres cajas. Una contiene una galleta. Tienes que adivinar cuál es.

- Escenario A: Sabes que la galleta está en la caja 2. Tu incertidumbre es nula. Entropía = 0.
- Escenario B: No tienes ni idea. Cada caja tiene una probabilidad de 1/3. Tu incertidumbre es máxima. Entropía = log₂(3) ≈ 1,58 bits.
Ahora sustituye las casillas por tokens y la galleta por la siguiente palabra «correcta». En cada paso de la generación, un modelo de lenguaje grande (LLM) se enfrenta a esta misma disyuntiva, salvo que, en lugar de tres casillas, elige entre un vocabulario de más de 100 000 tokens. Cuando el modelo está seguro, un token predomina y la entropía es baja. Cuando duda, la entropía aumenta.

La distribución de probabilidad se presenta en dos casos diferentes.
La idea clave es que una alta entropía en una posición determinada del token se correlaciona con una mayor probabilidad de error en esa posición. El modelo nos está indicando, a través de su distribución de probabilidad, que no está seguro de lo que vendrá a continuación. Solo tenemos que prestar atención.
De la entropía a las puntuaciones de alucinación
EPR: Tasa de producción de entropía
Nuestra primera métrica, la EPR (tasa de producción de entropía), es directa. Para cada token de la secuencia generada, calculamos la entropía de las K probabilidades más altas de los tokens predichos por el modelo. A continuación, calculamos la media de toda la secuencia. Esto nos da una única cifra que refleja la vacilación media del modelo a lo largo de toda la respuesta.
Se trata de una métrica no supervisada: no requiere etiquetas. En nuestros experimentos (publicados en ECIR 2026), el EPR por sí solo alcanza puntuaciones ROC-AUC de entre 74 y 81 en TriviaQA con cuatro modelos de lenguaje grande (LLM) diferentes. No está mal para una métrica que, en esencia, no cuesta nada más allá de una sola pasada de generación.
Pero podemos hacerlo mejor.
WEPR: Tasa de producción de entropía ponderada
La entropía bruta trata todos los rangos de tokens por igual. La contribución a la entropía del token en primer lugar (el más probable) y del token en décimo lugar se ponderan de la misma manera. En la práctica, la forma en que se distribuye la incertidumbre entre los rangos contiene información discriminativa.
WEPR (EPR ponderado) aprende un conjunto de pesos para reequilibrar estas contribuciones. Utiliza dos señales:
- La entropía media ponderada a lo largo de la secuencia, que refleja la vacilación general.
- La contribución máxima de entropía por rango: detectando picos de incertidumbre. Un solo momento de gran vacilación puede ser el rasgo característico de una alucinación, incluso si el resto de la secuencia se generó con seguridad.
Estas características se introducen en una regresión logística, entrenada con un conjunto de datos etiquetados. El resultado de la función sigmoide es una probabilidad calibrada:
«Esta respuesta tiene un 86 % de probabilidades de contener una alucinación».

Además de la clasificación, WEPR también genera puntuaciones a nivel de token. Cada token de la secuencia generada recibe su propia probabilidad de alucinación, lo que permite identificar con exactitud qué partes de una respuesta merecen un análisis más detallado. Esto se calcula en tiempo real, token a token, a medida que el modelo genera la respuesta, sin necesidad de esperar a obtener el resultado completo.

¿Y las etiquetas?
Un método supervisado requiere anotaciones. Etiquetar a mano miles de pares de preguntas y respuestas es un proceso lento. Por eso utilizamos un enfoque en el que un modelo de lenguaje grande (LLM) actúa como evaluador: un modelo independiente compara cada respuesta generada con la respuesta correcta conocida y la etiqueta como correcta o incorrecta.
¿Es fiable? Lo hemos validado comparándolo con evaluadores humanos. Un grupo de 15 investigadores etiquetó manualmente más de 1 300 pares de respuestas. La concordancia entre el sistema de evaluación automatizado y los evaluadores humanos alcanzó el 95,7 %, con un coeficiente Kappa de Cohen de 0,90. Las etiquetas automatizadas constituyen un indicador fiable del juicio humano y son lo suficientemente sólidas como para entrenar un detector de alucinaciones.
Te presentamos artefactual: ahora te toca a ti jugar.
Hemos reunido todo esto en una biblioteca de Python de código abierto: artefactual.
La biblioteca incluye pesos de calibración precalculados para varias familias de modelos (Mistral-Small, Falcon-3, Phi-4, Ministral-8B), por lo que puedes empezar a evaluar los resultados de inmediato sin necesidad de ejecutar ningún proceso de entrenamiento. Analiza los resultados de vLLM, la API de completado de chat de OpenAI y la API de respuestas de OpenAI de forma inmediata.
Este es el uso más sencillo posible:

Las puntuaciones a nivel de token resultan especialmente útiles para la visualización. A cada token de la respuesta se le asigna su propia probabilidad de alucinación, que se puede representar mediante un degradado de color: verde para indicar confianza y rojo para indicar incertidumbre. De un solo vistazo, se puede ver exactamente qué partes de una respuesta merecen un análisis más detallado.
En un proceso RAG
Esto cobra relevancia en la «generación aumentada por recuperación». Imagina un proceso en el que se recuperan documentos de una base de conocimientos y se proporcionan como contexto a un modelo de lenguaje grande (LLM). Si la recuperación falla (documentos erróneos, páginas que faltan, contexto incompleto, etc.), el modelo intentará llenar los vacíos a partir de su memoria paramétrica, y ahí es donde surgen las alucinaciones.
Con «artefactual», puedes añadir una puerta:

Nuestro artículo científico en pocas palabras: lo que hemos descubierto
Probamos los modelos EPR y WEPR en cuatro modelos de lenguaje a gran escala (LLM) (Mistral-Small-24B, Falcon-3–10B, Phi-4 y Ministral-8B) en tres tareas: detección de alucinaciones en TriviaQA, generalización a WebQuestions y detección de contexto faltante en un entorno RAG financiero.
Algunos aspectos destacados:
- WEPR supera sistemáticamente a los métodos existentes. Supera tanto a SelfCheckGPT (un método de múltiples pasadas que requiere 10 veces más recursos computacionales) como a HalluDetect (un competidor de una sola pasada) en casi todas las combinaciones de modelos y conjuntos de datos.
- No hacen falta muchas probabilidades logarítmicas. El rendimiento se estabiliza en torno a K = 8-10 probabilidades logarítmicas accesibles por token. Incluso con un acceso limitado a la API, la señal sigue ahí.
- Se generaliza. El modelo WEPR, entrenado con TriviaQA, se adapta bien a WebQuestions e incluso a un corpus financiero especializado, detectando casos en los que un sistema RAG generaba respuestas sin el contexto suficiente.
- Es rápido. La evaluación tarda unos 80 microsegundos por secuencia. Compáralo con los más de 10 segundos que tarda SelfCheckGPT.
En nuestros experimentos sobre una tarea RAG en el ámbito financiero (análisis reports anuales 10-K reports conjunto de datos ArGiMi-Ardian), WEPR alcanzó un valor de hasta 93,6 en el área bajo la curva ROC (AUC) a la hora de detectar respuestas generadas sin el contexto adecuado. Esto constituye una clara indicación para iniciar una segunda ronda de recuperación.
Nota sobre el acceso a la probabilidad logarítmica:
Todo lo descrito anteriormente depende de un único factor: el acceso a las probabilidades de registro a nivel de token del modelo. Esto es lo que nos permite calcular la entropía y, por extensión, las puntuaciones de alucinación.
Hoy en día, este acceso no está garantizado. Anthropic no facilita las probabilidades logarítmicas a través de su API. OpenAI las proporciona para los modelos sin capacidad de razonamiento: se puede solicitar «top_logprobs» con GPT-5.4 o GPT-5.4-mini, pero solo si se establece el nivel de razonamiento en «none». Por otro lado, Google permite el acceso a todas las probabilidades logarítmicas con su API «generate_content».
Los modelos de peso abierto que se ejecutan a través de vLLM o motores de inferencia similares ofrecen acceso completo.
Esto es importante. Las probabilidades logarítmicas son una señal sencilla y rica en información. Su obtención no supone ningún coste adicional (el modelo las calcula de todos modos durante la generación) y permiten aplicar toda una clase de métodos de cuantificación de la incertidumbre, incluido el nuestro. Restringir el acceso a ellas empuja a los usuarios a confiar ciegamente en los resultados del modelo o a recurrir a costosos métodos de detección de múltiples disparos.
Si trabajas con modelos de lenguaje grande (LLM) en entornos de producción y te preocupa la fiabilidad de los resultados, la disponibilidad de las probabilidades logarítmicas debería formar parte de tus criterios de selección de modelos. Y si eres un proveedor de modelos: ofrecer las probabilidades logarítmicas es una de las formas más económicas de aumentar la fiabilidad de tus modelos.

BLOG






