ML Atlas

Le machine learning en partant de zéro · Leçon 7.2 · 33 sur 33 leçons prêtes · 12 min

Des réseaux de neurones aux grands modèles de langage

En bref

Un grand modèle de langage apprend à deviner le token suivant. La leçon part d’un modèle qui compte les mots et montre l’effet de la température.

Échauffement Deux questions de leçons précédentes. Une minute, sans jamais bloquer la leçon.
De la leçon 7.1 : Réseaux de neurones : beaucoup d’unités simples Pourquoi un réseau de neurones a-t-il besoin d’une fonction d’activation ?

Voir la réponse

Bonne réponse : Sans elle, les couches empilées se réduisent à une seule somme pondérée

L’activation plie le signal ; sans plis, les couches n’apportent aucune expressivité de plus qu’un seul modèle linéaire.

De la leçon 5.6 : Quel modèle, quand ? Sur les chiffres, la SVM a plus de bonnes réponses que la régression logistique sur 17 découpages sur 20, sur les manchots sur aucun (la régression sur 9, égalité sur 11). Qu’en conclure ?

Voir la réponse

Bonne réponse : Le meilleur dépend des données, donc vous le vérifiez sur les vôtres

L’ordre s’inverse d’un jeu à l’autre. C’est pourquoi on choisit un modèle par validation sur ses propres données, pas d’après le classement d’un autre.

Le clavier de votre téléphone suggère le mot suivant pendant que vous tapez. Un chatbot rédige des dissertations entières, répond à des questions et traduit des poèmes. S’agit-il du même genre de machine ? Au cœur des deux se trouve une tâche étonnamment modeste : à partir du texte déjà écrit, deviner ce qui vient ensuite. Cette dernière leçon montre jusqu’où cette seule question peut mener, et où se trouvent ses limites.

Prédisez, puis vérifiez Le modèle connaît le mot « le » à 30 endroits du texte, et « matin » le suit le plus souvent (seulement 4 fois sur 30). Vous baissez la température de 1 à 0,1. Quelle probabilité « matin » obtient-il ?
Quel est votre degré de certitude ?

Labo interactif

Ce labo interactif fonctionne dans un navigateur avec JavaScript activé. Le texte qui l’entoure décrit ce qu’il montre.

Voir la réponse

Bonne réponse : Environ 89 %

À la température 1, « matin » a 13 %, à 0,5 25 % et à 0,1 pas moins de 89 %, alors qu’il ne représente que 4 occurrences sur 30 dans le texte. Une basse température accentue la distribution : le mot le plus fréquent prend presque tout. Une haute température (3) l’aplatit à 8 %.

À vous de jouer

  • Tapez un mot courant dans le champ de texte et lisez la liste des mots suivants probables avec leurs probabilités. Ont-ils du sens au vu de ce que vous savez du texte ?
  • Déplacez le curseur de température vers la gauche et regardez le mot en tête rafler presque toute la probabilité. Puis déplacez-le vers la droite et regardez les probabilités s’équilibrer.
  • Essayez un mot probablement rare dans le petit texte. Avec si peu d’exemples à compter, quelle confiance accorder aux probabilités affichées par le modèle ?
  • Suivez une chaîne à la main : tapez le mot suivant le plus probable, puis le mot le plus probable après celui-là, et ainsi de suite. La phrase obtenue est-elle fluide ? Mène-t-elle quelque part ?

L’idée en quelques mots

Voyons maintenant ce que vous venez de manipuler, en termes simples.

Un modèle de langage attribue des probabilités à ce qui vient ensuite dans un texte. Après « Je voudrais une tasse de », le mot « thé » est probable, « café » aussi, « gravier » à peu près pas. Une fois qu’on a de telles probabilités, on peut générer du texte : choisir un mot suivant, l’ajouter, puis reposer la question.

Le modèle de langage le plus simple possible est un modèle bigramme. Il lit un ensemble de textes (un corpus) et compte simplement quel mot suit quel mot. Cette leçon s’appuie sur un tel modèle, construit sur un petit texte écrit pour ce cours. Pour chaque mot, le modèle connaît les mots qui l’ont suivi dans le corpus, avec leurs probabilités.

Pensez à une personne qui n’aurait lu qu’un seul livre, mais de nombreuses fois, et dont le seul talent serait de se souvenir de quel mot venait après quel autre. Demandez-lui de continuer une phrase et elle produira quelque chose qui ressemble vaguement au livre – fluide de près, sans but de loin. Cette personne est un modèle bigramme.

Pourquoi ça marche

Le modèle bigramme estime la probabilité du mot suivant b après le mot a à partir de comptages :

P(suivant = b | actuel = a) = nombre(a b) / nombre(a)

Si « tasse » apparaît dix fois dans le corpus et qu’il est suivi sept fois de « de », le modèle donne à « de » une probabilité de 0,7 après « tasse ». Et après « de », c’est le même calcul qui décide si « thé » arrive en tête. C’est tout – compter et diviser. Apprendre, une fois de plus, c’est ajuster un modèle à des exemples, et la note mesure à quel point il prédit bien le mot suivant d’un vrai texte.

Pour générer du texte, le modèle doit choisir parmi les candidats, et c’est là qu’intervient la température. Une température basse accentue la distribution : le mot le plus probable gagne presque à chaque fois, et le texte devient répétitif et sûr. Une température élevée l’aplatit : les mots plus rares ont une vraie chance, et le texte devient plus varié et plus erratique. La température ne change pas ce que le modèle sait, seulement l’audace avec laquelle il tire au sort.

Un grand modèle de langage (LLM, large language model) accomplit la même tâche avec trois grandes améliorations. D’abord, il prédit des tokens – des morceaux de mots –, ce qui lui permet de traiter n’importe quel mot, même un mot qu’il n’a jamais vu en entier. Ensuite, au lieu de ne regarder que le mot précédent, c’est un réseau de neurones, généralement un transformer (présenté en 2017), dont le mécanisme d’attention permet à chaque position de regarder en arrière des milliers de tokens précédents et de décider lesquels comptent. Enfin, ses probabilités ne sont pas des comptages mais les sorties d’un réseau à plusieurs milliards de poids, entraîné exactement avec les outils de ce cours : la perte logistique de la leçon 5 sur le token suivant, minimisée par la descente de gradient de la leçon 4, avec la rétropropagation de la leçon 11. Entraînée sur une quantité énorme de texte, la tâche de devinette force le réseau à assimiler la grammaire, des faits et des schémas de raisonnement, car tout cela aide à prédire ce qui vient ensuite.

Erreur fréquente

Le plus grand malentendu sur les modèles de langage est de croire qu’ils cherchent les réponses quelque part. Ils ne consultent aucune base de données ; ils produisent la suite que leur entraînement a rendue probable. La plupart du temps, c’est aussi la vraie, mais pas toujours – quand le plausible et le vrai divergent, le modèle énonce une fausseté avec aisance, ce qu’on appelle une hallucination. La seconde erreur est de prendre la température pour un bouton de qualité. Une température basse n’est pas « plus correcte », seulement plus prévisible ; elle convient aux réponses factuelles, tandis qu’une température plus élevée convient au remue-méninges.

Voilà tout le voyage : d’un seuil sur une mesure de tumeur à un réseau qui prédit le mot suivant de tout ce qui a jamais été écrit. La recette n’a jamais changé – une famille de modèles, une note, une recherche, et un examen honnête sur des données que le modèle n’a jamais vues. Les liens vers l’Atlas ci-dessous sont l’endroit où approfondir chaque étape.

Trouvez l’erreur de l’IA

Voici la réponse d’un chatbot. Une phrase est fausse. Laquelle ?

Question : Comment un chatbot comme vous connaît-il la réponse à ma question ?

Réponse du chatbot

Montrer la phrase fausse

La phrase fausse : Quand vous posez une question, le modèle cherche la réponse dans sa base de données de faits vérifiés, puis la formule avec aisance.

Un modèle de langage ne consulte pas de base de données ; il produit la suite que son entraînement a rendue probable, tout comme le modèle du labo sait seulement que « le » est suivi de « matin » à 4 endroits sur 30. Quand le plausible et le vrai divergent, il affirme une fausseté avec aisance : une hallucination.

Quiz

Trois questions pour vérifier vos acquis. Choisissez une réponse ou dépliez la solution sous chaque question. Au clavier : les flèches choisissent, Entrée ou Espace valide.

1. Sur quelle tâche un grand modèle de langage est-il entraîné ?
Voir la réponse

Bonne réponse : Prédire le token suivant d’un texte à partir des tokens précédents

Les LLM sont entraînés à donner une forte probabilité au véritable token suivant, et tout le reste émerge de cette tâche.

2. Vous baissez la température d’échantillonnage. Qu’arrive-t-il au texte généré ?
Voir la réponse

Bonne réponse : Les tokens les plus probables dominent : texte plus prévisible, plus répétitif

La température remodèle les probabilités au moment du tirage, sans changer ce que le modèle a appris.

3. Pourquoi un modèle de langage peut-il affirmer avec assurance quelque chose de faux ?
Voir la réponse

Bonne réponse : Parce qu’il produit des suites plausibles, et que plausible n’est pas toujours vrai

L’objectif d’entraînement récompense le texte probable, donc quand probable et vrai divergent, le modèle peut halluciner avec aisance.

À retenir

  • Un modèle de langage donne des probabilités pour le token suivant ; générer du texte, c’est tirer au sort à partir d’elles, encore et encore.
  • Un modèle bigramme compte quel mot suit quel mot ; un LLM remplace les comptages par un transformer qui regarde un long contexte.
  • La température règle l’audace du tirage, pas la quantité de connaissances du modèle.
  • Les LLM sont entraînés avec la même recette que le reste du cours : perte logistique, descente de gradient, rétropropagation.
  • Plausible ne veut pas dire vrai, c’est pourquoi les modèles de langage peuvent halluciner.

Et ensuite ?

C’est la dernière leçon du cours. Pour l’instant, le reste de ML Atlas est en anglais et en polonais.

  • Révision les questions des leçons terminées reviennent après 1, 7 et 30 jours ; quelques minutes par jour
  • Daily ML une courte énigme par jour (en anglais)
  • Atlas of terms les termes de l’encyclopédie en anglais

Pour aller plus loin : formule, code, pratique

Les maths

Pour un modèle bigramme, la probabilité du mot suivant b après le mot a est un rapport de comptages : P(b | a) = count(a b) / count(a). La température t remodèle ces probabilités sans changer les comptages :

  • P_t(b | a) = count(a b)^(1/t) / Σ_c count(a c)^(1/t), somme sur tous les mots c qui ont suivi a.
  • À t = 1, c’est le simple rapport. Quand t tend vers 0, le mot le plus fréquent prend tout. Quand t grandit, la distribution s’aplatit vers des chances égales.
  • Un LLM utilise la même idée sur les logits z : P_t(b) = exp(z_b / t) / Σ_c exp(z_c / t). Les comptages ci-dessus sont le cas particulier z = log count.
  • L’entraînement minimise la perte logistique du vrai token suivant, −log P(real token | context), moyennée sur le texte.
En code (Python)

Le code lit les phrases anglaises du lab, compte ce qui suit « the » et applique la formule de la température. Il tourne donc sur des phrases ANGLAISES, et ses nombres sont ceux de la version anglaise de la leçon (le lab français a son propre texte, en français). Le notebook lié sous la sortie télécharge lui-même les données.

import re
from collections import Counter

src = open("site-src/course/labs/next-token.corpus.js", encoding="utf-8").read()
text = re.search(r"en: `(.*?)`", src, re.S).group(1)  # les phrases anglaises du lab
words = re.findall(r"[a-z']+", text.lower())
after_the = Counter(b for a, b in zip(words, words[1:]) if a == "the")
counts = after_the.most_common()
print(f'"the" seen {sum(after_the.values())} times, {len(after_the)} different next words, top: {counts[:3]}')
for t in (1, 0.5, 0.1, 3):
    w = {b: c ** (1 / t) for b, c in counts}
    print(f"temperature {t}: P(morning | the) = {w['morning'] / sum(w.values()):.1%}")

Sortie

"the" seen 42 times, 26 different next words, top: [('morning', 4), ('cup', 3), ('garden', 3)]
temperature 1: P(morning | the) = 9.5%
temperature 0.5: P(morning | the) = 18.6%
temperature 0.1: P(morning | the) = 85.0%
temperature 3: P(morning | the) = 5.3%

Ce sont les nombres de la leçon anglaise : « the » est suivi de 26 mots différents à 42 endroits, et « morning » est le plus fréquent d’entre eux avec 4 sur 42, soit 9,5 % à la température 1. À la température 0,1, il obtient 85,0 %, et à 3 seulement 5,3 %.

Pour les praticiens
  • Les comptages issus de peu de texte sont bruités. Un mot vu trois fois vous donne trois exemples, pas une distribution fiable. C’est pourquoi les vrais modèles sont entraînés sur d’énormes corpus.
  • Le choix glouton (toujours le mot le plus probable) donne un texte répétitif. Tirer au sort à une température proche de 1, ou seulement parmi les quelques meilleurs mots, donne plus de variété.
  • Utilisez une température basse pour des réponses qui doivent être stables et vérifiables, et une plus haute pour le remue-méninges. Aucune des deux ne rend la réponse plus vraie.
  • Fluide ne veut pas dire correct. Vérifiez les faits, les nombres et les citations dans une source, car le modèle ne fait que continuer ce qui est probable.
  • Les vrais modèles lisent des tokens, pas des mots. Un mot rare est découpé en morceaux, donc compter des mots entiers, comme ici, est une simplification.

Aller plus loin dans l’Atlas

Articles de l’encyclopédie sur les notions de cette leçon :