J’ia la Dalle-2

Dalle-2… qu’est-ce donc ?

Dalle -2 est un modèle de génération d’images développé par OpenAI qui a fait un boom médiatique en générant des images à partir d’une description en langage naturel. La qualité des images et la fidélité au texte sont incroyables. Mais… quelles technologies se cachent derrière cette prouesse ?

L’évolution de la génération d’images 2014-2021

GAN

L’état de l’art de la génération d’images a été depuis 2014 dominé par les GAN (Generative Adversarial Networks).  Cette technique lie deux modèles : un générateur et un discriminateur. En entraînant le discriminateur à différencier des images réelles et des images crées par le générateur , on force le générateur a créer des images qui « ressemblent »  aux images réelles.

Avec cette méthode on est capable de générer des images de faible résolution qui ressemblent aux images utilisées pour l’entraînement.

Néanmoins l’entraînement de ces modèles requiert une calibration très fine sans laquelle la variété des images générées chute fortement, pour dans les pires des cas tomber sur une seule image qui se répète a chaque itération.

Visages généres par des GAN

Contrôle

Très rapidement on ne veut pas uniquement générer des images, mais on veut avoir un contrôle sur les images que l’on synthétise.

Le premier type de contrôle est par label : si on entraîne un GAN avec des images d’animaux labellisées ( chien, chat, girafe…) on peut choisir quel animal est généré.

Ce contrôle se diversifie avec des tags (par exemple pour un selfie, on peut taguer l’âge, la couleur des cheveux, le genre…) on peut entraîner des gan à générer des images qui ont les caractéristiques de ces différents tags.

Effet du conditionnement par les tags “classe age” et ” sexe”

Le type de contrôle explose : on peut générer des images a partir de voix, d’autres images, de texte….

Speech to face: Gan générant des visages en fonction de clips audio de voix

Hyper résolution

En parallèle les techniques pour améliorer la résolution des images générées se développent, permettant la synthèse d’images avec une qualité très fine, capables de tromper l’œil humain.

Des exemples peuvent se trouver ici ou des visages hyperréalistes sont générés et placés avec des images réelles de visages.

Modèle de diffusion

En Mai 2021 des chercheurs publient « Diffusion Models Beat GANs on Image Synthesis » qui représente un saut sur le paradigme de la génération d’images.  Au lieu d’utiliser la stratégie discriminateur / générateur, une nouvelle approche de bruitage dé-bruitage est utilisée

Méthode

Sur les images qui sont utilisées pour l’entraînement un bruit gaussien est rajouté, de façon à obtenir une image légèrement bruitée. On réitère ce processus plusieurs milliers de fois, en rajoutant de plus en plus de bruit jusqu’à l’obtention d’une image indistinguable d’un bruit.

Ces images « bruitées » sont utilisées pour entraîner un modèle de dé-bruitage, qui permet de retirer un peu de ce bruit. Une fois entraîné, ce modèle va être utilisé de façon séquentielle  pour, a partir d’un bruit, générer une image.

Performance

Le niveau de performance de cette nouvelle approche est supérieur à celle des GAN sur un certain nombre de jeux de données, en particulier sur la diversité d’images générées. En effet on constate que les GAN génèrent pour un label donné des images très similaires. Le modèle de diffusion est capable par contre de générer des images avec caractéristiques différentes : niveau de zoom, nombre d’éléments, différentes positions…

Un deuxième élément sur lequel les modèles de diffusion sont supérieurs, est la moindre nécessité d’un calibrage fin pour des bonnes performances.

Comparaison des images générées par un GAN ( gauche), un modèle de diffusion (centre) et des vraies images (droite)

Remarque

Tout comme pour les GAN, l’utilisation des modèles de diffusions n’est pas limité a generer des images, mais tout type de données. Par exemple ils peuvent etre utilisés pour generer des données “artificielles”, ou même comme on le verra plus tard des “encodages”

CLIP

Objectif

L’objectif de clip est d’exploiter la richesse du texte pour créer un classificateur d’images « universel », ou du moins très généraliste (zéro shot).

Traditionnellement, la classification d’images est réalisée sur un jeu de donnée particulier avec des classes définies à l’avance pour chaque image.  Le modèle clip utilise des images avec une description texte en tant que « label » au lieu de classes prédéfinies. Ces images ont été sourcées sur le web et le modèle utilise autour de 400 millions de photos avec 500 000 concepts différents.

Le modèle fonctionne en deux étapes :

  • Création d’un espace de comparaison d’images et de texte
  • Exploitation de cet espace latent pour la classification  
Schéma du fonctionnement de CLIP (Source: Learning Transferable Visual Models From Natural Language Supervision)

Création d’un espace commun

Pour créer un espace latent on utilise deux modèles d’encodage de la littérature : un pour les images et un pour le texte. Pour l’entraînement de ces encodeurs, N paires d’images texte sont choisies à chaque itération d’apprentissage. On entraîne les encodeurs à trouver quel encodage d’image correspond quel encodage de texte, créant ainsi une “correspondance entre les espaces des textes et des images”

Exploitation de cet espace latent pour la classification

Le principe de fonctionnement est le suivant :

  • Identification des labels de la tâche de classification
  • Encodage du texte de chaque label possible avec l’encodeur de texte
  • Encodage de l’image que l’on souhaite classifier
  • Mesure de la distance entre l’encodage de l’image et les encodages des labels
  • Proposition du label avec la plus petite distance entre les encodages

Performance

Ce modèle bat un nombre significatif de modèles complètement entraînés sur des taches particulières. Il arrive a mieux généraliser en dehors de ses données d’apprentissage que l’état de l’art. Il “comprend” des notions complexes comme les caricatures, reconnaît des personnalités importantes et est capable de faire des classifications sur des concepts abstraits.

Dalle -2

Maintenant que l’on a vu toutes les composantes de Dalle-2 on peut finalement rentrer dans son fonctionnement.

Fonctionnement

Dalle 2 fonctionne en 3 étapes. Tout d’abord l’encodage du texte que l’on veut utiliser est fait par CLIP, utilisé “tel quel”. Ensuite une deuxième étape transforme l’encodage textuel de CLIP en encodage d’image de CLIP. Pour ce faire un modèle de diffusion “simple” est entraîné a faire cette transformation. Finalement un deuxième modèle de diffusion est utilisé pour générer l’image a partir de l’encodage d’image de CLIP.


Processus de génération d’image par Dalle-2 (Source: Hierarchical Text-Conditional
Image Generation with CLIP Latents
)

Performances

Les performances de Dalle-2 sont stupéfiantes, Il est capable de générer des images de divers styles : peintures, dessins, photographies, représenter des personnages reconnaissables comme Salvador Dali (bien sur) ou même des objets comme une dalle. Il produit des images d’une grande variété même avec la même description en entrée.

“She’s crazy like a fool, what about Dalle is cool”

Boney M. Datascientist spécialisé en réseaux profonds

Exemple de quelques images générées par Dalle-2 :

Et maintenant ?

Une technologie qui évolue fortement

L’utilisation de modèles de diffusion a commencé à être significatif à partir de mai 2021, mais des recherches supplémentaires ont déjà porté leurs fruits : Imagen de Google (mai 2022)  permet déjà d’obtenir de meilleurs résultats.

Un panel d’individus confrontés à des images générées par les deux algorithmes, Imagen et Dalle-2 on trouvé que les images synthétisées par l’algorithme de Google étaient plus réalistes et collaient mieux a la description.

Est-ce disponible pour tout un chacun ?

Des versions réduites telles que Dalle-mini sont à disposition en open source ici. Au prix d’un peu d’espace disque et de patience, cela fonctionne sur n’importe quel PC.

La version complète de Dalle est entrain d’être ouverte, et on peut demander accès ici.

Quels usages pour cette technologie?

La capacité à générer des images comme Dalle – 2 le fait, ou que même Imagen ou des futures évolutions le feront est une prouesse technique incroyable. Cela reste pour l’heure avant tout un tour de force technique qui n’a pas encore d’application directe au delà de l’amusement.

Néanmoins, des questions se posent sur l’utilisation et le développement de ce type de modèles :

  • Quels impacts peuvent-ils avoir sur les artistes ? (photographes, dessinateurs, peintres, cinéastes, créateurs de jeux vidéos…)
  • Quels impacts peuvent ils avoir sur le journalisme ? La notion de “preuve” par l’image ou la vidéo est déjà fortement écornée depuis quelques temps, mais on franchit ici une nouvelle étape.

Ce sont des questions qui vont avoir besoin de temps pour être résolues et qui vont nécessiter un travail au delà du cercle des data scientist et informaticiens pour mener une réflexion complète élargie aux sciences sociale

Des points d’attention

Néanmoins, ce qui est sur est que le modèle reproduit les distributions qu’il retrouve dans ses sources de données. Sachant qu’il s’entraîne sur des millions d’images trouvées sur internet, il est certain que les biais usuels sont au rendez vous : les programmeurs sont des hommes blancs, les infirmiers sont toujours des femmes… et bien encore, comme presque tout modèle entraîné sur des données public : le triste reflet de notre monde. L’éthique dans l’IA n’en est qu’à ses balbutiements.

Images simulées sur Dalle mini version très”light” de Dalle disponible ici.

En bref, on a la dalle de voir la suite.


Publié

dans

par

Étiquettes :

Commentaires

2 réponses à “J’ia la Dalle-2”

  1. Avatar de Bigbang
    Bigbang

    Cet article est passionnant.
    L’inverse est-il possible ?
    L’IA peut-elle décrire une image ?
    Ce serait très intéressant pour les non votants par exemple, ou bien pour analyser des tableaux.
    Bonne continuation.

  2. Avatar de Bigbang
    Bigbang

    * non voyant

Blog at WordPress.com.