Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Modelos de lenguaje, Unidad 3 — Evaluación de modelos de lenguaje, 3.1 — Perplejidad ·

Comparación entre modelos

Comparación entre modelos

Introducción

La perplejidad es una métrica clave para evaluar la calidad y eficacia de los modelos de lenguaje. Es especialmente valiosa cuando se necesita medir cuán bien un modelo puede predecir la probabilidad de nuevas secuencias de texto. En este artículo, exploraremos cómo funciona la perplejidad, sus aplicaciones en la comparación entre modelos, y proporcionaremos algunos errores comunes a evitar durante su implementación.

Explicación principal

La perplejidad mide cuán probable es que un modelo prediga una secuencia de texto dada. Es una medida inversa: cuanto más baja sea la perplejidad, mejor será el rendimiento del modelo en predecir nuevas secuencias de texto. La fórmula para calcular la perplejidad \(PPL\) se define como sigue:

\[ PPL = \exp\left(-\frac{1}{N} \sum_{i=1}^{N} \log(P(y_i | y_1, ..., y_{i-1}))\right) \]

donde:

  • \( N \) es el número total de tokens en la secuencia.
  • \( P(y_i | y_1, ..., y_{i-1}) \) es la probabilidad condicionada del token \(y_i\) dado los tokens anteriores.

Ejemplo

Vamos a considerar un ejemplo simple para ilustrar esto. Imagina que tenemos una secuencia de texto con tres palabras: "Hoy", "es", "bonito". Si el modelo predeciera la probabilidad de estas palabras en la siguiente forma:

  • \( P("Hoy" | \cdot) = 0.9 \)
  • \( P("es" | "Hoy") = 0.85 \)
  • \( P("bonito" | "es") = 0.75 \)

La perplejidad se calcularía como:

\[ PPL = \exp\left(-\frac{1}{3} (\log(0.9) + \log(0.85) + \log(0.75))\right) \]

Esto da una perplejidad aproximada de 2.4, lo que indica la probabilidad media de que el modelo prediga correctamente cada palabra en la secuencia.

Errores típicos / trampas

  1. Uso incorrecto de logaritmos: Asegúrate de usar correctamente los logaritmos para calcular la perplejidad, ya que esta métrica se basa en el promedio ponderado del logaritmo negativo.
  1. Mala elección de secuencias de texto: La perplejidad depende directamente de las secuencias de texto utilizadas para evaluar al modelo. Elige ejemplos que sean relevantes y representativos del dominio en el que se aplica el modelo.
  1. No normalizar los datos: Asegúrate de normalizar tus datos antes de calcular la perplejidad, especialmente si estás comparando modelos entrenados con diferentes conjuntos de datos.

Checklist accionable

  1. Verifica la implementación del logaritmo: Comprueba que estás utilizando correctamente los logaritmos para calcular la perplejidad.
  2. Selecciona secuencias representativas: Utiliza una variedad de ejemplos que sean relevantes y representativos del dominio en el que se aplica el modelo.
  3. Normaliza tus datos: Asegúrate de normalizar los datos antes de calcular la perplejidad, especialmente si estás comparando modelos entrenados con diferentes conjuntos de datos.
  4. Compara con un modelo aleatorio: Para obtener una medida más precisa, compara tu modelo con un modelo aleatorio que predecirá las palabras al azar.
  5. Analiza las secuencias donde falla el modelo: Identifica y analiza las secuencias en las que el modelo muestra una perplejidad alta para entender mejor sus limitaciones.

Siguientes pasos

Pasos siguientes para mejorar la comparación entre modelos de lenguaje:

  1. Explicar la arquitectura Transformer: Aprende sobre la arquitectura Transformer, que ha revolucionado el campo de los modelos de lenguaje.
  2. Entender LLMs (Language Models): Investiga más en los LLMs y cómo se aplican a diferentes tareas de procesamiento del lenguaje natural.
  3. Implementar un sistema RAG: Conoce sobre los sistemas Retrieval-Augmented Generation, que combinan la recuperación de información con generación de texto.

Seguimos mejorando y aprendiendo en el campo de los modelos de lenguaje. La perplejidad es solo una parte del puzzle, pero es crucial para evaluar el rendimiento de nuestros modelos.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).