La chaîne complète de pré-formation

Relier données brutes, filtrage, tokenisation, lots, cibles, perte, mises à jour et modèle de base.

Applied AI · intermediate · Session 11

Carte du mécanisme

TEXTE BRUT  « Maya lit un livre »
      │
      ▼
┌─────────────────┐  doublons, secrets, spam, licence, provenance
│  filtrage       │
└────────┬────────┘
         ▼
┌─────────────────┐  → [7412, 611, 145, 2380, 91]   5 tokens / 4 mots
│  tokenisation   │
└────────┬────────┘
         ▼
┌─────────────────┐  entrée [7412,  611, 145, 2380]
│  décalage de 1  │  cible  [ 611,  145, 2380,  91]
└────────┬────────┘
         ▼
┌─────────────────┐  B = 2, T = 9 (max du lot), padding + masque
│  formation lot  │
└────────┬────────┘
         ▼
 logits (B,T,V) → softmax → perte = −log p(cible) → gradients → mise à jour
         │
         ▼
 MODÈLE DE BASE ──▶ instruction tuning ──▶ alignement   │  éval. SÉPARÉE

Le problème — Collecter sans tout accepter

Un crawl brut contient le même article viral 3 000 fois, des clés d’API et du spam optimisé. Entraîné tel quel, le modèle apprend les doublons par cœur — et peut les restituer, secrets compris. Corriger après coup ? Les copies sont déjà diffusées dans tous les poids.

L’idée — Collecter sans tout accepter

Le filtrage est une étape de conception en tête de chaîne : déduplication par empreintes, détection de secrets, règles de licence et de provenance. L’article répété 3 000 fois ne doit compter qu’une fois — avant qu’un seul gradient ne soit dépensé dessus.

Pourquoi / à quel prix — Collecter sans tout accepter

Pourquoi si tôt : retirer un document coûte une comparaison ; le désapprendre coûterait un ré-entraînement. Le prix : tout filtre a des faux positifs — trop agressif, il appauvrit la diversité que la moyenne des gradients devait justement capturer.

Contrôle : Le même article apparaît 3 000 fois dans le corpus brut. Décrivez l’effet sur les paramètres, puis dites pourquoi le retirer au filtrage coûte moins cher que le corriger après l’entraînement.

Support visuel — Collecter sans tout accepter

corpus brut : 100 000 documents      (proportions illustratives)
   │  déduplication       − 24 000   (le même article ×3 000…)
   ▼
 76 000
   │  secrets, licences   −  1 500
   ▼
 74 500
   │  qualité, spam       − 14 500
   ▼
corpus d’entraînement : 60 000 documents

un document retiré ici = zéro gradient dépensé dessus

Le problème — Tokeniser

Le modèle ne consomme pas des lettres : il lui faut des unités discrètes en nombre fini. Découper par mots fait exploser le vocabulaire (« livre », « livres », « livresque »…) ; découper par caractères étire chaque phrase et son coût. Où couper ?

L’idée — Tokeniser

Le tokenizer apprend un vocabulaire de sous-mots. « Maya lit un livre » devient 5 tokens pour 4 mots : [Maya][ lit][ un][ liv][re] — « livre » est coupé en deux, les frontières ne suivent pas les mots.

Pourquoi / à quel prix — Tokeniser

Conséquence directe : le coût se compte en tokens, pas en mots — ici 5/4, soit +25 %. Le prix : le vocabulaire est figé avant l’entraînement ; un domaine mal couvert (code, langue rare, jargon) se fragmente en tokens courts et paie plus cher pour la même information.

Contrôle : « Maya lit un livre » donne 5 tokens pour 4 mots. Identifiez le mot qui a été coupé et expliquez pourquoi un compte de tokens supérieur au compte de mots change directement le coût du lot.

Le problème — Construire entrées et cibles

Il faut des millions d’exemples étiquetés, et personne n’annotera le web à la main. D’où viennent les cibles ? Le texte doit se superviser lui-même — sans fuite : si une position voit sa propre réponse, la perte tombe à zéro sans rien apprendre.

L’idée — Construire entrées et cibles

Le décalage d’un token fabrique la supervision gratuitement : pour [A,B,C,D], entrée [A,B,C], cible [B,C,D]. Chaque position prédit le token suivant sans voir le futur ; une séquence de L tokens fournit L−1 positions d’entraînement.

targets = tokens shifted left by one

Pourquoi / à quel prix — Construire entrées et cibles

Gratuit et illimité — c’est ce qui rend la pré-formation possible à cette échelle. Le prix : la supervision se réduit à « le token suivant ». Le modèle apprend ce que le corpus fait suivre, pas ce qui est vrai ; la qualité des cibles est exactement celle du texte.

Contrôle : Pour [A,B,C,D], écrivez entrée et cible avec la règle « décalage gauche de 1 ». Puis appliquez un décalage de 2 : quelle position perd sa cible, et pourquoi la vérification de forme échoue-t-elle ?

Le problème — Former des lots

Un GPU rentable traite des milliers de positions en parallèle, mais les séquences n’ont pas la même longueur : 4 positions ici, 9 là. Comment les empiler dans un tenseur rectangulaire sans fausser le calcul de la perte ?

L’idée — Former des lots

On aligne sur la plus longue : T = 9 ; la courte reçoit 5 positions de padding et un masque marque le vide. La perte moyenne se divise par les 13 positions réelles, jamais par les 18 cases du rectangle.

Pourquoi / à quel prix — Former des lots

Le prix du rectangle : 5 cases sur 18 — environ 28 % du calcul de ce lot — chauffent du vide. Et un masque oublié fausse la courbe en silence : la moyenne baisse (somme ÷ 18) sans qu’aucune prédiction ne s’améliore.

Contrôle : Un lot contient une séquence de 4 positions et une de 9. Donnez T, le nombre de positions padées, et dites ce que devient la perte moyenne si le masque n’exclut pas ces positions.

Support visuel — Former des lots

T = 9 (longueur max du lot)

séq. A   [7412][ 611][ 145][2380][ PAD][ PAD][ PAD][ PAD][ PAD]
séq. B   [ ...][ ...][ ...][ ...][ ...][ ...][ ...][ ...][ ...]
masque A [   1][   1][   1][   1][   0][   0][   0][   0][   0]

positions réelles = 4 + 9 = 13     cases du rectangle = 18
perte moyenne = somme des pertes ÷ 13   (jamais ÷ 18)

Le problème — Perte et mise à jour

À chaque position, le modèle émet un score par token du vocabulaire — souvent 100 000. La cible est UN token. Il faut convertir ces scores et cette cible en un seul nombre qui mesure la surprise, et qui punisse fort l’erreur confiante.

L’idée — Perte et mise à jour

La softmax transforme les scores en probabilités, puis la perte prend −log p(cible) : p = 0,25 → 1,386 ; p = 0,50 → 0,693 ; p = 0,01 → 4,605. Les gradients redistribuent ensuite cette surprise sur tous les paramètres qui y ont contribué.

loss = −log p(target token)

Pourquoi / à quel prix — Perte et mise à jour

La pente en −log explose près de zéro, et c’est voulu : être sûr et faux coûte très cher. Le prix : la perte moyenne devient un indicateur falsifiable — dénominateur, padding, mélange de corpus peuvent la faire baisser sans progrès réel.

Contrôle : p(cible) = 0,25 donne une perte de 1,386. Recalculez pour 0,50 puis pour 0,01, et dites de combien la pénalité augmente entre 0,25 et 0,01.

Support visuel — Perte et mise à jour

perte = −log p(cible)

4,6 ┤ ●  p = 0,01   « sûr et faux » coûte très cher
    │
    │
1,4 ┤          ●  p = 0,25
0,7 ┤               ●  p = 0,50
0,0 ┤─────────────────────────● p = 1,00
    └─────────────────────────────▶ p(cible)

Le problème — Modèle de base et étapes suivantes

La boucle s’arrête : vous avez un modèle de base qui complète du texte. Il ne suit pas d’instructions et peut être toxique — et il faut prouver ses capacités alors qu’il a peut-être déjà lu vos questions de test pendant la pré-formation.

L’idée — Modèle de base et étapes suivantes

La chaîne se termine en trois branches : le modèle de base ; l’instruction tuning et l’alignement, qui modifient le comportement ; et un jeu d’évaluation strictement séparé du corpus. Cette séparation se décide au filtrage, pas le jour du test.

Pourquoi / à quel prix — Modèle de base et étapes suivantes

Pourquoi l’étanchéité est vitale : une question de test vue en pré-formation change le score en mesure de mémoire. Le prix opérationnel : la maintenir sur des téraoctets exige un outillage permanent — empreintes, recouvrement de n-grammes — c’est un coût d’ingénierie, pas une formalité.

Contrôle : Une question de votre jeu d’évaluation figure aussi dans le corpus de pré-formation. Quel score devient ininterprétable, et à quelle étape du schéma la contamination aurait-elle dû être bloquée ?

Cas guidé — trace complète

La phrase « Maya lit un livre » devient cinq tokens. Le lot utilise les quatre premiers comme entrées et les quatre derniers comme cibles. Si le modèle donne 0,25 à la bonne cible, la perte de cette position vaut −log(0,25) ≈ 1,386.

« Maya lit un livre » → 5 tokens : [Maya][ lit][ un][ liv][re] = [7412,611,145,2380,91]

entrée  = [7412,  611,  145, 2380]     (4 positions)
cible   = [ 611,  145, 2380,   91]     (décalage gauche de 1)

position 3 : le modèle doit prédire le token 2380 (« liv »)
  p(2380) = 0,25  →  perte = −log(0,25) = 1,386   ✅ finie, exploitable
  si p(2380) = 0,50  →  perte = 0,693             ✅ deux fois moins pénalisée
  si p(2380) = 0,01  →  perte = 4,605             ❌ le modèle est très surpris

LOT : séquence A = 4 positions (nos 5 tokens décalés), séquence B = 9 positions
      → T = 9, 5 positions padées
  perte moyenne SANS masque = somme / 18 positions   ❌ dilue avec du vide
  perte moyenne AVEC masque = somme / 13 positions   ✅ seules les cibles réelles

CONTRÔLE DE FORME : entrée (B=2, T=9) → logits (2, 9, V) → cibles (2, 9).
Un décalage de 2 laisserait la dernière position sans cible : (2, 8) ≠ (2, 9) → refus.

Où une décision de pipeline se paie plus tard

Étape Décision de conception Ce qui casse si on la rate
Filtrage Déduplication + provenance Un document répété 3 000 fois est appris par cœur et fuit
Tokenisation Vocabulaire et frontières « livre » coupé en 2 tokens : coût et perte recalés sans prévenir
Lots Longueur T, padding, masque Le padding entre dans la perte moyenne et fausse la courbe
Évaluation Jeu strictement séparé Contamination : le score mesure la mémoire, pas la capacité

Laboratoire causal

Prédire → modifier une variable → exécuter → expliquer l’écart

/interactives/curriculum/pretraining-pipeline.html?lang=fr

Erreurs fréquentes

« Plus de données, c’est toujours mieux : on filtrera à la fin. »

Le filtrage est en tête du schéma pour une raison : une fois les 3 000 copies apprises, elles sont réparties dans tous les paramètres. Aucune étape ultérieure ne les retire — le post-entraînement ne fait que masquer le comportement.

« Une perte moyenne qui baisse prouve que le modèle progresse. »

Pas si le padding est compté : diviser par 18 au lieu de 13 fait baisser la moyenne sans qu’aucune prédiction ne s’améliore. Toujours vérifier le dénominateur avant de lire la courbe.

Frontière, preuve et sources

Un pipeline pédagogique omet le stockage distribué, la sécurité, les politiques de données et de nombreux contrôles de qualité indispensables en production.

Statut de preuve : Mécanismes établis ; les simplifications numériques sont pédagogiques.

  • Raffel et al., “Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer” (T5/C4 corpus curation), JMLR (2020).
  • Dossier source fourni par le propriétaire; les détails sur des produits nommés restent attribués à cette source jusqu’à vérification primaire.

Défi de transfert

Votre équipe reçoit 10 000 documents d’un nouveau domaine : des notices médicales.

  1. Choisissez UNE étape du schéma à durcir en premier et justifiez par un risque concret.
  2. Le tokenizer actuel coupe « paracétamol » en 4 tokens : chiffrez l’effet sur le coût d’une notice de 200 mots.
  3. Donnez le test qui vous ferait revenir en arrière avant d’entraîner.

Synthèse et ticket de sortie

  • Collecter sans tout accepter
  • Tokeniser
  • Construire entrées et cibles
  • Former des lots
  • Perte et mise à jour
  • Modèle de base et étapes suivantes

Ticket : mécanisme · trace · observation · frontière · preuve · prochaine expérience

Notes formateur: Poser le problème avant de nommer le mécanisme. Recueillir une prédiction initiale et la conserver pour le ticket de sortie.

Notes formateur: Faire relier chaque étape à la suivante par un verbe causal. Signaler toute flèche purement décorative.

Notes formateur: Projeter l’échantillon brut 60 secondes en silence avant toute consigne, puis demander : « qu’est-ce qui vous inquiète ici ? ». Attendu : spam et doublons ; la clé d’API passe souvent inaperçue — la pointer en dernier, c’est le vrai danger.

Notes formateur: Ouvrir avec un échantillon réel non filtré projeté à l’écran (spam, doublon, clé d’API visible). Laisser la salle proposer les règles de rejet avant de nommer « déduplication » et « provenance ».

Notes formateur: Réponse : les 3 000 copies tirent les poids vers la restitution par cœur et peuvent fuiter à l’inférence ; au filtrage, le retrait coûte une comparaison d’empreintes, après l’entraînement il faudrait ré-entraîner. Erreur attendue : « le modèle fera la moyenne tout seul ». Renvoyer à l’erreur fréquente 1.

Notes formateur: Faire estimer la part rejetée avant de dévoiler les nombres — la salle sous-estime presque toujours. Préciser que les proportions sont illustratives ; l’ordre des étages, lui, est réel : on retire le moins cher à détecter d’abord.

Notes formateur: Écrire au tableau « le modèle lit des lettres ? des mots ? » et faire voter. La majorité vote « mots » — parfait : le beat suivant montre que la vraie réponse est « ni l’un ni l’autre ».

Notes formateur: Faire tokeniser la phrase en direct dans un tokenizer en ligne et faire compter les tokens à voix haute. Le désaccord 5 tokens / 4 mots doit venir de leur écran, pas de la diapositive.

Notes formateur: Réponse : « livre » → [ liv][re]. Le coût — mémoire, calcul, facturation — se compte en tokens : +25 % sur cette phrase. Erreur attendue : désigner « Maya » parce qu’un prénom « semble rare » ; faire vérifier dans la trace, Maya tient en un token.

Notes formateur: Demander : « qui a étiqueté le web ? ». Laisser le silence durer, puis faire émerger que le texte s’étiquette lui-même par décalage. C’est le déclic central de la session — y consacrer trois pleines minutes.

Notes formateur: Distribuer quatre cartons [A][B][C][D] et faire physiquement glisser la rangée cible d’un cran. Demander ensuite ce qui tombe du bord : c’est ce qui explique la position perdue.

Notes formateur: Réponse : entrée [A,B,C], cible [B,C,D] ; avec un décalage de 2, D n’a plus de cible et les formes (2,8) ≠ (2,9) font refuser le lot. Erreur attendue : « on remplit la cible avec du PAD » — montrer qu’un PAD-cible entrerait dans la perte et la fausserait.

Notes formateur: Faire estimer : « deux séquences, 4 et 9 positions — combien de cases GPU ? ». Les réponses 13 et 18 coexistent toujours ; garder les deux au tableau, le beat tranche entre elles.

Notes formateur: Faire dessiner le lot 4+9 sur papier quadrillé, cases padées hachurées. Compter ensemble 18 puis 13 cases : le masque devient une évidence visuelle et non une règle à retenir.

Notes formateur: Réponse : T = 9 et 5 positions padées ; sans masque, la moyenne se divise par 18 et baisse artificiellement — c’est l’erreur fréquente 2. Erreur attendue : T = 13, en additionnant les longueurs au lieu de prendre le maximum.

Notes formateur: Faire surligner les cinq cases PAD et écrire « 0 » dessus à la main. Demander ensuite : « que vaut la moyenne si on divise quand même par 18 ? » — plus basse, sans aucun progrès. Le masque devient une évidence.

Notes formateur: Question d’accroche : « le modèle met 1 % sur la bonne réponse — amende légère ou lourde ? ». Faire justifier la réponse avant de montrer la courbe en −log ; les intuitions linéaires vont se faire surprendre.

Notes formateur: Faire tracer −log(p) à la main pour p = 0,5 / 0,25 / 0,01. La pente qui s’envole près de zéro explique à elle seule pourquoi les erreurs confiantes coûtent si cher.

Notes formateur: Réponse : 0,693 pour p = 0,50 et 4,605 pour p = 0,01 ; de 0,25 à 0,01 la pénalité monte de 1,386 à 4,605, soit +3,22. Erreur attendue : raisonner linéairement (« ×25 de probabilité en moins = ×25 de perte ») — la courbe est logarithmique.

Notes formateur: Faire lire la courbe de droite à gauche : « pour diviser la perte par deux, il faut passer de 0,25 à 0,50 — mais de 0,01 à 0,25, on gagne 3,2 ». Les premiers pas d’un modèle rapportent énormément ; les derniers points de perte sont les plus chers.

Notes formateur: Annoncer un faux triomphe : « notre modèle passe de 61 à 89 % ! ». Laisser la fête retomber quand quelqu’un demande d’où viennent les questions du test — si personne ne le demande, c’est le vrai diagnostic de la salle.

Notes formateur: Poser la question du benchmark contaminé comme un cas d’arbitrage, pas comme une définition : « votre modèle passe de 61 à 89 % — quelle vérification faites-vous en premier ? » Laisser le débat courir.

Notes formateur: Réponse : le score du benchmark mesure désormais la mémoire, pas la capacité ; le blocage appartient au filtrage — empreintes croisées corpus/évaluation — tout en haut du schéma. Erreur attendue : « on retire la question après coup » ; le reste du jeu demeure suspect.

Notes formateur: Dérouler ligne par ligne. Une incohérence se localise à la première étape fautive, pas seulement sur la dernière ligne.

Notes formateur: Faire remplir la dernière ligne par les apprenants avant de la révéler : c’est le compromis qui décide en production.

Notes formateur: Conserver les valeurs initiales et finales. Interdire les changements simultanés qui rendent l’écart impossible à attribuer.

Notes formateur: Pour chaque affirmation, faire produire le contre-exemple minimal par le groupe avant de donner la correction.

Notes formateur: Séparer mécanisme vérifiable, choix d’implémentation rapporté et résultat expérimental. La précision de la preuve doit suivre celle de l’affirmation.

Notes formateur: Attendus : (1) filtrage — données personnelles et secret médical, le retrait tardif est impossible ; (2) 200 mots dépassent largement 250 tokens si le jargon se fragmente : +25 à +100 % selon la densité — accepter tout chiffrage argumenté ; (3) un rappel mesurable : taux de duplication, fuite d’identifiants, couverture du vocabulaire sur un échantillon. Idée fausse à récolter : « on durcit l’évaluation d’abord » — sans corpus propre, l’évaluation mesure du bruit. 10 minutes, groupes de trois.

Notes formateur: Faire reconstruire la chaîne sans regarder les slides, puis remplir le ticket en six lignes maximum. Comparer à la prédiction initiale du premier slide et nommer ce qui a réellement changé.