DALL-E
Rubén Rodríguez Abril
En el año 2021 Open AI, la empresa líder a la sazón en grandes modelos de lenguaje, presentó una nueva arquitectura generativa capaz de crear imágenes de contenido artístico a partir de descripciones textuales ofrecidas por el usuario. La característica esencial del modelo era la combinación de la arquitectura de transformers, particularmente GPT-3, con la de los autocodificadores variacionales. La aparición de DALL-E tuvo gran un impacto en el ámbito de la cultura popular de Internet y abrió paso la llegada de otros modelos similares.
INTRODUCCIÓN A DALL-E
DALL-E es una variedad de los modelos texto-a-imagen, que generan una imagen u obra de arte a partir de una descripción textual (conocida como “prompt”) proporcionada por el propio usuario. Como hemos visto en artículos anteriores, los modelos generadores de imágenes no eran ni mucho menos una novedad en el año 2021. Y tampoco lo era la creación de arte digital asistida por la IA. Algoritmos como el de la transferencia neuronal de estilo (introducido en el año 2015) ya eran capaces de crear una obra de arte a partir de una fotografía y dándole el estilo de un autor conocido, como Van Gogh o Kandinsky.
DALL-E puede ser considerado como un desarrollo de la arquitectura de transformers. Se compone de dos partes principales: La primera es un modelo GPT-3 entrenado para generar autorregresivamente una cadena de tokens de imagen a partir de los tokens de una descripción textual. La segunda es el descodificador de un VAE (autocodificador variacional) que se encarga dichos tokens en una imagen.
FUNCIONAMIENTO EN INFERENCIA
Durante la inferencia, el prompt introducido por el usuario se codifica usando el sistema BPE (Byte Pair Encoding), que transforma cada par de bytes en un token de texto. Los tokens de la cadena son introducidos entonces en el transformer, que va produciendo autorregresivamente la nueva imagen mediante sus tokens de salida. En algunos modelos anteriores, cada token determinaba directamente los valores RGB de un pixel. En DALL-E, es un descodificador VAE el que transforma dichos tokens visuales en una imagen. Sólo existen 8.192 valores posibles de tokens visuales.
GPT-3, a través de su cadena de tokens visuales, proporciona al descodificador VAE, una descripción completa de la imagen a generar. La nueva secuencia contiene todas las instrucciones necesarias, expresadas en un particular lenguaje de máquina, para realizar el nuevo gráfico, conteniendo información relativa a rasgos tanto de alto como de bajo nivel. En este lenguaje algorítmico sólo hay 8.192 palabras/tokens posibles.
EL PAPEL DEL DESCODIFICADOR
Antes de entrar en el descodificador, los 1.024 tokens visuales se disponen en una cuadrícula bidimensional de dimensiones 32×32. A través de una sucesión de capas convolucionales esta cuadrícula se va transformando en una imagen definitiva de 256×256 pixeles.
El descodificador opera así como un formidable mecanismo de descompresión semántica. Cabe destacar que cada token visual almacena tan sólo 13 bits de información (es un número del 0 al 8.191), de lo que resulta una cadena total de 13.312 bits. Esta secuencia es expandida a un mapa de 1.572.864 bits (3 bytes, 24 bits, por pixel), más de 100 veces mayor. La diferencia viene representada por la información relativa a patrones y rasgos, de mayor y menor nivel, que es introducida en la imagen por las diferentes capas convolucionales del descodificador.
ENTRENAMIENTO
FASES DE ENTRENAMIENTO EN DALL-E
El entrenamiento se estructura en dos fases:
Fase 1.
El VAE es entrenado para comprimir y descomprimir una imagen RGB 256×256 en un espacio latente de dimensión 32×32. La compresión se realiza en varios pasos: En primer lugar, las sucesivas capas convolucionales crean un tensor de 32x32xD, donde cada posición almacena un vector de D dimensiones. Este hiperespacio es discreto, pues sólo están permitidos 8.192 vectores-tipo: los correspondientes a cada uno de los posibles tokens visuales. De hecho, cada uno de estos últimos puede ser entendido como la etiqueta de 13 bits de un vector-tipo. Durante el entrenamiento se crea una suerte de libro de códigos que vincula a vectores-tipo con etiquetas.
Si el vector producido en una posición no se corresponde uno de los 8.192 vectores-tipo, se asimila al más cercano de ellos, en términos de distancia euclidiana. Este procedimiento se denomina cuantización y da como resultado una cuadrícula de 32×32 tokens visuales.
La descompresión opera de un modo inverso. Los tokens visuales son transformados en vectores por medio del libro de códigos. Tras ello, la retícula resultante de 32×32 vectores es introducida en el descodificador VAE, que la transforma en una imagen RGB.

Figura 1. Imágenes originales (arriba) y reconstruidas (abajo) por el descodificador VAE. Sin duda alguna, se trata de reconstrucciones bastante bien logradas, a pesar de la enorme pérdida de información durante la compresión.
Fase 2.
Se toman pares de texto-imagen de la base de datos. Las imágenes son transformadas en tokens visuales por el codificador VAE. Seguidamente, un modelo basado en GPT-3 es afinado para predecir estos tokens visuales a partir de las descripciones textuales. De lo que se trata es de que codificador VAE y modelo de lenguaje produzcan una misma secuencia de salida, compartiendo un mismo lenguaje de máquina para describir una imagen.
Tras el entrenamiento se descarta al codificador del VAE. El modelo definitivo queda conformado por el modelo de lenguaje, que realiza la tarea de codificación, y el descodificador del VAE, que genera la imagen definitiva.
FUNCIÓN OBJETIVO: ELBO
La función de pérdida es ELBO (Evidence Low Bound), que debe ser maximizada. Su expresión algebraica es la siguiente:
donde x es la imagen RGB original que ha de ser reconstruida por DALL-E a partir de su descripción textual y, mientras que z es el conjunto de tokens que conforman en el estado latente. Son tres los términos que aparecen en la fórmula, correspondientes a las tres partes del modelo:
- p_{θ}(x|z) es la probabilidad que tiene el descodificador VAE de reconstruir la imagen original (distribución de píxeles RGB) a partir de los tokens z.
- q_{θ}(z|x) es la distribución de tokens visuales z generada por el codificador VAE a partir de la imagen x.
- p_{ψ}(z|y) es la distribución de tokens visuales z generada por un transformer de modelo fundacional GPT-3, a partir de la descripción y.
La expresión z \sim q_{θ}(z|x), que aparece junto a la letra E, indica que hay un proceso de muestreo (sampling): sólo el token z que recibe mayor puntuación por el codificador es transmitido hacia el descodificador.
ELBO se divide en dos partes: El término de regularización, que busca que aproximar el comportamiento de codificador VAE y el transformer, y el término de reconstrucción, que penaliza las reconstrucciones erróneas de pixeles realizadas por el descodificador VAE.
TÉRMINOS DE LA EXPRESIÓN
Este término de regularización (en azul) trata de acercar el comportamiento del modelo de lenguaje al del codificador VAE. Viene constituido por la divergencia de Kulback-Leibler (representada como D_{KL} en la fórmula) de dos distribuciones diferentes: la del transformer y la del codificador VAE. Como ya se vio en otros artículos, la divergencia KL cuantifica la cantidad de bits necesaria para construir una distribución (distribución posterior) a partir de otra (distribución prior). Es nula cuando las dos distribuciones son iguales y, en el caso que nos atañe, cuando los tokens visuales producidos por el codificador VAE (a partir de la imagen original) y por el transformer (a partir de los tokens textuales) son los mismos.
El término de reconstrucción (en verde) trata de mejorar la capacidad del descodificador VAE de regenerar una imagen a partir de sus tokens visuales. Este término suele aproximarse mediante la siguiente ecuación, que representa el error cuadrático medio:
donde \hat{x}_i es el valor original de la imagen mientras que xi y σ son la media y la desviación típica calculadas por el descodificador.
PROCESO DE ENTRENAMIENTO
Durante la primera fase del entrenamiento, que afecta sólo a los parámetros del VAE, éste tiene que transformar una imagen en tokens visuales y a partir de éstos reconstruir la imagen original. Como distribución prior se utiliza una distribución uniforme sobre todos los tokens visuales del diccionario. Esto garantiza que, a través del término de regularización, todos ellos tengan la misma probabilidad de ser producidos por el codificador, promoviendo una representación balanceada.
En la segunda fase, DALL-E debe reconstruir la imagen original a partir de su descripción textual. El gradiente del término de reconstrucción se calcula en la capa final y es retropropagado a través del descodificador VAE y el transformer, aunque sólo los parámetros de este último son modificados. Por su parte, el gradiente del término de regularización se deriva comparando las distribuciones de tokens producidas por el codificador y el transformer. Es retropropagando a través de este último. La segunda fase, como vemos, sólo afecta a los parámetros del modelo fundacional, basado en GPT-3.
DATOS DE ENTRENAMIENTO
En el entrenamiento de DALL-E se utilizaron diversas bases de datos, entre las que podemos citar las siguientes:
-Todos los pares texto-imagen contenidos en Wikipedia.
-Una nueva base de datos integrada por 250 millones de pares texto-imagen, en una escala similar a JFT-300M, de Google. Incluye Conceptual Captions -una extensión de MS-COCO integrada por 3,3 millones de pares texto-imagen- y un subconjunto filtrado de YFCC100M (Yahoo Flickr Creative Commons 100 Million).
Los parámetros, las activaciones y los gradientes se almacenan en números de coma flotante de 16 bits, de los cuales 4 pertenecen al exponente.
RESULTADOS
DALL-E mostró habilidades notables en la generación de gráficos desde cero (zero-shot) así como capacidades inesperadas de generalización. También evidenció aptitudes de generalización combinatoria, interpretando frases complejas como “dibuja este mismo gato, que está arriba, en la parte inferior de la cama”.

Figura 2. “El mismo gato de arriba, dibujado como boceto abajo”. Para ejecutar este “prompt”, DALL-E combinó dos tareas de naturaleza visual: la segmentación de objetos y la transferencia neuronal de estilo.
Las pruebas demostraron que también podía realizar transformaciones, como cambios de color, introducción de escala de grises o alteración del estilo de una imagen. Estas habilidades demostraron su competencia en tareas de visión artificial pura como la segmentación semántica o la transferencia neuronal de estilo.

Figura 3. “El mismo gato de arriba, coloreado de rojo abajo”. Un ejemplo de segmentación semántica.
En general, en el plano del gran público, el modelo ayudó a la popularización de la IA como instrumento auxiliar de los artistas o los diseñadores gráficos.
MODELOS POSTERIORES
Aunque la utilización de los transformers para dibujar gráficos es, sin duda alguna, sugestiva, hemos de señalar que las siguientes versiones del modelo DALL-E (2 y 3) abandonaron el concepto de tokens de imagen y retornaron al esquema de pérdida contrastiva que ya había adoptado CLIP. Los detalles de estas innovaciones serán analizados en nuestros próximos artículos, dedicads a las dos versiones siguientes de DALL-E.
LECTURAS RECOMENDADAS
– Zero-Shot Text-to-Image Generation (artículo original de DALL-E).