Entendiendo cómo DALL-E2 genera imágenes a partir de texto

  • Autor de la entrada:
En este momento estás viendo Entendiendo cómo DALL-E2 genera imágenes a partir de texto
Imagen generada por DALL-E2 a partir del texto: Osos de peluche mezclando sustancias químicas espumosas como si fueran científicos locos en formato arte digital.

Tiempo estimado de lectura: 18 minutos.

2022 se está confirmando como el año de los grandes modelos de lenguaje y de los algoritmos multimodales.

Los primeros, por su capacidad para aprender representaciones del mundo a partir de grandes volúmenes de datos como son los textos.

Los segundos, se apoyan en los primeros para que dichas representaciones del mundo reflejen mejor la realidad a partir de diferentes tipos de datos: texto, imágenes, audio.

Día sí y día también aparecen nuevas publicaciones con investigaciones sobre el modelo que mejor nos entiende, o el menos tóxico, o el más grande, que enseguida se queda pequeño por el que mejor bromea.

En esta línea, OpenAI ha vuelto a sorprendernos con DALL-E 2, una arquitectura de aprendizaje profundo que genera y manipula imágenes hiperrealistas a partir de descripciones de texto.

Con este desarrollo, que recibe el nombre a partir de la película Wall-E y Dalí (sí, el pintor catalán), la empresa californiana nos sigue mostrando su interés por las arquitecturas multimodales con foco en modelos de generación de imágenes.

Pero, veamos en qué consiste DALL-E 2 y por qué es tan sorprendente.

En este artículo explico en qué consiste y las tecnologías en las que se apoya. Es un tema complejo aunque intento hacerlo al nivel más alto posible. Aún así, ten paciencia porque al final este tema, merece la pena. Si tienes alguna duda, pregúntame sin problemas.

Contexto

DALL-E 2 se apoya en dos tecnologías base: CLIP y los modelos de difusión y en dos proyectos de síntesis de imágenes previos: DALL-E y GLIDE.

Son muchos términos y palabras así que veamos a alto nivel en qué consiste cada uno.

CLIP: Pre-entrenamiento texto-imagen por contraste

CLIP («Contrastive language-image pre-training» en inglés), es una técnica que aprende a representar un texto y su imagen en un mismo espacio. De esta forma, las imágenes capturan información semántica y de estilo proporcionada por el texto.

Para conseguirlo, se utiliza el aprendizaje por contraste:

  • Se entrena un conjunto muy grande de datos, más de 400 millones.
  • Se realiza un aprendizaje supervisado porque, en el momento de entrenar, conocemos las asociaciones entre imagen y sus pies de foto (texto).
  • Todas las imágenes y sus textos se representan en el mismo espacio m-dimensional.
  • Se calcula un valor: la similitud coseno para cada par (imagen, texto).
  • A partir de aquí, se entrena el modelo. El objetivo del entrenamiento es maximizar el valor de similitud de los pares  (imagen, texto) correctos al tiempo que se minimiza el de los pares que no se corresponden.

    Preentrenamiento CLIP
    Proceso de entrenamiento CLIP. La matriz de relaciones entre las imágenes y textos obtenida se puede utilizar como entrada para realizar tareas específicas de síntesis de imágenes mediante una transferencia de conocimiento zero-shot.

Tras este proceso somos capaces de asociar una nueva imagen a su texto correspondiente. Si quieres saber más sobre su funcionamiento, aquí tienes un mayor detalle.

Los modelos de difusión

Los modelos de difusión son un tipo de modelo generativo de datos que está consiguiendo resultados asombrosos en aplicaciones de síntesis de imágenes.

Este tipo de modelo se inspira en el término de difusión en termodinámica en «no-equilibrio» y su clave está en eliminar ruido progresivamente para generar la imagen objetivo.

Para ello, utiliza métodos variacionales bayesianos en su entrenamiento que se realiza a través de dos procesos:

Entrenamiento de modelos de difusión

El primer proceso es el proceso hacia delante, que también podemos encontrar con la nomenclatura «q», prior, o forward noising process (en inglés). Su objetivo es generar los datos o muestras de entrenamiento que, como vemos en la imagen, son variaciones de la foto original cada vez más ruidosas.

El segundo proceso es el proceso reverso o «hacia atrás», que también podemos encontrar como «pΘ«, posterior o reverse diffusion process (en inglés). Su fin es obtener el algoritmo que genera gradualmente la imagen objetivo a partir del ruido.

Tras este proceso ya somos capaces de generar una imagen de manera artificial. Si te interesa, aquí te dejo más detalle sobre su funcionamiento.

DALL-E

DALL-E es el proyecto para crear imágenes a partir de texto que OpenAI presentó  principios de 2021.

Se basa en un Transformer tipo GPT-3 que se calcula de la siguiente forma:

  • Primero, se comprimen las imágenes de la muestra de entrenamiento con un codificador (de tipo variacional).
  • Después, unimos la foto comprimida con el texto que la define en un mismo conjunto de datos (concatenación).
  • Con los datos anteriores, entrenamos el Transformer de forma regresiva mediante un aprendizaje zero-shot.
  • La imagen final se genera pixel a pixel a partir de un texto y del principio de la foto.

A pesar de la novedad que supuso cuando se presentó, no consigue generar imágenes con calidad foto-realista y por ello no se llegó a abrir a la comunidad para uso comercial.

En cualquier caso, el proyecto ha dejado su nombre a la tecnología de la entrada de hoy y por ello cabe la pena la mención. Si te interesa conocer más te dejo la publicación original.

GLIDE

GLIDE (Guided Language to Image Diffusion for Generation and Editing), en lugar de Transformers, utiliza modelos de difusión guiados mediante un texto para generar la imagen. Con esta técnica consigue mejores resultado que el anterior.

En sí, suponen un siguiente paso en la evolución de este tipo de algoritmos que hasta ahora solo se guiaban por etiquetas.

Las imágenes como: ilustraciones, pinturas y fotografías a menudo pueden describirse mediante texto, pero crearlas requiere horas de trabajo. Por lo tanto, una herramienta capaz de generar imágenes realistas a partir de
lenguaje natural permitirá a los humanos crear contenidos visuales ricos y diversos con una facilidad sin precedentes.

Más concretamente, los modelos de difusión utilizados son los ADMs (Ablated Diffusion Modelos o ADM), una arquitectura mejorada, presentada en la publicación Diffusion Models Beat GANs on Image Synthesis, que evalúa alternativas de guiado: (1) con CLIP y (2) «sin clasificador», obteniendo mejores resultados en el segundo caso.

GLIDE se obtiene entrenando un modelo de difusión (ADM tipo Unet) condicionado. Es decir, donde la generación de la imagen es dependiente del texto (pΘ(t-1|t, C) en nomenclatura matemática).

  • El texto se codifica mediante un Transformer (C) y se añade a la representación de la imagen
  • La misma salida «C» se utiliza para complementar la Atención como mayor información de contexto en cada capa de la red y que utiliza el proceso de difusión para recrear la imagen en cada paso.
Proceso para condicionar imagen a texto
Glide: Proceso para condicionar la generación de la imagen a un texto.

Una vez obtenidos los parámetros de GLIDE mediante el entrenamiento, la generación de la imagen final puede hacerse de dos formas:

    • Mediante un proceso guiado por CLIP: entrenamos un modelo CLIP para aprender las representaciones conjuntas entre la imagen y su texto. Su resultado se utiliza luego para ajustar la imagen generada.
    • Mediante un proceso guiado «sin clasificador»: parte de las muestras del modelo de difusión se mantienen sin condicionar (pΘ(t-1|t)) y parte condicionadas (pΘ(t-1|t, C)). La diferencia entre las muestras condicionadas y las no condicionadas será la dirección que se utilice para ajustar la imagen final.

Es complejo, la verdad, aunque funciona y supone un gran avance como veremos ahora. Si quieres conocer mejor cómo funciona el proceso de generación de imágenes mediante modelos de difusión guiados, puedes consultarlo aquí.

¿Cómo funciona DALL-E 2?

Por fin llegamos a DALL-E2 donde analizaremos su arquitectura, cómo funciona y en general cómo integra el resto de mecanismos que acabamos de ver.

Arquitectura alto nivel DALLE2
Imagen de OpenAI. (1) Entrenamiento CLIP que aprende representaciones conjuntas en el espacio de texto e imagen;  (2) Arquitectura unCLIP compuesta por: prior y un decodificador.

La arquitectura de DALL-E2 recibe el nombre de unCLIP, porque genera las imágenes invirtiendo representaciones CLIP y, está compuesta por dos piezas principales: (1) prior y (2) decodificador que veremos en un momento.

Nomenclatura

Pero antes de seguir, déjame que introduzca una nomenclatura básica para que sea más sencillo de seguir:

  • Texto (y): llamaré texto a la sentencia de entrada que define la imagen que queremos generar.
  • Representación CLIP del texto o embedding CLIP del texto (zt): es la representación del texto en el espacio conjunto del texto-imagen que genera CLIP en el entrenamiento.
  • Representación CLIP de la imagen o embedding CLIP de la imagen (zi): es la representación de la imagen en el espacio conjunto  del texto-imagen que genera CLIP en el entrenamiento.
  • Representación CLIP de la imagen condicionada al texto o embedding CLIP de la imagen condicionada al texto (zi|y): es una nueva representación que se obtiene regenerando la representación CLIP de la imagen (zi), condicionada al texto de entrada (y).

Será la salida del prior y que se utiliza como entrada del decodificador para generar la imagen final, como veremos a continuación.

  • Imagen generada (x): es la imagen final del proceso. La imagen generada o manipulada a través del decodificador.
Nomenclatura DALL-E2
Nomenclatura DALL-E2. Inspirada en publicación de OpenAI

Suena lioso pero, luego va a servir para aclarar cuando los términos se entremezclen.

Pasamos ya a la arquitectura que he comentado.

Prior

El prior es un codificador que produce representaciones CLIP de la imagen condicionada al texto (zi|y). En realidad, podemos decir que es un modelo generativo de representaciones o embeddings CLIPs de las imágenes.

En la publicación original se analizan dos alternativas para generar las representaciones CLIP de la imagen condicionada al texto (zi|y):

  • Un Transformer autorregresivo: el texto de entrada (y) y el embedding CLIP del texto (zt) se codifican a través del Transformer y complementan el embedding CLIP de la imagen (zi).
  • Un modelo de difusión condicionado al texto y el embedding CLIP del texto, los pasos del modelo de difusión, una versión ruidosa del embedding de la imagen CLIP (zi) y una guía para eliminar el ruido de la imagen.

Aunque ambos modelos obtienen resultados similares, el segundo es más eficiente.

A pesar de que se podrían generar las imágenes finales (x) directamente desde los embedding CLIP de las imágenes (zi) y los textos (y), diversos análisis muestran que se obtienen mejores cuando el primero complementa su contexto condicionándolo al segundo a través del prior.

Decodificador

El decodificador es la pieza clave. Es el responsable de generar imágenes a partir de la salida del prior (zi|y) y ocasionalmente también al texto de la imagen (y).

En este decodificador, se utiliza un arquitectura tipo GLIDE con algunas modificaciones:

  • La generación de la imagen final se condiciona a las representaciones generadas por el prior, no sólo al texto como hacía GLIDE.
  • Se habilita únicamente el guiado «sin clasificador», salvo en la capas de la red neuronal de subida que se mantienen sin condicionar.
  • Se utilizan dos variaciones de red neuronal: con más y menos resolución en las capas de subida y sin niveles de atención.

Este decodificador no es determinista ya que, su objetivo no es reconstruir exactamente una imagen a partir de su embedding, sino generar una foto que mantenga la misma información semántica  y estilo que su representación.

Proceso de entrenamiento de DALL-E2

De manera simplificada, DALL-E2 se entrena de la siguiente forma:

  • Primero, se entrena CLIP para aprender el espacio dimensional conjunto de los pares texto e imagen (zt , zi) y se deja fijo.
  • Después, el prior genera un embedding CLIP de la imagen condicionado al texto de entrada (y) (zi|y).
  • Finalmente, el decodificador genera la imagen (x) revertiendo el proceso CLIP (unCLIP) través de un modelo de difusión guiado.

Aplicaciones

DALL-E2 tiene un potencial brutal, porque nos permite expresar visualmente nuestras historias e ideas sin tener nociones de diseño gráfico, de dibujo o de cualquier otra técnica similar.

Comparando los resultados con DALL-E y con GLIDE, es claramente superior al primero y equivalente al segundo aunque con mayor capacidad para generar imágenes diversas.

Ejemplo de modificación de imagen variando el texto
Imagen de OpenAI: Foto de un león adulto -> Foto de una cría de león

Aparte de la generación de nuevas imágenes, podemos hacer manipulaciones sobre imágenes existentes:

  • Variaciones de una imagen: manteniendo el contenido esencial pero cambiando aspectos como la forma y orientación (la información que no se haya capturado en las representaciones CLIP).
  • Interpolación de dos imágenes: donde se mezclan contenido y estilo de las dos imágenes en una final.
  • Variaciones de una imagen a partir de variaciones en el texto (text diff en inglés) manipulando la imagen desde la descripción. Esta es una de la ventajas del espacio latente CLIP, su habilidad para modificar la semántica de una imagen, moviéndonos en la dirección de otro vector de texto.

Además de las aplicaciones directas, DALL-E2 nos acerca más a saber cómo funciona el aprendizaje profundo y la inteligencia artificial.

Variaciones de imagenes de Dalle2 por ataques tipográficos
Imagen de OpenAI. Muestra la probabilidad de CLIP para cada etiqueta (Granny Smith, iPod, Pizza). El decodificador es capaz de reconstruir una manzana a pesar de que la probabilidad para esta etiqueta sea casi 0%. Vemos que es menos sensible cuando se trata de diferenciar entre una manzana y una pizza, ambas comida.

A partir de las imágenes generadas, podemos saber un poco más sobre cómo la máquinas “ve” y “entiende” nuestro mundo, así como su capacidad de entender frente a simplemente reproducir algo que han visto antes.

Siguientes pasos

Si bien es cierto que las imágenes generadas por DALL-E2 son impresionantes, como se basa en CLIP, presenta algunas de sus limitaciones con resultados son pobres a la hora de hacer inferencias más específicas, por ejemplo, contar objetos.

Por otro lado, aún hay un gran debate sobre la capacidad de los grandes modelos de lenguaje para aprender cómo funciona realmente nuestro mundo.

Sin duda, los modelos multimodales basados en textos e imágenes se acercan mejor a la forma en la que razonamos los humanos ya que ayuda a vincular mejor conceptos e ideas y las palabras que lo describen.

A pesar de ello, el conocimiento será incompleto hasta que transmitamos a las máquinas otras señales más allá del lenguaje y dentro del mundo de las interacciones sociales.

Finalmente, DALL-E2 aún está en fase de desarrollo. Los investigadores están intentado minimizar los riesgos de un uso incorrecto y controlando la capacidad de generación de imágenes dañinas. En cualquier caso, ya han abierto una lista de espera para aquellas personas interesadas en acceder a su API cuando esté disponible. ¡Ya se han apuntado más de 1 millón de personas!

Referencias

 

Comentarios