Reading the Math in AI Papers · Parte 4 de 4

Leer el ELBO, la pérdida de difusión, pass@k y las leyes de escalado

Traducción automática

Este artículo se tradujo automáticamente a partir de la versión original en inglés.

Esta parte explica qué entrenan dos modelos generativos y qué indican cuatro medidas habituales. Se dirige a ingenieros que quieren entender el ELBO y la pérdida de difusión o comparar artículos que presentan pass@k, perplejidad, complejidad computacional y leyes de escalado. Los diagramas muestran los cálculos; las ecuaciones identifican exactamente qué se optimiza o se cuenta.

Las secciones sobre modelos generativos se apoyan unas en otras. Las de métricas pueden leerse de forma independiente. La parte 1 ofrece una referencia de notación si hace falta. Todos los logaritmos de aquí son naturales.

Modelos generativos: el ELBO y la difusión

Un modelo de lenguaje puede asignar una probabilidad a una respuesta proporcionada token a token. Otros modelos generativos introducen variables ocultas: valores intermedios que ayudan a generar datos, pero no aparecen en el dataset de entrenamiento. Calcular la probabilidad de una imagen puede exigir entonces promediar sobre demasiados valores ocultos posibles. Los dos métodos siguientes entrenan sin calcular esa media de forma exacta.

ELBO: una cota inferior que se puede calcular

Un autocodificador variacional (VAE) genera una imagen a partir de un vector latente zz: una lista de números. Un ejemplo sencillo de dos dimensiones es z=(−0.4,1.2)z=(-0.4,1.2). Estos números son entradas de una red neuronal, no instrucciones de un lenguaje de programación. El vector es latente porque el dataset de entrenamiento contiene imágenes, pero no proporciona los valores zz correspondientes.

Para generar una imagen en el VAE estándar descrito aquí, se extrae cada componente de zz de forma independiente de una distribución normal con media 0 y desviación típica 1. Extraer valores según una distribución se llama muestreo. Esta distribución fija sobre vectores es la distribución a priori, escrita p(z)p(z).

El decodificador es una red neuronal entrenada. Sus pesos aprendidos transforman zz en los parámetros de una distribución sobre los valores de los píxeles. Por ejemplo, un decodificador para imágenes de 28 por 28 cuyos píxeles son 0 o 1 puede producir 784 probabilidades, una por píxel. Cada probabilidad indica la posibilidad de que su píxel sea 1. Al muestrear esos valores de píxel se obtiene una imagen. Los componentes del vector determinan las probabilidades de los píxeles a través de la red entrenada; no son píxeles. Kingma y Welling, §3 y apéndice C, describen esta configuración estándar.

Durante el entrenamiento, una imagen xx procede del dataset. Un codificador, otra red neuronal, recibe esta imagen como entrada. En la configuración gaussiana utilizada aquí, predice una media y una desviación típica para cada componente de zz. Juntas definen qϕ(z∣x)q_\phi(z\mid x), una distribución sobre vectores latentes para esta imagen. Muestreamos zz de esa distribución en lugar de la distribución a priori. El decodificador asigna entonces la probabilidad pθ(x∣z)p_\theta(x\mid z) a la imagen original usando el vector muestreado.

El entrenamiento recompensa al decodificador por asignar un logaritmo de probabilidad alto a la imagen observada. También resta la divergencia KL: una medida no negativa de cuánto difiere la distribución de vectores del codificador de la distribución a priori fija. El diagrama muestra ambos términos y la distinta procedencia de los vectores durante la generación.

El entrenamiento del VAE parte de una imagen observada, usa un codificador para muestrear un vector latente numérico y pide al decodificador que puntúe esa misma imagen. Una segunda comparación mantiene la distribución de vectores del codificador cerca de la distribución a priori fija. La generación muestrea un vector directamente de la distribución a priori y usa el decodificador entrenado para obtener una distribución de píxeles, de la que muestrea una imagen nueva.El entrenamiento del VAE parte de una imagen observada, usa un codificador para muestrear un vector latente numérico y pide al decodificador que puntúe esa misma imagen. Una segunda comparación mantiene la distribución de vectores del codificador cerca de la distribución a priori fija. La generación muestrea un vector directamente de la distribución a priori y usa el decodificador entrenado para obtener una distribución de píxeles, de la que muestrea una imagen nueva.

La puntuación de entrenamiento tiene dos términos:

L(x)=Eqϕ(z∣x)[log⁡pθ(x∣z)]−DKL(qϕ(z∣x)∥p(z)).\begin{aligned} \mathcal L(x)&=\mathbb E_{q_\phi(z\mid x)}[\log p_\theta(x\mid z)]\\ &\quad-D_{\mathrm{KL}}(q_\phi(z\mid x)\Vert p(z)). \end{aligned}

El primer término promedia el logaritmo de la probabilidad de la imagen sobre vectores muestreados del codificador. El segundo es la penalización KL. Los símbolos ϕ\phi y θ\theta denotan los parámetros aprendidos del codificador y del decodificador. Ambas redes aprenden a aumentar esta puntuación; una implementación que minimiza una pérdida utiliza su negativo.

Es la cota inferior de la evidencia, o ELBO. La evidencia pθ(x)p_\theta(x) es la probabilidad del modelo para la imagen observada, promediada sobre todos los vectores latentes posibles. Kingma y Welling, §2.2, ecuaciones (1)–(3), la relacionan con la puntuación de entrenamiento:

log⁡pθ(x)=L(x)+DKL(qϕ(z∣x)∥pθ(z∣x))≥L(x).\begin{aligned} &\log p_\theta(x)=\mathcal L(x)\\ &\quad+D_{\mathrm{KL}}\bigl(q_\phi(z\mid x)\Vert p_\theta(z\mid x)\bigr)\\ &\geq\mathcal L(x). \end{aligned}

Aquí pθ(z∣x)p_\theta(z\mid x) es la distribución a posteriori verdadera: la distribución del modelo sobre los vectores latentes dada esta imagen. El término KL no negativo es la diferencia entre el ELBO y el logaritmo de la evidencia; vale cero cuando el codificador coincide con esa distribución a posteriori. Esta identidad explica la cota. La penalización de entrenamiento calculable del diagrama compara en cambio el codificador con la distribución a priori conocida p(z)p(z), por lo que un paso de entrenamiento no requiere la distribución a posteriori desconocida.

Un ELBO mayor no demuestra por sí solo que el decodificador haya mejorado. Un codificador mejor puede hacer más precisa la cota sin modificar el decodificador. Además, la cota se aplica a la esperanza exacta: una estimación con unos pocos vectores muestreados puede superar el logaritmo de la evidencia en una extracción individual. La lectura detallada sobre el ELBO deriva la cota y la comprueba con un ejemplo desarrollado.

DDPM: predecir el ruido añadido

En DDPM, las variables ocultas son versiones ruidosas de una imagen. Durante el entrenamiento, toma una imagen limpia del dataset y extrae ruido aleatorio: un número de una normal estándar por cada coordenada de la imagen. Elige aleatoriamente un paso tt de un calendario de ruido fijo, que establece las proporciones de imagen y ruido que se mezclan. La red ve esta imagen alterada y tt; su tarea es predecir la muestra de ruido que acabamos de añadir.

La generación utiliza repetidamente la red entrenada. Parte de ruido aleatorio, predice el ruido en el nivel actual y usa esa predicción para dar un pequeño paso de eliminación de ruido. Sus pesos permanecen fijos durante este proceso. El entrenamiento dispone, por tanto, de un objetivo conocido que proporciona el error utilizado para actualizar la red; la generación usa la red aprendida para producir una imagen a través de muchos pasos.

Durante el entrenamiento se combinan una imagen limpia y ruido conocido en un nivel elegido aleatoriamente. La red predice el ruido añadido y compara su predicción con la muestra conocida. Durante la generación, el proceso parte de ruido y usa la red repetidamente para obtener imágenes con menos ruido.Durante el entrenamiento se combinan una imagen limpia y ruido conocido en un nivel elegido aleatoriamente. La red predice el ruido añadido y compara su predicción con la muestra conocida. Durante la generación, el proceso parte de ruido y usa la red repetidamente para obtener imágenes con menos ruido.

Escribir la entrada ruidosa como xtx_t facilita la lectura de la pérdida:

xt=αˉtx0+1−αˉtϵLsimple=Et,x0,ϵ[∥ϵ−ϵθ(xt,t)∥2].\begin{aligned} x_t&=\sqrt{\bar\alpha_t}x_0+\sqrt{1-\bar\alpha_t}\epsilon\\ L_{\mathrm{simple}}&=\mathbb E_{t,x_0,\epsilon}\left[\lVert\epsilon-\epsilon_\theta(x_t,t)\rVert^2\right]. \end{aligned}

x0x_0 es una imagen limpia de entrenamiento, tt un paso elegido aleatoriamente y ϵ\epsilon una muestra nueva de ruido normal estándar. La red ϵθ\epsilon_\theta, con parámetros aprendidos θ\theta, predice esa muestra. La norma al cuadrado suma los errores de predicción al cuadrado sobre las coordenadas de la imagen; la esperanza promedia sobre imágenes, pasos y muestras de ruido.

El calendario fijo define αs=1−βs\alpha_s=1-\beta_s y αˉt=∏s=1tαs\bar\alpha_t=\prod_{s=1}^{t}\alpha_s, donde βs\beta_s es la varianza de ruido añadida en el paso ss. La barra denota este producto, no una media. Establece los dos coeficientes de la mezcla del diagrama: αˉt\sqrt{\bar\alpha_t} para la imagen y 1−αˉt\sqrt{1-\bar\alpha_t} para el ruido. Cerca de 1 significa principalmente imagen; cerca de 0, principalmente ruido.

El entrenamiento puede construir xtx_t directamente; no necesita ejecutar todos los pasos de ruido anteriores. El DDPM original usa 1.000 niveles y muestrea los pasos de entrenamiento de manera uniforme. Véanse la ecuación (4), la ecuación (14) y el algoritmo 1, o la lectura detallada sobre DDPM.

El artículo deriva una cota variacional relacionada con el ELBO y después cambia la ponderación de sus términos para obtener esta pérdida práctica. La pérdida simplificada no es en sí misma la cota de verosimilitud original. Durante la generación, el algoritmo 2 reescala la imagen actual, resta un múltiplo del ruido predicho y, salvo en el último paso, añade ruido nuevo. No basta con restar la predicción una vez para recuperar una imagen limpia.

Métricas y afirmaciones sobre costes

Un objetivo de entrenamiento, una puntuación de evaluación y una estimación de costes responden a preguntas distintas. Las secciones siguientes muestran qué cuenta cada cifra presentada y qué debe mantenerse fijo para que una comparación resulte útil.

Pass@k: la probabilidad de que al menos una de k muestras pase las pruebas

pass@k pregunta si al menos uno de kk programas generados pasa las pruebas. Permite varios intentos; no significa que la primera respuesta del modelo sea correcta.

El artículo de Codex muestrea nn programas de forma independiente para cada problema y cuenta los cc que pasan las pruebas. Después considera todos los conjuntos posibles de kk muestras. Se resta de uno la fracción de conjuntos que solo contienen fallos:

pass@⁡k^=1−(n−ck)(nk).\widehat{\operatorname{pass@}k}=1-\frac{\binom{n-c}{k}}{\binom nk}.

La notación (nk)\binom nk cuenta las formas de elegir kk elementos de nn sin reemplazo. Es la estimación para un problema; la puntuación presentada la promedia entre problemas. Con cinco muestras, dos que pasan y tres que fallan, hay diez pares. Solo tres contienen dos fallos, por lo que el pass@2 estimado es 1−3/10=0.71-3/10=0.7.

La cuadrícula muestra esos diez pares en este ejemplo hipotético. Los cinco programas responden al mismo problema y se ejecutan con las mismas pruebas. Un par tiene éxito en cuanto cualquiera de sus dos programas pasa las pruebas.

Cinco programas muestreados llevan las etiquetas A a E. A y B pasan; C, D y E fallan. La cuadrícula triangular superior contiene los diez pares posibles. Siete incluyen A o B y tienen éxito. Solo CD, CE y DE no contienen ningún programa que pase.Cinco programas muestreados llevan las etiquetas A a E. A y B pasan; C, D y E fallan. La cuadrícula triangular superior contiene los diez pares posibles. Siete incluyen A o B y tienen éxito. Solo CD, CE y DE no contienen ningún programa que pase.

Se usa este estimador con recuentos enteros 0≤c≤n0\leq c\leq n y 1≤k≤n1\leq k\leq n. Si fallan menos de kk muestras, cada conjunto contiene una muestra que pasa y la estimación es 1. El atajo tentador 1−(1−c/n)k1-(1-c/n)^k es sesgado; en este ejemplo da 0.64. El artículo de Codex, §2.1 y figura 3, proporciona el estimador y una implementación numéricamente estable; la lectura detallada explica por qué funciona.

Se deben comparar el mismo kk, los mismos problemas, pruebas, prompts y ajustes de generación. Pasar las pruebas no demuestra la corrección para cualquier entrada. Un sistema desplegado también necesita una forma de seleccionar un candidato que pase, como ejecutar esas pruebas; generar varias respuestas no identifica por sí solo la buena.

Perplejidad: el número efectivo de opciones por token

La perplejidad evalúa las probabilidades que un modelo de lenguaje asigna a los siguientes tokens reales de un texto proporcionado. En cada posición se da al modelo el texto anterior, se obtienen sus probabilidades sobre los siguientes tokens posibles y se lee la probabilidad del token que realmente sigue. No hace falta ninguna respuesta generada. La puntuación convierte el promedio del logaritmo negativo de la probabilidad en una escala más interpretable:

PPL⁡=exp⁡(−1T∑t=1Tlog⁡pθ(yt∣y<t)).\operatorname{PPL}=\exp\left(-\frac1T\sum_{t=1}^{T}\log p_\theta(y_t\mid y_{<t})\right).

TT es el número de tokens, yty_t el token observado e y<ty_{<t} su contexto anterior. Si el modelo asigna a cada token observado la probabilidad 1/41/4, la perplejidad es 4. Si las probabilidades difieren, la puntuación usa su media geométrica. Las probabilidades 0.5, 0.2 y 0.1 dan una perplejidad aproximada de 4.64: la misma puntuación que asignar a cada token la probabilidad 1/4.641/4.64.

Los gráficos usan probabilidades inventadas para tres posiciones sucesivas. Cada barra procede de una predicción distinta del siguiente token, así que las barras no tienen que sumar 1. El gráfico de la derecha las sustituye por un valor constante; los productos coinciden, por lo que las perplejidades también.

Cada barra es la probabilidad del siguiente token real en una posición distinta del texto. Dos gráficos comparan las probabilidades inventadas 0.5, 0.2 y 0.1 con tres probabilidades iguales de aproximadamente 0.215. Ambos productos son 0.01 y ambas perplejidades son aproximadamente 4.64. La línea discontinua compartida marca la media geométrica de las probabilidades.Cada barra es la probabilidad del siguiente token real en una posición distinta del texto. Dos gráficos comparan las probabilidades inventadas 0.5, 0.2 y 0.1 con tres probabilidades iguales de aproximadamente 0.215. Ambos productos son 0.01 y ambas perplejidades son aproximadamente 4.64. La línea discontinua compartida marca la media geométrica de las probabilidades.

Un valor menor es mejor con el mismo texto de evaluación, tokenizador y procedimiento de contexto. Significa que el modelo asignó mayor probabilidad al texto observado, no que sus respuestas generadas sean más útiles o correctas. Los tokenizadores dividen el texto de formas distintas, y el tratamiento de la ventana de contexto cambia las probabilidades. La guía de perplejidad de Hugging Face explica estas condiciones de comparación.

Big-O: cómo crece el coste con la longitud de secuencia

La autoatención transforma el vector actual de cada token en una consulta, una clave y un valor mediante matrices aprendidas. La comparación entre consulta y clave puntúa con qué intensidad una posición debe usar otra. Estas puntuaciones se convierten en pesos para combinar los valores, como en la definición de atención del Transformer, §3.2.

Para una cabeza de atención y LL tokens, comparar cada consulta con cada clave produce una tabla de puntuaciones de L×LL\times L. Duplicar la longitud de secuencia LL cuadruplica esa tabla. Si cada comparación es un producto escalar de longitud dd, la aritmética de puntuación crece como O(L2d)O(L^2d). Big-O describe una cota superior asintótica; omite constantes y no predice por sí solo el tiempo de ejecución.

Las cuadrículas muestran atención completa: cada posición puede usar todas las posiciones. Una secuencia más larga añade tanto filas de consultas como columnas de claves. Cada celda es una puntuación; implementaciones como FlashAttention pueden calcularlas sin almacenar toda la cuadrícula a la vez. La atención causal excluye posiciones futuras, pero su número de pares permitidos sigue creciendo de forma cuadrática.

Una cuadrícula de cuatro por cuatro tiene 16 puntuaciones consulta-clave. Una de ocho por ocho, dibujada con el mismo tamaño de celda, tiene 64. Duplicar la longitud de secuencia duplica ambas dimensiones y cuadruplica el número de puntuaciones de atención completa.Una cuadrícula de cuatro por cuatro tiene 16 puntuaciones consulta-clave. Una de ocho por ocho, dibujada con el mismo tamaño de celda, tiene 64. Duplicar la longitud de secuencia duplica ambas dimensiones y cuadruplica el número de puntuaciones de atención completa.

Distintos cambios en la atención reducen costes distintos:

MétodoQué cambiaQué sigue creciendo con la secuencia
FlashAttentionCalcula la atención por bloques y evita una tabla completa de puntuaciones en la memoria principal de la GPULa aritmética de puntuación sigue siendo cuadrática
DSAUn evaluador más barato selecciona hasta kk tokens para la atención completaEl evaluador sigue comparando todos los pares permitidos
MLAAlmacena menos datos de atención por token en cachéEl tamaño de caché sigue creciendo linealmente con el número de tokens

Estos ahorros no pueden interpretarse como aceleraciones intercambiables. Hay que comprobar si un artículo midió operaciones aritméticas, memoria asignada, transferencias de memoria o tamaño de caché. También si midió el procesamiento del prompt o la generación de tokens; DeepSeek-V3.2, figura 3, presenta esas fases por separado.

Leyes de escalado: curvas ajustadas con un intervalo de validez

Una ley de escalado ayuda a repartir un presupuesto de entrenamiento entre un modelo mayor y más datos. Es una curva ajustada a experimentos. Por ejemplo, DeepSeek LLM, §3.2, ecuación (4), presenta:

Mopt=0.1715 C0.5243,Dopt=5.8316 C0.4757.\begin{aligned} M_{\mathrm{opt}}&=0.1715\,C^{0.5243},\\ D_{\mathrm{opt}}&=5.8316\,C^{0.4757}. \end{aligned}

CC es el cómputo de entrenamiento en operaciones de coma flotante. MM es el cómputo por token sin embeddings, usado aquí como medida del tamaño del modelo; no es el número de parámetros. DD es el número de tokens de entrenamiento. El subíndice «opt» marca el reparto ajustado para minimizar la pérdida de validación con ese presupuesto. Los coeficientes 0.1715 y 5.8316 pertenecen a este ajuste y a estas unidades.

Las curvas siguientes dividen los repartos ajustados por sus valores con un presupuesto de 101710^{17} FLOPs, de modo que cada coeficiente ajustado se cancela. Multiplicar el presupuesto por 100 da 1000.5243≈11.18100^{0.5243}\approx11.18 veces más cómputo por token y 1000.4757≈8.94100^{0.4757}\approx8.94 veces más tokens. Son los dos extremos de la figura. Sus factores se multiplican porque el artículo define el cómputo total como C=MDC=MD.

Las curvas calculadas a partir del ajuste de DeepSeek LLM muestran cómo un aumento de cómputo de 100 veces se reparte en aproximadamente 11.18 veces más cómputo por token y 8.94 veces más tokens de entrenamiento. El eje horizontal de razón de cómputo es logarítmico; el eje vertical de factor de aumento es lineal. Los presupuestos dibujados permanecen dentro del intervalo de ajuste indicado.Las curvas calculadas a partir del ajuste de DeepSeek LLM muestran cómo un aumento de cómputo de 100 veces se reparte en aproximadamente 11.18 veces más cómputo por token y 8.94 veces más tokens de entrenamiento. El eje horizontal de razón de cómputo es logarítmico; el eje vertical de factor de aumento es lineal. Los presupuestos dibujados permanecen dentro del intervalo de ajuste indicado.

Esa conclusión corresponde a estos experimentos. El ajuste cubre de 101710^{17} a 3×10203\times10^{20} FLOPs. Fuera de ese intervalo es una extrapolación; incluso dentro, otros datos o ajustes de entrenamiento pueden cambiar el mejor reparto. La sección 3.3 presenta distintos exponentes para distintos datasets. La lectura detallada sobre leyes de escalado explica las unidades y comprueba cómo se combinan las fórmulas ajustadas.

Leer una ecuación que esta serie no cubre

Para otra ecuación, se pueden usar las seis preguntas de la parte 1: identificar los objetos, las operaciones, las dimensiones, el muestreo, las cantidades aprendidas y la afirmación realizada.

El repositorio paper-math-skills proporciona instrucciones para que un agente escriba y compruebe una explicación detallada. Las lecturas enlazadas son ejemplos de ese resultado, con definiciones de símbolos y comprobaciones numéricas.

Fuentes y versiones

Para una introducción más extensa a los fundamentos, véase The Little Book of Generative AI Foundations de Tianhua Chen, §3.2 para el ELBO.