7 septembre 2021

IA multimodale : vue d'ensemble + expériences avec DALL-E & CLIP

Les contributeurs
Juta Staes
Machine Learning Engineer | Squad Lead
Aucun élément trouvé.
S'abonner à la newsletter
Partager cet article

Au cours des dernières années, l'IA a réalisé des progrès significatifs dans des applications spécifiques telles que l'achèvement de textes et la classification d'images. Cependant, jusqu'à récemment, les progrès en matière de compréhension plus générale des différents domaines faisaient défaut. Avec l'arrivée de modèles multimodaux tels que DALL-E et CLIP, il devient possible d'interpréter et de générer du texte, des images et des combinaisons des deux au sein d'un même modèle. Dans ce billet, je vais me plonger dans le monde de l'IA multimodale : nous verrons ce que c'est et nous examinerons un peu l'histoire. Ensuite, nous examinerons DALL-E et CLIP d'un peu plus près, ainsi que certaines expériences que nous avons réalisées avec ces modèles.

Source : https://openai.com/blog/dall-e/.

L'IA multimodale

Explication

Commençons par expliquer ce qu'est une modalité. En tant qu'êtres humains, nous pouvons comprendre le monde qui nous entoure : nous pouvons voir des objets, entendre des sons et lire des livres. Chacun de ces signaux peut être considéré comme une modalité différente : images, sons et textes. Les différentes modalités sont caractérisées par des propriétés statistiques différentes. Par exemple, les images sont généralement représentées en stockant les valeurs des pixels dans une carte en 2D, tandis que le texte peut être représenté comme une séquence de vecteurs numériques, où chaque vecteur représente un mot.

Exemples de modalités et de leurs caractéristiques de données.

Pour que l'IA puisse comprendre le monde qui nous entoure, elle doit être capable d'interpréter ces différentes modalités et de raisonner sur elles en même temps. C'est exactement ce que fait l'IA multimodale. Elle utilise différentes modalités comme entrées/sorties et les combine dans un même modèle. Voici quelques exemples de cas d'utilisation : la génération d'une légende pour une image, la réponse à des questions visuelles ou la détection d'émotions basée à la fois sur l'audio et le texte. Dans ce billet de blog, nous nous pencherons plus particulièrement sur les modèles qui combinent le texte et les images. Mais tout d'abord, examinons de plus près l'histoire de l'IA multimodale, toutes modalités confondues.

L'histoire

L'un des premiers exemples de recherche multimodale est la reconnaissance audio-visuelle de la parole (AVSR) de Yuhas et al. (1989). Elle a été motivée par l'effet McGurk, un phénomène qui démontre une interaction entre l'audition et la vision dans la perception de la parole. Il montre qu'un son peut être perçu différemment lorsqu'il est associé à un élément visuel non correspondant. Actuellement, l'AVSR est surtout utilisé dans le cas de signaux audio bruyants, car les informations visuelles se sont avérées redondantes lorsqu'elles sont associées à des signaux audio de haute qualité.

Une deuxième catégorie importante d'applications multimodales provient du domaine de l'indexation et de la recherche de contenu multimédia. Ce problème a d'abord été résolu à l'aide d'approches basées sur des mots-clés, mais à la fin des années 1990, de nouvelles techniques ont été utilisées pour interroger directement le contenu. Des modèles multimodaux ont été mis au point, combinant la vidéo et l'audio en tant qu'entrée pour soutenir l'indexation vidéo basée sur le contenu. Snoek et al. (2003) donne un aperçu de l'état de l'art à l'époque.

Une troisième catégorie de recherche multimodale a été établie au début des années 2000 autour du domaine de la reconnaissance des émotions dans le but de comprendre les comportements humains lors des interactions sociales. En 2011, le premier concours d'émotions audiovisuelles (AVEC) a été organisé. À partir de 2012, de nombreux progrès ont été réalisés grâce à de fortes avancées techniques dans la classification d'images, puis dans la détection de visages. Un résumé des progrès récents dans la reconnaissance multimodale des affects a été publié par D'Mello et al.(2015).

Plus récemment, une nouvelle catégorie d'applications multimodales a vu le jour, mettant l'accent sur le langage et la vision : la description et la génération de médias. L'une des applications les plus représentatives est le sous-titrage d'images, où la tâche consiste à générer une description textuelle de l'image d'entrée. En 2017, Vaswani et al. ont présenté les transformateurs comme une nouvelle architecture de modèle utilisée pour les applications NLP. Peu après, les transformateurs ont également été utilisés pour les applications de vision. En 2021, l 'OpenAI a publié deux modèles multimodaux (DALL-E et CLIP) combinant des données visuelles et textuelles qui utilisent l'architecture des transformateurs. Les deux réseaux utilisent un grand nombre de paramètres et sont entraînés sur d'énormes ensembles de données. Ils donnent des résultats très impressionnants. Compte tenu de cette évolution récente, je pense que nous n'en sommes qu'au début de ce que l'IA multimodale a à nous offrir et qu'elle ne manquera pas de nous submerger encore plus à l'avenir.

Architecture d'un transformateur utilisant le mécanisme d'attention, source : https://arxiv.org/abs/1706.03762.

Assez parlé de ce qu'est l'IA multimodale et de sa raison d'être, voyons maintenant comment elle fonctionne. Dans la suite de cet article, nous examinerons de plus près ces deux modèles : DALL-E ET CLIP. Nous décrirons brièvement chaque modèle, ses capacités et la manière dont il a été entraîné. Ensuite, nous présenterons quelques expériences que nous avons réalisées avec ces deux modèles : nous avons entraîné notre propre modèle DALL-E à partir de zéro et nous avons utilisé un modèle CLIP pré-entraîné prêt à l'emploi et nous l'avons testé.

DALL-E

À partir de GPT-2, le ton a été donné pour créer des réseaux de transformateurs avec plusieurs milliards de paramètres. DALL-E est un réseau génératif de 12 milliards de paramètres qui crée des images sur la base d'une entrée textuelle. Il peut générer des images à partir de zéro sur la base d'une description, mais il peut également régénérer des régions rectangulaires spécifiques d'une image existante d'une manière qui soit cohérente avec l'invite textuelle. Pour passer à 12 milliards de paramètres, OpenAI a créé un ensemble de données de 250 millions de paires texte-image pour entraîner le réseau.

Pour comprendre le fonctionnement du réseau, je recommande de regarder la vidéo de Yannic Kilcher où il explique le fonctionnement de DALL-E, ou de lire l'article. Ici, je n'expliquerai que quelques éléments de base. Tout d'abord, il faut savoir que DALL-E utilise un auto-codeur variationnel (VAE) pré-entraîné qui fait correspondre toutes les images à une grille 32x32 de jetons, où chaque jeton fait partie d'un vocabulaire fixe de taille 8192. Ce VAE, qui peut reconstruire les images sur la base de la grille 32x32, permet au réseau de raisonner sur l'image dans un espace relativement restreint. Deuxièmement, DALL-E combine les 256 jetons de texte codés par BPE avec ces jetons 32x32 (=1024) et les modélise de manière autorégressive comme un seul flux de données. Cela signifie que le transformateur est entraîné à chaque itération à générer le jeton suivant sur la base du texte d'entrée et des jetons déjà générés. Le transformateur est un modèle de décodage uniquement dans lequel chaque jeton d'image peut s'occuper de tous les jetons de texte dans n'importe laquelle de ses couches d'attention et il utilise une attention éparse pour les autres jetons d'image.

Vue d'ensemble de la formation de DALL-E et de son utilisation pour générer des images.

Par conséquent, DALL-E est capable de générer des images très impressionnantes. Il peut notamment combiner des concepts non liés de manière plausible (a), créer des versions anthropomorphisées d'animaux et d'objets (b), restituer du texte (c) et appliquer des transformations à des images existantes (d). Des exemples de ces capacités sont visibles sur l'image ci-dessous.

Exemples de résultats de DALL-E, source : https://arxiv.org/pdf/2102.12092.pdf

Expériences avec DALL-E

Chez ML6, nous essayons de rester à la pointe de l'innovation. La sortie de DALL-E et du code pour l'exécuter nous a donné l'occasion de l'expérimenter. Le code que nous avons utilisé pour cette expérience se trouve ici : github.com/lucidrains/DALLE-pytorch. Notez que bien que le code ait été publié, le modèle pré-entraîné n'est pas disponible, nous avons donc dû entraîner le modèle à partir de zéro. Nous avons entraîné DALL-E sur un ensemble de données que nous avons créé à partir de Material Design Icons, où nous avions 6000 images avec une description. Nous avons choisi d'ajouter chaque icône 8 fois pour 8 couleurs différentes, ce qui nous a permis d'obtenir un ensemble de données d'une taille de 48 000. La résolution de l'image était de 128x128.

Pour que le système fonctionne sur un ensemble de données plus petit, et également en raison des ressources informatiques limitées, les réseaux formés ont dû être beaucoup plus petits. Une technique consiste à réduire la taille des données d'entrée en utilisant des images de plus petite résolution ou en limitant la taille des jetons de texte. Une autre technique consiste à rendre les réseaux moins profonds. Nous avons d'abord entraîné la VAE avec un vocabulaire de 512 mots. Le DALL-E a ensuite été entraîné avec 32 jetons d'entrée, et la taille du réseau a été limitée.

Les résultats sont assez intéressants à voir. La qualité est loin des résultats présentés par OpenAI. Cela n'est pas surprenant étant donné que nous avons utilisé un si petit ensemble de données. Mais nous pouvons voir que notre réseau a appris certains concepts et qu'il a également appris à les combiner. Pour qu'il fonctionne mieux, il faudrait consacrer plus de temps à l'optimisation de la taille du réseau pour les petites images et à un entraînement plus long.

Résultats de l'entraînement personnalisé de DALL-E.

CLIP

Ce que nous n'avons pas encore mentionné à propos de DALL-E, c'est qu'il utilise en fait un modèle supplémentaire pour classer les images résultantes, un modèle appelé CLIP. DALL-E peut par exemple générer jusqu'à 512 images et seules les 32 meilleures seront conservées sur la base du classement obtenu par CLIP.

CLIP est un ensemble de modèles qui se généralisent à différentes tâches visuelles sans avoir été explicitement formés à ces tâches. Souvent, les modèles SOTA sont performants pour la tâche pour laquelle ils ont été entraînés, mais ne se généralisent pas à d'autres tâches. CLIP vise à résoudre ce problème. Il propose une tâche de pré-entraînement où, à partir d'une image, le modèle doit prédire, parmi un ensemble de 32 768 extraits de texte échantillonnés de manière aléatoire, lequel a été effectivement associé à cette image dans leur ensemble de données. Comme pour DALL-E, ils utilisent un énorme ensemble de données, composé de 400 millions de paires (image, texte), pour entraîner le modèle.

Pour résoudre cette tâche, notre intuition est que les modèles CLIP devront apprendre à reconnaître une grande variété de concepts visuels dans les images et à les associer à leurs noms. Par conséquent, les modèles CLIP peuvent être appliqués, d'emblée, à un grand nombre de tâches de classification visuelle. L'image ci-dessous en est un exemple. Les données d'apprentissage pour CLIP peuvent consister en plusieurs images de chiens associées à une description textuelle. Si nous voulons ensuite utiliser CLIP pour classer le type d'animal, nous pouvons le faire en incluant les différents types d'animaux dans une description telle que "une photo de chien". Nous pouvons alors voir avec quelle description l'image a le plus de chances d'être associée.

Source : https://arxiv.org/pdf/2103.00020.pdf.

Ce comportement s'appelle l'apprentissage à partir de zéro. Il s'agit de reconnaître un concept sans en avoir vu explicitement des exemples. Le modèle n'a jamais vu d'images de chiens étiquetées, mais il est capable d'effectuer la tâche de classification. Il est donc possible d'utiliser le modèle sans avoir besoin d'un ensemble de données étiquetées, dont la création est souvent coûteuse.

Expériences avec CLIP

Alors que le modèle DALL-E n'a pas été publié, le code source et le modèle formé pour CLIP ont été mis à la disposition du public. Cela nous a donc donné l'occasion de l'essayer nous-mêmes. Nous avons créé une application avec du code basé sur le dépôt suivant : https://github.com/openai/CLIP.

Tous ceux qui travaillent chez ML6 savent que les mèmes font partie de notre culture, et nous avons beaucoup de plaisir à partager et à créer des mèmes chaque semaine. Nous vous présentons donc : le meme finder. Une application, créée par mon collègue Thomas Dehaene, qui permet de trouver des modèles de mèmes à partir d'une description textuelle. Nous avons préalablement intégré toutes les images de mèmes avec CLIP, et lorsque quelqu'un entre une requête de recherche, nous intégrons le texte et renvoyons les images de mèmes les plus similaires. Vous pouvez l'essayer vous-même à l'adresse https://memefinder.ml6.eu/.

Conclusion

Nous avons examiné ce qu'est l'IA multimodale, quelles sont ses applications et quelles sont les avancées les plus récentes. Ce sont surtout ces derniers développements qui me rendent très enthousiaste et curieux pour ce qui reste à venir. Nous voyons clairement comment la combinaison d'un énorme calcul et d'énormes ensembles de données, associée au bon modèle, peut conduire à des modèles formidables et très performants. Dommage que tous les ingénieurs en ML ne disposent pas de 250 GPU et d'un ensemble de données étiquetées de plus de 100 millions d'images.

DALL-E et CLIP sont tous deux des modèles très impressionnants, dont nous pouvons tirer de nombreux enseignements. Dans les deux modèles, il est clairement démontré que l'IA est capable d'apprendre à partir de différents types de données. Les images et les textes ont des propriétés très différentes et pourtant nous sommes capables de les modéliser dans le même espace. C'est quelque chose que nous ne pouvions pas imaginer il y a dix ans, lorsque nous étions à peine capables de classer des images. Imaginez ce que l'IA sera capable de faire dans 10 ans...

Sources d'information

Postes connexes

Voir tout le contenu
Aucun résultat n'a été trouvé.
Il n'y a pas de résultats correspondant à ces critères. Essayez de modifier votre recherche.
Grand modèle linguistique
Modèles de fondation
Entreprise
Personnes
Données Structurées
Chat GPT
Durabilité
Voix et son
Développement frontal
Protection des données et sécurité
IA responsable/éthique
Infrastructure
Hardware et capteurs
MLOps
IA générative
Natural Language Processing
Vision par ordinateur