Grands modèles de langageVision par ordinateurActualités et analyses de l'IAGrands modèles de langageVision par ordinateurActualités et analyses de l'IA
Grands modèles de langage10 min de lecture

Comment construire un LLM multimodal comme GPT-4o ?

Une présentation claire de Chameleon, l’idée de LLM multimodal derrière les systèmes comme GPT-4o, et de ce qui change pour les modèles de texte, d’image et de vidéo.

Comment construire un LLM multimodal comme GPT-4o ?
Sommaire

À retenir

  • Maintenant que nous avons examiné le « comment » de la construction d’un modèle multimodal, où exactement est-il utile et en quoi diffère-t-il d’autres modèles comme GPT-4 ou Llama ?
  • Lorsqu’un modèle ne traite qu’un seul type, comme GPT-4 pour le texte, il est unimodal.
  • Cela signifie qu’à mesure que le modèle s’entraîne sur des millions d’exemples, les valeurs peuvent lentement augmenter et causer de l’instabilité.

Regardez la vidéo :

Ces dernières semaines ont été passionnantes avec la sortie de plusieurs modèles multimodaux révolutionnaires, comme GPT-4o ou, plus intéressant encore, l’alternative open source de Meta, Chameleon.

Même si le terme est un peu lourd, tous les futurs modèles seront multimodaux.

Mais qu’est-ce qu’un modèle multimodal exactement, et pourquoi est-ce important ? Je m’appelle Louis-François. Je suis l’un des fondateurs de Towards AI, où nous essayons de rendre l’IA plus accessible avec du contenu gratuit comme cette vidéo et d’autres ressources éducatives, comme notre récent livre. Aujourd’hui, nous plongeons dans les modèles multimodaux grâce à l’article de recherche de Chameleon, qui contient des détails très utiles pour construire un modèle aussi puissant.

Le terme multimodal désigne la capacité de traiter différents types d’information, comme l’audio, la vidéo, le texte et les images, chacun étant appelé un mode. D’où le nom multimodal, pour plusieurs modes ou modalités. Lorsqu’un modèle ne traite qu’un seul type, comme GPT-4 pour le texte, il est unimodal. Dans le cas de GPT-4o, vous pouvez lui fournir directement des images et de l’audio sans avoir à transformer ces autres modalités au préalable.

Pour mieux comprendre l’ensemble du processus, prenons l’exemple où vous décrivez votre scène de film préférée à une personne aveugle. Vous devrez peut-être lui donner chaque détail : les personnes, leurs émotions, l’esthétique et l’ambiance générale. Il faut donc une synchronisation complète du texte et de la scène. Du visuel et de l’audio. Le texte seul ne lui rendrait pas justice. Le modèle pourrait générer cette description beaucoup plus facilement s’il comprenait à la fois le texte et les images correspondantes de la vidéo.

Exemple visuel de l’article « Comment construire un LLM multimodal comme GPT-4o ? »

C’est là que les modèles multimodaux deviennent utiles.

Mais comment fait-on cela ? Comment prendre des images, du texte et de l’audio alors que le texte est très différent des pixels ou des ondes sonores ? Chaque image, texte ou mode est converti sous forme numérique. Cette forme numérique capture les détails ou caractéristiques de base dans une représentation compressée. C’est ce qu’on appelle l’encodage de l’information, effectué par un encodeur. Toutes les données que nous avions sont donc compressées dans un espace plus petit appelé espace latent. Nous les traitons ensuite avec notre modèle, par exemple un Transformer, avant de générer de nouveau du texte avec un décodeur. Celui-ci effectue l’opération inverse et transforme ce vecteur de contexte, ou cette forme numérique simplifiée, dans le format souhaité, par exemple en une réponse bien formulée par ChatGPT.

Exemple visuel de l’article « Comment construire un LLM multimodal comme GPT-4o ? »

Comme vous pouvez l’imaginer, Dall-E, MidJourney et les autres modèles de génération d’images sont aussi des modèles multimodaux. Ils utilisent du texte et des images pour créer des images modifiées. Alors, qu’est-ce qui change ? Le processus d’encodage convertit séparément une image et le texte dans cet espace encodé. Pour l’encodage et le décodage, ces modèles disposent de composants propres à chaque modalité, comme des encodeurs d’images et des encodeurs de texte, puis ils apprennent à produire des encodages semblables pour des concepts semblables dans les deux formats, notamment avec un modèle comme CLIP, dont nous avons parlé dans une vidéo précédente.

Exemple visuel de l’article « Comment construire un LLM multimodal comme GPT-4o ? »

Le problème, c’est que cette approche demande beaucoup de ressources et que l’image et le texte restent toujours un peu différents, plus proches de leur propre modalité. Au lieu d’avoir des mécanismes distincts, pourquoi ne pas les combiner en un seul ? Il deviendrait facile de générer des séquences entrelacées d’images et de texte sans composants particuliers. Eh bien, c’est exactement ce que fait Gemini : il utilise le même mécanisme d’encodage, qu’il reçoive une image ou du texte. Mais au moment du décodage, donc de la conversion de la forme numérique au médium voulu, Gemini utilise des processus distincts.

Exemple visuel de l’article « Comment construire un LLM multimodal comme GPT-4o ? »

C’est là que le nouveau modèle Chameleon de Meta se distingue le plus. Même au décodage, il utilise le même mécanisme. Il devient ainsi un modèle multimodal fluide de bout en bout, ce qu’ils appellent un modèle de fusion.

Exemple visuel de l’article « Comment construire un LLM multimodal comme GPT-4o ? »

Un Transformer génère un token ou un mot à la fois. Pour le texte, c’est simple puisqu’il n’a pas besoin d’une longueur précise. Mais pour les images, qui exigent des dimensions précises, Chameleon limite la longueur des tokens d’image et masque ces tokens lorsqu’il génère du texte.

Si cela semble si simple, pourquoi les modèles précédents n’utilisaient-ils pas un encodeur unifié ? Parce que sa mise en œuvre est plutôt difficile. Vous vous souvenez de l’espace latent dont nous avons parlé ? Les différents types de données s’y compressent différemment. Comme je l’expliquais avec CLIP, le texte s’aligne souvent davantage sur d’autres textes que sur l’image qu’il décrit. Il est donc essentiel d’aligner correctement ces différents types pour que le modèle fonctionne bien.

Exemple visuel de l’article « Comment construire un LLM multimodal comme GPT-4o ? »

Reprenons notre exemple de la description d’une scène de film. Le texte et les images doivent être parfaitement synchronisés lorsqu’ils sont convertis en une série de nombres. Cet alignement est difficile. Pensez simplement à la fréquence d’images : quelle image choisir selon ce qui est dit, en plus des descriptions textuelles et des sons présents dans la scène. Cela devient vite compliqué si vous voulez tout comprendre et peut causer des problèmes de stabilité pendant l’entraînement.

Alors, comment ont-ils réglé ces problèmes précisément ? À partir de leurs observations pendant la construction et l’entraînement, ils ont apporté quelques changements architecturaux clés aux modèles Transformer précédents.

Pendant l’entraînement de ces modèles multimodaux, ils ont remarqué que la performance du modèle se dégradait avec le temps. Cela provenait d’une lente augmentation de certaines valeurs, ou normes, causée par la fonction softmax. Qu’est-ce qu’une fonction softmax ? Elle transforme un vecteur de scores en probabilités. Cette fonction essentielle prend les nombres traités par nos blocs Transformer et produit de véritables probabilités entre 0 et 1, tout en s’assurant que leur somme est égale à 1. Cependant, la fonction softmax ne tient pas compte à elle seule de l’échelle des valeurs avant son application, ce qui peut entraîner des problèmes avec le temps.

Exemple visuel de l’article « Comment construire un LLM multimodal comme GPT-4o ? »

La normalisation, quant à elle, veille à ce que les valeurs fournies à la fonction softmax demeurent stables en les gardant dans une certaine plage. Cela contribue à la stabilité de l’entraînement et de la performance. Sans normalisation, les valeurs peuvent devenir trop élevées et causer de l’instabilité.

Voici le problème : la fonction softmax ne change pas si vous ajoutez une constante à tous les inputs. Cela signifie qu’à mesure que le modèle s’entraîne sur des millions d’exemples, les valeurs peuvent lentement augmenter et causer de l’instabilité. Cette instabilité survient juste avant les fonctions softmax du mécanisme d’attention des Transformers.

Cette instabilité est causée par un goulot d’étranglement précis juste avant nos fonctions softmax : le mécanisme d’attention des Transformers. Dans ce mécanisme, une requête revient à poser une question précise sur la scène, comme « Qui sont les personnages ? » Les clés représentent les éléments d’information de la scène, comme les détails sur les personnages, l’esthétique et l’ambiance. Les valeurs représentent l’information réelle sur chaque personnage, comme son apparence et ses actions. Le modèle utilise les requêtes et les clés pour calculer les scores d’attention. Ces scores servent ensuite à pondérer la valeur et son importance pour cette scène précise. Ils peuvent être très élevés. La normalisation garantit que les scores d’attention sont mis à l’échelle correctement, ce qui permet au modèle de pondérer efficacement l’importance des différents inputs.

Exemple visuel de l’article « Comment construire un LLM multimodal comme GPT-4o ? »

C’est le processus derrière n’importe quel Transformer, mais ici, chaque médium, comme l’image ou le texte, rivalise avec les autres pour mettre les valeurs à jour. Leur croissance s’accélère alors et crée de l’instabilité. Pour surmonter ce problème, ils ont modifié l’étape de normalisation afin de mieux contrôler la croissance des valeurs fournies à la fonction softmax, en appliquant la normalisation par couche aux vecteurs de clé et de requête du mécanisme d’attention. C’était le premier changement, appelé « normalisation des clés et des requêtes (QK-norm) ».

Nous avons déjà vu que la normalisation nous aide à contrôler la croissance des valeurs d’input. Mais dans les Transformers habituels, comme Llama, le Transformer avait cette structure :

Exemple visuel de l’article « Comment construire un LLM multimodal comme GPT-4o ? »

Ici, la normalisation, soit le fait de ramener les valeurs dans une certaine plage, survient après le calcul de l’attention. Ils ont augmenté la stabilité du modèle en modifiant ou en réorganisant les étapes de normalisation pour qu’elle ait lieu avant ces processus.

Exemple visuel de l’article « Comment construire un LLM multimodal comme GPT-4o ? »

Maintenant que nous avons examiné le « comment » de la construction d’un modèle multimodal, où exactement est-il utile et en quoi diffère-t-il d’autres modèles comme GPT-4 ou Llama ? Dans des applications qui répondent à des questions sur une image comme celle-ci, ou dans d’autres où vous voulez filmer quelque chose et poser des questions, comme dans les récentes vidéos de démonstration d’OpenAI qui ont fait beaucoup de bruit…

Exemple visuel de l’article « Comment construire un LLM multimodal comme GPT-4o ? »

Image tirée de l’article de recherche Chameleon.

Lorsque vous avez besoin d’information visuelle ou audio sur notre monde, en cohésion avec du texte, ces modèles surpassent les autres. Par exemple, pour notre description de film, il fallait relier chaque détail de la scène au texte. Chameleon traite les données d’image et de texte avec exactement la même représentation encodée. Il apprend donc plus efficacement les relations entre les images et le texte en compressant toutes les données dans le même espace. Comme le décodage utilise la même représentation, tout se fait dans un seul processus et le raisonnement s’améliore. Un modèle de bout en bout offre donc une meilleure efficacité et une plus grande cohérence, autant pendant l’entraînement que dans les résultats. Il s’agit d’un pas important pour l’IA multimodale, qui combine différents types de données de manière fluide.

Exemple visuel de l’article « Comment construire un LLM multimodal comme GPT-4o ? »

Image tirée de l’article de recherche Chameleon.

Si vous souhaitez en apprendre davantage sur le fonctionnement des grands modèles de langage, la façon de les adapter à vos cas d’utilisation précis ou l’impact que ces choix de conception pourraient avoir sur vous, pensez à lire notre nouveau livre Building LLMs for Production, rédigé par plus d’une douzaine d’experts de Towards AI, LlamaIndex, Activeloop, Mila et plus encore. Ce livre vous apprend tout ce qui touche aux LLMs, du prompting au fine-tuning en passant par la génération augmentée par récupération (RAG), pour réduire leurs hallucinations, mieux les aligner et construire de puissantes applications avec eux. Il couvre des techniques de base aux plus avancées pour toute personne qui connaît Python.

Merci d’avoir lu l’article au complet. On se retrouve dans le prochain pour d’autres explications sur l’IA !

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Qu’est-ce qu’un modèle de langage multimodal ?

Il traite et génère plus d’un type de données, comme du texte et des images, dans un même modèle.

En quoi Chameleon diffère-t-il d’un LLM qui ne traite que du texte ?

Chameleon représente l’information textuelle et visuelle sous forme de tokens qui peuvent être traités dans une même séquence de génération.

Pourquoi les tokens d’image ont-ils besoin de contraintes particulières ?

Les images exigent des dimensions et une structure valides. Des longueurs de tokens sans restriction pourraient donc produire une représentation visuelle inutilisable.

Pourquoi masquer les tokens d’image pendant la génération de texte ?

Le masquage empêche le modèle de choisir des tokens propres aux images lorsque l’output attendu est du texte ordinaire.

Cette conception peut-elle s’étendre au-delà du texte et des images ?

L’idée de tokens partagés ouvre la voie à la vidéo et à d’autres modalités, même si chacune ajoute des défis de représentation et d’entraînement.

Que fait la normalisation QK dans Chameleon ?

Elle normalise les vecteurs de requête et de clé avant leur produit scalaire, empêchant les scores d’attention de devenir trop élevés et stabilisant l’entraînement.