Metas Nuevo modelo de texto a imagen – Explicación del papel CM3leon
Nuevo modelo texto-imagen - Explicación rol CM3leon
El nuevo modelo SOTA y altamente eficiente de Texto-a-Imagen(-a-Texto).
![Fuente: Composición: Autor, Imagen: [1]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*8uAXSsuPcTE8-K1TBS_ZLw.png)
Meta recientemente lanzó su nuevo modelo de texto a imagen de vanguardia, llamado CM3Leon [1], que NO se basa en difusión como Stable-Diffusion [2], Midjourney o DALLE [3].
¡Es un modelo de solo descodificador, autoregresivo y con recuperación mejorada!
Un poco complicado, pero en esta publicación conoceremos lo que todo eso significa. En este punto, ya sabemos que los modelos actuales de generación de imágenes pueden generar imágenes increíbles, pero aún tienen ciertas limitaciones. Por ejemplo, la eficiencia y el costo de esos modelos. ¡O generar manos! Pero no con CM3Leon, ¡de lo cual los autores parecen estar muy orgullosos!
La generación en sí es genial, ¡pero lo que este enfoque autoregresivo y de solo decodificador también permite son capacidades de imagen a texto!
Resultados
Pero, bueno, primero, ¡veamos de cerca los resultados y por qué CM3Leon es tan especial!
- Esta semana en IA, 18 de agosto OpenAI en problemas financieros • S...
- Visualizaciones de la ciudad de Nueva York
- ¡La ciencia de datos ha cambiado, no ha muerto!
![Gráfico de puntuación FID en escala logarítmica de varios modelos en comparación con las horas equivalentes de GPU A100 durante el entrenamiento. Fuente: [1]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*pZ8E5XsgQzKl2Qrt-gpevA.png)
Ya hemos visto imágenes generadas de manera agradable, pero cuando observamos los números en la figura anterior, realmente podemos ver cuánto mejor es CM3leon en comparación con otros modelos, como DALLE y Parti. Ahora, se puede argumentar qué tan bien la puntuación FID realmente captura el realismo de la imagen generada, pero sin embargo, CM3Leon establece una nueva puntuación FID de vanguardia en el conjunto de datos MS COCO. Donde debo decir que elegir la versión autoregresiva del modelo DALLE es un poco injusto.
¿Cómo funciona DALLE?

En un pequeño paréntesis, DALLE tiene un modelo intermedio llamado “prior” que asigna el incrustado de texto generado por CLIP a una codificación de imagen correspondiente, que luego se utiliza para generar la imagen final utilizando difusión. Este “prior” puede ser nuevamente un proceso de difusión o uno autoregresivo. Ambos parecen generar resultados similares, pero el proceso de difusión es más eficiente, por lo que los autores de DALLE optaron por ese. Entonces, sí, elegir la versión menos eficiente para la comparación aquí puede ser un poco injusto para DALLE.
Volviendo a los resultados de generación de imágenes
![Resumen de varios modelos de texto a imagen en la tarea de MS-COCO sin entrenamiento, medido por FID. Para todos nuestros modelos, generamos 8 muestras para cada consulta de entrada y usamos un modelo CLIP para seleccionar la mejor generación. Fuente: [1]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*coRfNm3CN8DmmXrylC_-5w.png)
Bien, la buena puntuación FID por sí sola es genial, ¡pero aún mejor es que CM3Leon logra este rendimiento siendo mucho más eficiente! Con su modelo más grande de 7 mil millones de parámetros, es mucho más pequeño que el modelo más grande de Parti, ¡y utiliza una fracción de los datos y tiempo de entrenamiento! Además, los autores introducen una nueva métrica para el entrenamiento “responsable”. Las imágenes utilizadas para entrenar CM3Leon son todas con licencia de Shutterstock, ¡así que (esperemos) no más miedo a demandas legales! Luego está la columna “Nr. de documentos recuperados”, que es una de las principales características del modelo CM3Leon que lo hace tan genial, y conoceremos más al respecto en un momento. Pero en resumen, dado un estímulo de texto, el modelo de alguna manera puede recuperar imágenes relevantes o incluso texto de un banco de memoria y usarlo como contexto adicional para el proceso de generación de imágenes.
¿Qué se considera generación de cero disparos?
Ahora, lo que me hace preguntarme es si el modelo recupera imágenes adicionales para el proceso de generación, ¿realmente es generación de cero disparos? Supongo que el propio modelo recupera las imágenes adicionales y no las proporciona la persona que solicita al modelo, pero sí, no estoy 100% seguro aquí.
En ese sentido, en el resumen, los autores mencionan su modelo de mejor rendimiento que logra un “puntaje de FID de MS-COCO de cero disparos de 4.88”
CM3Leon logra un rendimiento de vanguardia en la generación de texto a imagen con 5 veces menos cálculos de entrenamiento que los métodos comparables (FID de MS-COCO de cero disparos de 4.88). – Fuente: [1]
Pero este puntaje se logra con dos imágenes recuperadas, es decir, se refieren a la recuperación como cero disparos. Pero en su leyenda de la Figura 1, dicen lo siguiente:
Mostrando generaciones de cero disparos de CM3Leon (sin aumento de recuperación). – Fuente: [1]
Entonces, ¿qué es una generación de cero disparos? ¿Con recuperación o sin ella?
Benchmarks multimodales
De acuerdo, hasta ahora, todo se trataba de generación de imágenes, pero dado que este modelo es un modelo autoregresivo y solo decodificador, bastante similar a todos los grandes LLM, ¡también puede interpretar imágenes como tokens normales y usarlos como contexto para la generación de texto! En otras palabras, después de aplicar el Afinamiento Supervisado (o, en resumen, SFT), nuestro modelo también puede realizar tareas multimodales más complejas.
![Ejemplos cuantitativos después del ajuste fino del modelo CM3Leon utilizando una amplia variedad de tareas combinadas de imagen y texto. Fuente: [1]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*tDZ23diYuDA0n2CmNpMjRg.png)
Es muy bueno en tareas de texto e imagen entrelazados como “Edición guiada por texto” y “Generación basada en imagen a imagen” donde puedes proporcionar un mapa de segmentación, un boceto con solo contornos o incluso un mapa de profundidad, y en función de eso y una indicación de texto se genera la nueva imagen. O, con “Generación de imagen espacialmente fundamentada”, incluso puedes proporcionar las coordenadas de un objeto en la indicación de texto, y la imagen generada colocará ese objeto en esas coordenadas. Además, el modelo es bastante bueno para generar texto en imágenes, lo cual no era el caso durante un tiempo. Y por un tiempo, me refiero literalmente a menos de uno o dos años atrás :)) Finalmente, con el Afinamiento Supervisado correcto, CM3Leon también puede tomar imágenes como entrada y realizar tareas como la descripción de imágenes con respuestas cortas o largas, la respuesta a preguntas visuales y el razonamiento. Aún no es tan bueno como los modelos dedicados de descripción de imágenes como Flamingo [4], pero dado que esto es más o menos solo un efecto secundario del diseño del modelo, ¡los resultados siguen siendo muy impresionantes!
¿Cómo funciona CM3Leon?
De acuerdo, genial, pero ¿cómo funciona CM3Leon y qué significa modelo de generación de imágenes autoregresivo, solo decodificador con recuperación aumentada?
En este punto, todos más o menos sabemos cómo funciona la difusión. Se entrena un modelo para predecir el ruido en una imagen para que cuando comencemos con un ruido completamente aleatorio, podamos aplicar este modelo y eliminar el ruido paso a paso. Este proceso de eliminación de ruido ahora también puede condicionarse al texto para que podamos guiar el proceso de generación con nuestra indicación.
Los modelos autoregresivos funcionan de manera un poco diferente. Veamos cómo Parti implementa esta idea de un modelo de generación de imágenes autoregresivo.
¿Qué es autoregresivo?
¿Recuerdas cómo funcionan los autoencoders? Tenemos una red codificadora que mapea una imagen a alguna incrustación para que el decodificador pueda generar la misma imagen solo a partir de una representación vectorial latente. En la imagen a continuación, esta idea se ilustra mediante el módulo verde.
![Arquitectura autoregresiva de codificador-decodificador para generación de imágenes propuesta en Parti (Yu et al., 2022). Fuente: [5]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*aw7AU-ZmRPk7WD9q0ta77g.png)
Ahora, ¿qué pasa si esos embeddings que utiliza el decodificador (en el caso de Parti llamado detokenizador) para generar la imagen vienen en forma de tokens predichos por un Modelo de Lenguaje? Piensa en cómo un modelo GPT comienza con un simple token de Inicio-de-secuencia y predice el siguiente token o más bien el token-embebido de un vocabulario dado en el conocido estilo autoregresivo. Un transformador de visión también genera embeddings para cada token de parche de la imagen y esos también pueden estar limitados a ser de un cierto vocabulario. Eso significa que nuestro decodificador de texto autoregresivo (módulo azul) también puede generar cada token de embedding de imagen y luego permitir que el generador de imágenes (o nuevamente, aquí llamado detokenizador) genere la imagen. Ahora, para condicionar el proceso de generación de tokens de imagen, Parti decide utilizar un enfoque codificador-decodificador. Utiliza la arquitectura completa del transformador para lo que fue diseñado originalmente, traducir texto. En este caso, simplemente traduciendo el lenguaje del texto al lenguaje de las imágenes, o, tokens de texto en tokens de imagen. En otras palabras, utilizan la atención cruzada donde los embeddings del codificador de texto (módulo amarillo) se utilizan como condicionamiento para el decodificador de texto que predice un token de imagen tras otro.
Este enfoque autoregresivo resuelve algunos problemas que tenían los modelos de difusión. Por ejemplo, los modelos autoregresivos pueden manejar mucho mejor las indicaciones de texto largo y pueden generar texto en imágenes muy bien. Pero solo pueden hacerlo a gran escala. El caso de “simplemente hacerlo más grande y funcionará” es bastante extremo aquí. Podemos ver este ejemplo con el canguro y el texto “¡Bienvenidos amigos!”.
![Las imágenes se generaron utilizando la misma indicación pero con diferentes tamaños de modelo. Fuente: [5]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*m5Q-OZR5FEwBeVusMgHG6w.png)
¿Qué significa “solo decodificador”?
Vale, ahora sabemos cómo funciona la generación de imágenes autoregresiva, pero CM3Leon es un modelo autoregresivo solo decodificador y no un modelo codificador-decodificador como Parti. Lo que eso significa prácticamente es que el condicionamiento de texto para el proceso de generación ocurre no a través de un codificador y atención cruzada, sino como simples tokens de texto en el contexto del decodificador. Eso significa que el vocabulario ahora debe incluir el vocabulario de tokens de imagen (donde los autores utilizan un tokenizador ya existente) y el vocabulario de tokens de texto (donde los autores entrenan un nuevo tokenizador ellos mismos). Además, los autores introducen un nuevo token <break> que indica una transición en las modalidades.
![Ilustración de un documento multimodal. Una secuencia única que contiene tokens de texto e imagen. Fuente: [1]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*XVKMg9_xFHHF60rAYH5TFw.png)
Ahora nuestra entrada y salida del decodificador pueden verse algo así, donde comenzamos con la indicación “Una foto de un gato mostrada en una cámara DSLR” seguida del token <break> y luego el decodificador predice los siguientes tokens de imagen uno por uno. Una vez que llegamos a otro token <break> o <EOS>, ¡el decodificador de imagen puede tomar el control y generar la imagen!
En cuanto a los datos de entrenamiento, el modelo puede manejar casos multimodales como “Imagen de un camaleón:” seguido de los tokens de imagen, donde el modelo simplemente se entrena en la pérdida estándar de predicción del siguiente token.
“Imagen de un camaleón:” → “<Img233>”, “<Img44>”, …
Pero esto también significa que el modelo puede manejar tareas de descripción de imágenes simplemente reformateando el mismo ejemplo para ocultar cierta parte de la muestra y esperar que el modelo prediga la parte oculta después de la solicitud de <infill>.
“Imagen de un <mask>: <Img233>, … <infill> →”camaleón”
En otras palabras, el modelo ve la imagen y tiene que predecir qué contiene esta imagen.
Nuestro modelo ahora puede generar tanto texto como imágenes.
Autoregresivo, cheque. Solo decodificador, cheque. Finalmente, ¿cómo funciona esta cosa de “recuperación-aumentación”?
¿Qué es la recuperación-augmentación?
Ya mencioné que esto significa básicamente que, dada la indicación inicial, el modelo puede recuperar imágenes, texto o ambos, y agregarlos a su contexto. Ahora que sabemos cómo funciona la entrada para el modelo solo decodificador, podemos entender fácilmente cómo es tan sencillo agregar más imágenes y texto al contexto.
![Ilustración de una muestra completa de datos con múltiples elementos de imágenes y texto entrelazados. Fuente: [1]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*sSkA2eGMMaXxDYg3whPPYw.png)
¡Simplemente podemos agregar tanto texto e imágenes como queramos entre los tokens <break>, siempre y cuando no excedamos la longitud máxima del contexto! Y con una longitud de secuencia de 4096, deberíamos poder agregar uno o dos documentos recuperados. Por documentos nos referimos a elementos que pueden ser imágenes individuales, texto o una pareja de imagen y leyenda.
CM3Leon se basa mucho en el artículo RA-CM3, [6], que propone agregar esta función de augmentación de recuperación al método propuesto en el artículo CM3, [7]. ¡Esto es investigación, un artículo construyendo sobre otro!
En el artículo RA-CM3, podemos ver claramente los efectos de recuperar una imagen para una indicación de texto dada.
![Efecto de recuperar una imagen de un banco de memoria en el proceso de generación de imágenes. Fuente: [6]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*lihnjpu0CpKIt-SmcyL7aw.png)
Aquí, por ejemplo, podemos ver algunas salidas para la indicación “Bandera francesa ondeando en la superficie de la luna” donde el CM3 convencional sin recuperación y Difusión Estable simplemente coloca la bandera estadounidense en la luna, pero si ahora agregamos una imagen recuperada de la bandera francesa al contexto, RA-CM3 genera un resultado adecuado. Se observan efectos similares al recuperar dos imágenes, y así sucesivamente.
![Efecto de especificar manualmente una imagen en el proceso de generación de imágenes/rellenado. Fuente: [6]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*6-pKivvIa4X2rBSFxJoVxA.png)
Esto, por supuesto, también te permite especificar manualmente una imagen para controlar el estilo de la imagen generada, como podemos ver aquí en este ejemplo. Proporcionar una imagen de una persona con una chaqueta roja también hará que el modelo rellene una persona con una chaqueta roja.
Genial, ¿cómo funciona esta recuperación? La idea es realmente simple. Los autores utilizan un modelo CLIP pre-entrenado y congelado para codificar la consulta de entrada, por ejemplo, una simple indicación de texto, y ordenan los candidatos similares de un banco de memoria según una puntuación de relevancia. Los ejemplos individuales de texto e imagen en el banco de memoria simplemente pasan una vez por el modelo CLIP, pero para los documentos de imagen y leyenda, los autores dividen el texto y la imagen, los codifican por separado y luego promedian los dos como una representación vectorial de todo el documento.
Los autores no seleccionan simplemente el documento más similar, sino que utilizan diferentes heurísticas para que la recuperación sea más informativa. Por ejemplo, un documento que consiste en una imagen y texto es más informativo que solo texto o solo una imagen. O se salta un documento candidato si es demasiado similar a la consulta o si ya se ha recuperado prácticamente el mismo documento. Y algunos otros trucos.
Hay otros detalles menores (¡pero importantes!) para hacer que la salida del modelo funcione aún mejor, pero no son ideas fundamentalmente nuevas, solo trucos adicionales que generalmente parecen aumentar el rendimiento. Por ejemplo, muestrear aleatoriamente diferentes valores de temperatura, o algo llamado muestreo TopP, aplicar orientación sin clasificador durante la inferencia, o su propia adaptación de Decodificación Contrastiva.
Entonces, al final, ahora sabemos cómo funciona el modelo CM3Leon solo decodificador, autoregresivo y con recuperación-augmentación, y lo que puede hacer. ¡Esta idea de recuperación es un factor clave para que el modelo sea tan eficiente en términos de parámetros y, por lo tanto, de datos!
![Efecto de recuperar dos imágenes de un banco de memoria en el proceso de generación de imágenes. Fuente: [6]](https://miro.medium.com/v2/resize:fit:640/format:webp/1*yHR0SJSwE13YVHt-obxTtg.png)
El modelo no tiene que memorizar toda la información del mundo, como por ejemplo, qué es un árbol de cerezo en flor o el Monte Rushmore y cómo lucen. ¡Y el uso de una arquitectura solo de decodificador hace que el entrenamiento y la adaptación a nuevas tareas sean mucho más fáciles!
Después de posiblemente pensar que los modelos de difusión son la mejor manera de generar imágenes, este artículo muestra una vez más el poder de los modelos auto-regresivos, como los famosos modelos transformer, para una amplia gama de tareas de texto e imagen.
Y si disfrutaste leyendo esta publicación, ¡no olvides dejar un aplauso y seguirme para obtener más publicaciones emocionantes de explicación de artículos de IA!
P.D.: Si te gusta este contenido y las visualizaciones, también puedes echar un vistazo a mi canal de YouTube, donde publico contenido similar pero con animaciones más llamativas.
Referencias
[1] Escalando modelos multimodales auto-regresivos: pre-entrenamiento y ajuste de instrucciones, L. Yu, B Shi, R Pasunuru, et al., 2023, Enlace al artículo
[2] Síntesis de imágenes de alta resolución con modelos de difusión latente, R. Rombach, A. Blattmann, D. Lorenz, P. Esser, B., 2021, https://arxiv.org/abs/2112.10752
[3] Generación de texto a imagen sin entrenamiento previo, Ramesh et al., 2021, https://arxiv.org/abs/2102.12092
[4] Flamingo: un modelo de lenguaje visual para el aprendizaje de pocos disparos, B. Alayrac, J. Donahue, P. Luc, A. Miech et al., 2022, https://arxiv.org/abs/2204.14198
[5] Escalando modelos auto-regresivos para la generación de texto a imagen rico en contenido, Yu et al., 2022, https://arxiv.org/abs/2206.10789
[6] Modelado de lenguaje multimodal mejorado con recuperación, Yasunaga et al., 2022, https://arxiv.org/abs/2211.12561
[7] CM3: un modelo multimodal enmascarado causal de Internet, A. Aghajanyan et al., 2022, https://arxiv.org/abs/2201.07520