Inicio · Parte 16 — Matemática de Transformers, modelos generativos, grafos y RL
P(x₁…xₙ) = Π P(xᵢ | x₁…xᵢ₋₁)
log P = Σ log P(xᵢ | contexto)
perplejidad = exp(−(1/n)·Σ log P)
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.
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.
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
secuenciadescomposiciondetalleprobabilidad_conjuntalog_probabilidadperplejidadpor_que_en_logentrenamientoinferencia{
"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
}
Modelos de lenguaje, generación de código, síntesis de audio, modelos de series temporales y evaluación de modelos generativos.
Esta parte es la traducción matemática directa de los papers que definen el estado del arte actual.