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.
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.
Choisissez une réponse et votre degré de certitude.
Répondez pour débloquer le labo.
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 ?
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.
À 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 motscqui ont suivia.- À
t = 1, c’est le simple rapport. Quandttend vers 0, le mot le plus fréquent prend tout. Quandtgrandit, 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 particulierz = 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 %.
Télécharger le notebook (.ipynb). Ouvrez-le dans Jupyter ou importez-le dans Google Colab ; il télécharge lui-même les données manquantes.
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.
Cela vous a-t-il aidé ?
Merci ! Cela nous aide à nous améliorer.
Aller plus loin dans l’Atlas
Articles de l’encyclopédie sur les notions de cette leçon :