Chapitre 15 · Multimodalité · 8 min
Quand le modèle lit des images
Patch embedding, ViT, CLIP. Comment un Transformer texte devient multimodal en traitant une image comme une grille de tokens.
Le modèle ne voit pas vraiment
Quand tu envoies une photo à GPT-4o ou Claude et qu'il te dit ce qu'elle représente, il n'y a pas d'"œil" dans le modèle. Pas de système visuel, pas de détecteur d'objets. Le modèle ne "voit" pas une image — il lit une séquence de vecteurs.
C'est là toute l'astuce de la multimodalité moderne : transformer n'importe quel type de données (image, audio, vidéo) en une représentation qui ressemble à des tokens de texte. Après cette transformation, le Transformer standard fait le reste.
Note sur la portée de ce chapitre. On parle ici de modèles qui comprennent des images (les décrivent, répondent à des questions, lisent un graphique). Pour les modèles qui génèrent des images à partir d'un texte — Stable Diffusion, DALL-E, Midjourney — l'architecture est différente et fait l'objet du chapitre 21.
ViT : découpez l'image en patches
L'architecture de référence pour les images s'appelle ViT (Vision Transformer), proposée par Google en 2020.
L'idée est déconcertante de simplicité : découpe l'image en petits carrés (patches) de taille fixe — 16×16 pixels par défaut. Chaque patch est aplati en un vecteur, puis projeté dans l'espace d'embedding du Transformer.
Une image de 224×224 pixels, découpée en patches 16×16, produit 196 patches — soit 196 tokens. Ces tokens sont envoyés au Transformer exactement comme des tokens de texte. L'attention les traite, les met en relation, extrait les caractéristiques pertinentes.
La position de chaque patch dans l'image est encodée via un positional embedding, exactement comme pour les tokens de texte.
Manipule les patches
Voici une image 16×16 (simplification — ViT-Base travaille sur du 224×224). Change la taille des patches pour observer comment la résolution et le nombre de tokens varient.
L'image est découpée en patchs carrés, chaque patch devient un token via une projection linéaire. Le Transformer ne sait plus si l'entrée est du texte ou une grille d'images — il traite la séquence de la même façon dans les deux cas.
Le compromis apparaît tout de suite quand tu bouges le curseur : des patches plus petits donnent une image mieux définie, mais le nombre de tokens explose — et comme l'attention coûte du O(n²) (chapitre 04), diviser la taille des patches par deux quadruple le nombre de tokens et multiplie le coût par seize. C'est exactement l'arbitrage que fait chaque modèle de vision : assez de patches pour lire un graphique, pas assez pour ruiner l'inférence.
Le token spécial [CLS]
Dans les premiers ViT, un token spécial [CLS] est ajouté au début de la séquence. Après que l'attention a fait circuler l'information entre tous les patches, le vecteur de [CLS] est utilisé comme représentation globale de l'image.
C'est lui qui est envoyé à une tête de classification pour répondre à "qu'est-ce que c'est ?".
Les modèles multimodaux actuels — la génération GPT-4V, Claude 3 et Gemini a ouvert la voie en 2023-2024, et tous les grands modèles savent le faire aujourd'hui — procèdent autrement : les tokens de patches sont concaténés aux tokens de texte dans une seule et même séquence. À partir de là, il n'y a plus rien de spécial à faire : la self-attention habituelle laisse chaque mot regarder chaque bout d'image, et réciproquement. C'est ce qui rend l'approche si économe — aucune machinerie dédiée, on réutilise le Transformer tel quel.
Une variante existe, où l'image reste dans une séquence à part et où le texte va la consulter par attention croisée (c'est le choix de Flamingo, ou de Llama 3.2 Vision). Plus modulaire, mais moins simple.
CLIP : aligner images et textes
Avant de pouvoir mélanger images et textes dans un même Transformer, il faut que les embeddings d'images et les embeddings de textes habitent le même espace vectoriel.
C'est le problème que CLIP (OpenAI, 2021) a résolu. CLIP entraîne deux encodeurs en parallèle — un pour les images, un pour les textes — avec un seul objectif : rapprocher les représentations d'une image et de sa légende.
Après entraînement sur des centaines de millions de paires (image, texte), CLIP produit des espaces où "une photo de chat" et une photo de chat ont des vecteurs proches. C'est cette propriété qui permet à un LLM de "comprendre" une image injectée dans son contexte.
L'architecture d'un modèle vision-langage
Les LLMs multimodaux actuels sont généralement composés de :
- Un encodeur visuel (souvent un ViT pré-entraîné) qui produit des tokens d'image.
- Un projecteur (une petite MLP) qui mappe les tokens d'image dans l'espace d'embedding du LLM.
- Le LLM qui reçoit la séquence mixte (tokens d'image + tokens de texte) et génère la réponse.
Ce "projecteur" est souvent la seule partie entraînée lors de l'adaptation d'un LLM texte vers le multimodal — le reste reste gelé.
Ce que le modèle voit réellement
Il est tentant d'imaginer que le modèle a une "compréhension visuelle" profonde. En réalité, voici ce qui se passe :
Chaque patch de 16×16 pixels est d'abord mis à plat : 16 × 16 × 3 canaux de couleur = 768 valeurs, alignées en une seule liste. Cette liste passe ensuite dans une projection linéaire apprise — une matrice, entraînée avec le reste du modèle, qui la transforme en vecteur d'embedding (768 dimensions pour ViT-Base). Ce n'est donc pas une moyenne des pixels : rien n'est écrasé, la disposition interne du patch est conservée dans le vecteur. Mais la représentation reste très locale — ce vecteur ne sait rien de ce qui se passe dans le reste de l'image.
C'est l'attention entre tous ces vecteurs qui reconstruit les relations spatiales, détecte les bords, reconnaît les formes. Le modèle n'a aucun concept intégré de "cercle" ou de "visage" — il les découvre statistiquement.
C'est pour ça que les LLMs visuels peuvent être surprenants sur des tâches simples pour un humain (compter des objets, distinguer gauche/droite) mais remarquables sur des tâches de haut niveau (interpréter un graphe, lire une ordonnance).
Et l'audio ?
Le même principe — convertir une modalité en séquence de tokens — s'applique à la voix. Le modèle d'OpenAI Whisper (2022) reste la référence en open source pour la transcription parole→texte — les modèles nativement multimodaux font désormais mieux, mais restent fermés. Son architecture est un Transformer encoder-decoder, exactement comme un modèle de traduction.
L'astuce : on transforme le signal audio en spectrogramme Mel — une image 2D où l'axe vertical est la fréquence et l'horizontal le temps. Chaque petit carré de ce spectrogramme devient un token d'entrée, comme les patches de ViT pour les images. Whisper produit ensuite des tokens de texte en sortie.
Pour la génération vocale (text-to-speech), le principe est inversé : on génère des tokens audio à partir de texte. ElevenLabs, OpenAI TTS, Suno (pour la musique) utilisent tous des Transformers entraînés à prédire les tokens audio suivants. La voix clonée d'un proche, c'est exactement la tokenisation de quelques minutes d'enregistrement comme conditionnement.
Le saut est venu des modèles voice nativement multimodaux, inaugurés par GPT-4o realtime et Gemini Live en 2024. Ces modèles ne font plus l'aller-retour texte ↔ audio en interne : ils raisonnent directement dans un espace mêlant tokens texte et tokens audio. D'où une latence basse (~300 ms) et une prosodie naturelle — le modèle peut sourire en parlant, parce qu'il n'a jamais quitté le domaine audio.
La distinction compte, parce que beaucoup d'assistants vocaux n'en sont pas. Le mode vocal de Claude, par exemple, enchaîne trois briques séparées : transcription, puis modèle de texte, puis synthèse vocale. Ça marche très bien, mais le modèle ne perçoit jamais ta voix — seulement le texte qu'on lui en a fait.
Comme pour la vision, l'architecture sous-jacente reste un Transformer. La différence est uniquement dans la modalité du token.
Les tokens : une monnaie universelle
La vraie leçon de la multimodalité, c'est que le token est une abstraction universelle.
Du texte → tokens.
Des images → tokens (patches).
De l'audio → tokens (spectrogramme découpé).
Des molécules → tokens (atomes).
Dès qu'on peut convertir une modalité en séquence de vecteurs denses, un Transformer peut la traiter. C'est pour ça que les mêmes architectures qui ont révolutionné le NLP révolutionnent maintenant la vision, l'audio, la biologie, et la physique.
Le Transformer est un moteur à tokens. Les chercheurs continuent d'inventer de nouvelles façons de tokeniser le monde.
Ce qui rend une question de plus en plus embarrassante. Un même modèle lit du texte, décrit une photo, transcrit une voix et écrit du code : sur quoi décide-t-on qu'il est meilleur qu'un autre ? Il faut une note — et toute note est une réduction. Le chapitre suivant regarde ce que les benchmarks mesurent réellement, et surtout ce qu'ils laissent forcément passer.
Mis à jour le