Piéger Shakespeare sur une GPU

Depuis toujours, les humains rêvent de comprendre les grands génies littéraires, un verre de vin et beaucoup de condescendance à la main. Mais au XXIᵉ siècle, au lieu de lire Hamlet, quelqu’un a eu l’idée de se demander : “Et si on compressait Shakespeare dans quelques millions de paramètres et qu’on le faisait tourner sur une carte graphique ?” Le pire, c’est que ça marche. Grâce aux Transformers, ces architectures à la base des grands modèles de langage (les fameux LLMs comme Claude, Llama ou GPT), nous savons aujourd’hui stocker le style d’un dramaturge du XVIᵉ siècle dans une matrice géante de nombres flottants. Le futur est décidément surprenant.

Un Transformer (dans sa version decoder-only, celle-là même utilisée par les LLMs modernes) est un modèle auto-régressif, ce qui signifie qu’il reçoit une séquence de mots (plus précisément appelés tokens), qu’il prédit le prochain et qu’il recommence. Cette idée, incroyablement simple, suffit pour écrire des sonnets entiers. Chaque bloc du Transformer contient une succession de deux choses :

  1. Self-attention : le mécanisme neuronal qui permet au modèle de décider quels mots passés sont utiles pour prédire le prochain.

  2. Un réseau entièrement connecté : un simple réseau de neurones qui transforme les sorties provenant du mécanisme d’attention en des vecteurs légèrement meilleurs.

Empilez quelques blocs, et vous obtenez une fidèle représentation de Shakespeare gravée dans du silicium. L’attention est la clé de voûte de l’architecture, tout ce dont on a besoin pour paraphraser les concepteurs du modèle original. Sa version mathématique est un simple cocktail de multiplications de matrices. Rafraîchissant. Pour chaque token, on calcule, à l’aide de matrices apprises par le réseau, une requête Q (ce que le token cherche), une clé K (ce que le token a) et une valeur V (ce que le token communique s’il est interrogé). On applique ensuite une formule qui n’a rien de magique :

$$ \text{Attention}(Q, K, V) = \text{softmax}\!\left( \frac{QK^\top}{\sqrt{d_k}} \right)V $$

Cela nous dit juste que si la requête d’un token est alignée avec la clé d’un autre, alors les deux compères vont avoir fortement envie de communiquer. Voilà. Pas d’intégrale. Pas de théorème incompréhensible. Juste des multiplications matricielles. Une personne raisonnable pourrait faire ça sur une feuille de papier (mais pas Shakespeare, qui était mauvais en algèbre, d’où probablement son orientation dans une filière littéraire).

Puisque c’était trop simple, les chercheurs ont décidé de faire plusieurs attentions en parallèle. C’est le concept d’attention multi-têtes, où chaque tête apprend à regarder l’histoire différemment et de manière automatique (l’une va peut-être se concentrer sur les verbes, l’autre sur les rimes, une autre encore sur des détails dramatiquement importants). On concatène les attentions provenant des différentes têtes, et c’est tout.

Contrairement aux anciens réseaux récurrents, qui lisaient les textes comme quelqu’un qui ne peut tourner la page qu’après avoir fini la précédente, les Transformers sont massivement parallélisables puisque tous les tokens d’une séquence peuvent être traités en même temps et que toutes les têtes d’attention fonctionnent en parallèle. Ainsi, l’entraînement est beaucoup plus efficace. Pour apprendre, d’ailleurs, le modèle lit tout Shakespeare, mot après mot, et doit prédire le suivant. Chaque fois qu’il se trompe, on le punit gentiment grâce à une fonction de perte appelée cross-entropy :

$$ \mathcal{L} = - \sum_t \log p_\theta(x_t \mid x_{<t}) $$

Cette quantité mesure à quel point le modèle raconte des bêtises. Et à force d’ajuster ses paramètres, il finit par réciter des sonnets plutôt convaincants. Une fois entraîné, on lui donne un début de phrase, et le modèle calcule la probabilité que chaque mot du dictionnaire soit le prochain mot de la phrase. Il pioche alors au hasard selon cette distribution de probabilité et recommence le processus, avec cette fois pour entrée le début de phrase et le nouveau mot qui vient d’y être ajouté. Le résultat est que nous avons réussi à compresser l’essence même de Shakespeare et que nous pouvons la faire s’exprimer sur une GPU. Merci la science.

Fin du billet. Rideau. Applaudissements.


Références