Le nouveau modèle DALL·E 2 d'OpenAI est incroyable !

L'année dernière, j'ai écrit au sujet de DALL·E, un modèle étonnant d'OpenAI capable de générer des images à partir d'une saisie de texte avec des résultats incroyables. Il est maintenant temps pour son grand frère, DALL·E 2. Et vous n'en croirez pas les progrès réalisés en une seule année ! DALL·E 2 n'est pas seulement meilleur pour générer des images photoréalistes à partir de texte. Les résultats sont également quatre fois plus haute définition!

DALL-E 2 a généré des images avec la légende : Ours en peluche travaillant sur de nouvelles recherches sur l'IA sous l'eau avec la technologie des années 1990.

Comme si ce n'était pas déjà assez impressionnant, le modèle récent a appris une nouvelle compétence; l’inpainting d'image.

DALL·E pouvait générer des images à partir d'entrées de texte.

DALL·E 2 peut faire mieux, mais cela ne s'arrête pas là. Il peut également éditer ces images et les rendre encore plus belles ! Ou ajouter simplement un objet que vous souhaitez, comme des flamants roses en arrière-plan.

C'est ce qu'est l'image inpainting. Nous prenons la partie d'une image et la remplaçons par quelque chose d'autre en suivant le style et les reflets de l'image en gardant le réalisme. Bien sûr, cela ne remplace pas seulement la partie de l'image au hasard, ce serait trop facile pour OpenAI. Ce processus de “peinture” est guidé par le texte, ce qui signifie que vous pouvez lui dire d'ajouter un flamant rose ici ou là.

DALL-E 2 a généré des images avec la légende : ajoutez un flamant rose (spécifiant le lieu).

Voyons comment DALL·E 2 peut non seulement générer des images à partir de texte, mais est également capable de les éditer. En effet, cette nouvelle compétence d'inpainting acquise par le réseau est due à sa meilleure compréhension des concepts et des images elles-mêmes, localement et globalement.

Ce que je veux dire par localement et globalement, c'est que DALL·E 2 comprend mieux pourquoi les pixels les uns à côté des autres ont ces couleurs, car il comprend les objets de la scène et leurs interrelations les uns avec les autres. De cette façon, le modèle pourra comprendre que cette eau a une réflexion et que l'objet à droite doit également s'y refléter.

DALL-E 2 a généré cette image avec la légende : ajoutez un flamant rose (spécifiant le lieu). Voir le reflet dans l'eau sous les flamants roses.

Le modèle comprend également la scène globale; ce qui se passe, comme si vous deviez décrire ce qui se passait lorsque la personne a pris la photo.

DALL-E 2 a généré cette image avec la légende : Un astronaute à cheval.

Ici, vous diriez que cette photo n'existe pas. Évidemment, sinon je suis définitivement partant pour essayer ça. Si on oublie que c'est impossible, on pourrait expliquer l’image comme étant un astronaute à cheval dans l'espace. Donc, si je vous demandais de dessiner la même scène, mais sur une planète plutôt que flottant dans l'espace, vous pourriez imaginer quelque chose comme ça puisque vous comprenez que le cheval et l'astronaute sont les objets d'intérêt à garder dans l'image .

DALL-E 2 a généré cette image avec la légende : Un astronaute à cheval.

Cela semble évident, mais c'est extrêmement complexe pour une machine qui ne voit que des pixels de couleurs, c'est pourquoi DALL·E 2 est si impressionnant.

Mais comment le modèle comprend-il exactement le texte que nous lui envoyons et peut-il en générer une image ? Eh bien, c'est assez similaire au premier modèle que j'ai couvert sur la chaîne.

Il commence par utiliser le modèle CLIP d'OpenAI pour encoder à la fois un texte et une image dans le même domaine ; une représentation condensée appelée code latent.

Ensuite, le modèle va prendre cet encodage et utiliser un générateur, aussi appelé décodeur, pour générer une nouvelle image qui signifie la même chose que le texte puisqu'elle est issue du même code latent. Donc DALL·E 2 a deux étapes ; CLIP pour encoder les informations et le nouveau modèle de décodeur, pour prendre ces informations encodées et en générer une image. Ces deux étapes séparées sont également la raison pour laquelle nous pouvons générer des variations des images. Nous pouvons simplement modifier légèrement au hasard l'information encodée, en la faisant bouger un tout petit peu dans l'espace latent, et elle représentera toujours la même phrase tout en ayant des valeurs différentes créant une image différente représentant le même texte.

Présentation du modèle. Image tirée du papier.

Comme nous le voyons ici, le modèle prend initialement une entrée de texte et l'encode.

Ce que nous voyons ci-dessus est la première étape du processus de formation où nous lui fournissons également une image et l'encodons à l'aide de CLIP afin que les images et les textes soient encodés de la même manière en suivant l'objectif CLIP. Ensuite, pour générer une nouvelle image, nous passons à la section ci-dessous où nous utilisons l’encodage de texte guidé par CLIP pour le transformer en un encodage prêt pour l'image. Cette transformation est effectuée à l'aide d'un prior de diffusion, que nous aborderons sous peu, car il est très similaire au modèle de diffusion utilisé pour l'étape finale. Enfin, nous utilisons notre encodage d'image nouvellement créé et le décodons en une nouvelle image à l'aide d'un décodeur de diffusion !

Modèle de diffusion. Image de lilianweng.

Un modèle de diffusion est une sorte de modèle qui part d'un bruit aléatoire et apprend à modifier itérativement ce bruit pour revenir à une image. Par bruit on entend des données aléatoires. Le modèle apprend cela en faisant le contraire. Pendant la formation, nous lui fournirons des images et appliquerons un bruit gaussien aléatoire sur l'image de manière itérative jusqu'à ce que nous ne puissions plus rien voir d'autre que du bruit. Ensuite, nous renversons simplement le modèle pour générer des images à partir du bruit. Si vous souhaitez plus de détails sur ce genre de réseau, qui sont vraiment cool, je vous invite à regarder cette vidéo que j'ai faite à leur sujet.

Et voilà ! C'est ainsi que DALL·E 2 génère des images d'une telle qualité d’après une entrée texte ! C'est super impressionnant et nous montre que le modèle comprend le texte.

Mais comprend-il profondément ce qu'il a créé ? Eh bien, ça y ressemble. C'est la capacité de “peindre” des images dont nous avons discuté en début d’article qui nous fait croire qu'il comprend assez bien les images. Mais pourquoi en est-il ainsi, comment peut-il lier une entrée de texte à une image et comprendre suffisamment l'image pour n'en remplacer que certaines parties sans affecter le réalisme? Tout cela est dû à CLIP, car il relie une entrée de texte à une image. Si nous encodons notre image nouvellement générée et utilisons une entrée de texte différente pour guider une autre génération, nous pouvons générer cette deuxième version de l'image qui remplacera uniquement la région souhaitée dans notre première génération. Et vous vous retrouverez avec cette image :

Malheureusement, le code de DALL·E 2 n'est pas accessible au public et n'est pas encore dans leur API. La raison de cette privatisation du modèle est, selon OpenAI, d'étudier les risques et les limites d'un modèle aussi puissant. Ils discutent de ces risques potentiels et de la raison de cette confidentialité dans leur article et dans un excellent répertoire que j'ai lié dans les références ci-dessous si vous êtes intéressé. Ils ont également ouvert un compte Instagram pour partager plus de résultats si vous souhaitez voir cela, il est également lié ci-dessous.

J'ai adoré DALL·E, et ce modèle est encore plus cool. Bien sûr, ce n'était qu'un aperçu du fonctionnement de DALL·E 2 et je vous invite fortement à lire leur excellent article lié ci-dessous pour plus de détails sur leur mise en œuvre du modèle.

J'espère que vous avez apprécié l'article autant que j'ai aimé l'écrire, et si c'est le cas, pensez à soutenir mon travail sur YouTube en vous abonnant à la chaîne et en commentant ce que vous pensez de ce résumé. J'aimerais lire ce que vous pensez!

Regardez la vidéo sous-titrée en anglais

Références

►Regardez la vidéo: https://youtu.be/rdGVbPI42sA
►A. Ramesh et al., 2022, DALL-E 2 : https://cdn.openai.com/papers/dall-e-2.pdf
►Blogue d’OpenAI: https://openai.com/dall-e-2
►Risques et limitations: https://github.com/openai/dalle-2-preview/blob/main/system-card.md
►Page instagram d’OpenAI Dalle: https://www.instagram.com/openaidalle/
►Ma Newsletter (en anglais): https://www.louisbouchard.ai/newsletter/

Louis-François Bouchard

Hello! Je suis Louis-François Bouchard, de Montréal, Canada, aussi connu sous le nom de 'What's AI' et j'essaie de partager et de vulgariser tout ce qui est en lien avec l'intelligence artificielle. Mon objectif est de démystifier la «boîte noire» de l'IA pour tous et de sensibiliser les gens aux risques de son utilisation.

https://www.youtube.com/channel/UCIUgms0TE2WhQijbU-IMYyw
Précédent
Précédent

Une IA qui résume automatiquement vos documents

Suivant
Suivant

NVIDIA transforme vos photos en scènes 3D en quelques millisecondes !