🧮 Computational Mathematics

Inicio · Parte 16 — Matemática de Transformers, modelos generativos, grafos y RL

329 — Modelado autoregresivo

experto clase 9 de 20 4 horas demostración autoregressive_modeling

Un modelo de lenguaje es la regla de la cadena de la probabilidad, entrenada por verosimilitud.

Fórmulas

P(x₁…xₙ) = Π P(xᵢ | x₁…xᵢ₋₁)
log P = Σ log P(xᵢ | contexto)
perplejidad = exp(−(1/n)·Σ log P)

Desarrollo

Un modelo autorregresivo descompone la probabilidad de una secuencia en un producto de condicionales, cada uno prediciendo el siguiente elemento a partir de los anteriores. Es exactamente la regla de la cadena de la clase 183 aplicada a secuencias, sin ninguna aproximación: la factorización es exacta.

El entrenamiento es máxima verosimilitud, y por tanto la pérdida es entropía cruzada, como se dedujo en la clase 263. Se trabaja con logaritmos por dos razones: convierte el producto en suma y evita el subdesbordamiento, que con secuencias de miles de tokens sería inevitable.

La perplejidad es la exponencial de la entropía cruzada media, y su interpretación es útil: el número efectivo de opciones equiprobables entre las que el modelo duda. Una perplejidad de 2,55 significa que el modelo está tan indeciso como si eligiera entre 2,55 alternativas igualmente probables. Es la métrica estándar y permite comparar modelos, con la precaución de que depende del tokenizador.

La consecuencia arquitectónica es la máscara causal de la clase 326: para que la factorización sea legítima, la predicción del token i solo puede depender de los anteriores. Y la consecuencia práctica es que el mismo modelo sirve para evaluar la probabilidad de un texto dado y para generar texto nuevo muestreando de las condicionales.

Ejemplo trabajado

Descomposición de una secuencia de tres tokens.

secuencia: ["el", "gato", "duerme"]

paso  token     contexto              P(token|contexto)
  1   "el"      [<inicio>]                  0,40
  2   "gato"    [<inicio>, el]              0,30
  3   "duerme"  [<inicio>, el, gato]        0,50

probabilidad conjunta: 0,40 × 0,30 × 0,50 = 0,06
log probabilidad: −2,813411
perplejidad: exp(2,813411/3) = 2,554365

Lectura: el modelo duda como si eligiera entre
2,55 opciones equiprobables por token.

Con logaritmos: −0,916 − 1,204 − 0,693 = −2,813
Sin logaritmos, 1000 tokens darían un producto
del orden de 1e-500: cero en punto flotante.

Qué calcula el laboratorio

Modelado autoregresivo: la regla de la cadena de la probabilidad.

python classes/part-16-matematica-de-transformers-modelos-generativos-grafos-y-rl/329-modelado-autoregresivo/lab.py
compmath run 329

Salidas del laboratorio (9)

Muestra de la ejecución real

{
  "secuencia": [
    "el",
    "gato",
    "duerme"
  ],
  "descomposicion": "P(x₁…xₙ) = Π P(xᵢ | x₁…xᵢ₋₁)",
  "detalle": [
    {
      "paso": 1,
      "token": "el",
      "contexto": [
        "<inicio>"
      ],
      "P(token|contexto)": 0.4,
      "log_prob": -0.916291
    },
    {
      "paso": 2,
      "token": "gato",
      "contexto": [
        "<inicio>",
        "el"
      ],
      "P(token|contexto)": 0.25,
      "log_prob": -1.386294
    },
    {
      "paso": 3,
      "token": "duerme",
      "contexto": [
        "<inicio>",
        "el",
        "gato"
      ],
      "P(token|contexto)": 0.6,
      "log_prob": -0.510826
    }
  ],
  "probabilidad_conjunta": 0.06,
  "log_probabilidad": -2.813411,
  "perplejidad": 2.554365
}

Errores comunes

Dónde se usa

Modelos de lenguaje, generación de código, síntesis de audio, modelos de series temporales y evaluación de modelos generativos.

Idea rectora de la parte

El ELBO acota inferiormente la log-verosimilitud con un término de reconstrucción y uno KL.

Error a evitar

Normalizar el Laplaciano de un grafo con nodos aislados sin tratar la división por cero.

Conexión con IA

Esta parte es la traducción matemática directa de los papers que definen el estado del arte actual.

Bibliografía de la clase

Archivos de la clase