Guide du professeur — Chunking, causalité et préfill parallèle
Durée: 120 minutes
Positionnement: Réconcilier état récurrent et parallélisme GPU par calcul en blocs causaux.
Preuve attendue: Mécanismes établis ; les simplifications numériques sont pédagogiques.
Résultats observables et préparation
- Distinguer préfill et décodage.
- Tracer l’état entre chunks.
- Expliquer le triangle causal.
Avant la séance, le formateur exécute lui-même le cas guidé et le laboratoire, imprime le paquet d’exercices, prépare un tableau à quatre colonnes — hypothèse, prédiction, observation, écart — et vérifie que chaque notation mathématique est accompagnée de ses dimensions. La démonstration ne doit pas devenir une lecture de slides.
Diagnostic
- Expliquez en une phrase: Préfill et décodage. Quelle observation rendrait votre explication fausse ?
- Expliquez en une phrase: Récurrence naïve. Quelle observation rendrait votre explication fausse ?
- Expliquez en une phrase: Découper en chunks. Quelle observation rendrait votre explication fausse ?
Décision pédagogique: si deux réponses sur trois restent nominales ou sans condition de validité, reprendre le vocabulaire avec un exemple numérique avant toute formule. Une réponse fluide mais non falsifiable n’est pas considérée comme acquise.
Plan minuté
| Temps | Activité | Preuve observable |
|---|---|---|
| 0–10 min | Diagnostic individuel, puis comparaison en binôme | Trois réponses et une incertitude nommée |
| 10–25 min | Mise en situation et vocabulaire | Schéma entrée → état → sortie annoté |
| 25–55 min | Développement du mécanisme au tableau | Formes, hypothèses et calcul intermédiaire visibles |
| 55–75 min | Cas guidé, erreurs volontairement introduites | Correction argumentée, pas seulement le bon nombre |
| 75–95 min | Laboratoire causal : prédire, modifier une variable, exécuter | Tableau prédiction / observation / écart |
| 95–112 min | Exercices 1 et 2, correction croisée | Production conservée et barème appliqué |
| 112–120 min | Ticket de sortie et transfert | Mécanisme, frontière, prochaine expérience |
Notes pédagogiques
Chapitre 10 — Découpage en blocs et préremplissage parallèle
10.1 Pourquoi utiliser des blocs
But : combiner une règle de mémoire récurrente avec le calcul rapide d’un GPU. Traiter les jetons un par un est simple à décrire, mais utilise mal les nombreuses unités de calcul parallèles pendant la lecture du prompt, appelée préremplissage.
Au lieu de transporter les courses article par article, place plusieurs articles dans une caisse et déplace la caisse.
Étape par étape
-
Découper N jetons en blocs, par exemple 64 ou 128 dans une implémentation.
-
À l’intérieur d’un bloc, organiser de nombreuses lectures et mises à jour sous forme de grandes opérations matricielles.
-
Transmettre l’état final S d’un bloc au suivant.
-
Préserver l’ordre causal : le jeton t ne doit pas utiliser les jetons futurs.
Exemple détaillé : 12 jetons divisés en blocs de 4 donnent les blocs 1–4, 5–8 et 9–12. Le deuxième bloc reçoit l’état résumant les jetons 1–4. Ses quatre jetons peuvent effectuer une grande partie de leurs calculs ensemble, puis produire un état pour le troisième bloc.
Pourquoi c’est important : Le découpage ne change pas l’objectif d’apprentissage. Il réorganise des opérations équivalentes, ou soigneusement dérivées, afin que le matériel les exécute efficacement.
Vérification rapide : pourquoi ne pas choisir automatiquement un bloc gigantesque ? Réponse : les grands blocs augmentent le travail et le stockage temporaires ; la meilleure taille dépend du matériel et des noyaux de calcul.
10.2 Structure triangulaire causale
But : comprendre le masque triangulaire inférieur utilisé dans un bloc. Une matrice triangulaire inférieure contient des zéros au-dessus de sa diagonale principale.
C’est une règle scolaire : chaque élève peut lire seulement les lignes précédentes, jamais les réponses écrites plus tard.
Étape par étape
-
Pour quatre positions, les liens autorisés forment [[1,0,0,0],[1,1,0,0],[1,1,1,0],[1,1,1,1]].
-
La ligne 3 peut utiliser les positions 1, 2 et 3.
-
La ligne 1 peut utiliser uniquement la position 1.
Exemple détaillé : Le triangle empêche la prédiction du prochain jeton de tricher pendant l’entraînement et le préremplissage.
Pourquoi c’est important : La causalité est une condition de correction, pas seulement un détail d’optimisation.
Vérification rapide : dans un bloc causal, le jeton 2 peut-il utiliser le jeton 4 ? Réponse : non.
Conduite du cas guidé
Pour 8 tokens en chunks de 4, le premier calcule un triangle 4×4 puis transmet S₄. Le second reçoit S₄, calcule son triangle local et produit S₈. Aucun token du premier bloc ne peut lire le second.
Ne révélez pas le résultat en une fois. Faites annoncer la prochaine opération, sa forme et le signe attendu. Après chaque ligne, demandez : « Qu’est-ce qui a changé ? Qu’est-ce qui est resté fixe ? Quelle hypothèse avons-nous utilisée ? » Une erreur de calcul corrigée avec une chaîne causale vaut davantage qu’un résultat deviné.
Protocole du laboratoire
- Écrire une prédiction qualitative et, si possible, numérique avant de toucher le contrôle.
- Modifier une seule variable; garder une capture ou relever les valeurs initiales et finales.
- Expliquer l’écart avec le mécanisme, pas avec « l’outil a fait cela ».
- Tester une valeur limite et dire où la maquette cesse de représenter un système réel.
Idées fausses
| # | Idée fausse observable | Correction ancrée | Relance |
|---|---|---|---|
| 1 | « Préfill et décodage suffit à garantir le résultat, sans hypothèse ni mesure. » | Deux phases, deux régimes : le préfill voit tous les tokens du prompt en même temps (travail massivement parallélisable) ; le décodage n’ajoute qu’un token par pas (travail intrinsèquement séquentiel). Même mécanisme, profils d’exécution opposés. | Demander un contre-exemple, puis faire reformuler le mécanisme avec sa condition de validité. |
| 2 | « Récurrence naïve suffit à garantir le résultat, sans hypothèse ni mesure. » | Le diagnostic précis : la DÉPENDANCE est séquentielle (chaque S_t dépend de S_{t−1}), mais la majorité du CALCUL par token — produits q·k locaux, écritures k vᵀ — ne l’est pas. La récurrence naïve sérialise tout parce qu’elle ne sépare pas les deux. | Demander un contre-exemple, puis faire reformuler le mécanisme avec sa condition de validité. |
| 3 | « Découper en chunks suffit à garantir le résultat, sans hypothèse ni mesure. » | Un chunk de C tokens calcule d’un coup ses interactions internes autorisées (matrice C×C triangulaire) et lit le passé antérieur via l’état entrant : O = M·V + K·S_entrant. Sur la trace, le chunk 1 produit S₄, le chunk 2 le consomme — et o₅…o₈ sont exactement ceux de la récurrence. | Demander un contre-exemple, puis faire reformuler le mécanisme avec sa condition de validité. |
Frontière à maintenir: Le chunking améliore l’exécution ; il ne change pas automatiquement la capacité informationnelle de l’état.
Questions de relance
- Si nous supprimons ou inversons Préfill et décodage, quelle sortie change en premier, et quelle observation le montrerait ?
- Si nous supprimons ou inversons Récurrence naïve, quelle sortie change en premier, et quelle observation le montrerait ?
- Si nous supprimons ou inversons Découper en chunks, quelle sortie change en premier, et quelle observation le montrerait ?
- Si nous supprimons ou inversons Triangle causal, quelle sortie change en premier, et quelle observation le montrerait ?
- Si nous supprimons ou inversons État entrant et sortant, quelle sortie change en premier, et quelle observation le montrerait ?
- Si nous supprimons ou inversons Taille du chunk, quelle sortie change en premier, et quelle observation le montrerait ?
Évaluation
| Niveau | Critère |
|---|---|
| 0 | Répète des termes sans relier entrée, transformation et sortie. |
| 1 | Décrit la chaîne mais ne vérifie ni forme ni hypothèse. |
| 2 | Exécute le cas, explique le résultat et nomme une limite. |
| 3 | Transfère sur un cas inédit, compare une alternative et propose une mesure qui pourrait invalider son choix. |
Seuil de sortie : niveau 2 sur le cas guidé et au moins un exercice; une formule mémorisée sans interprétation reste niveau 1.
Protocole d’observation et de reprise
Pendant les échanges, le formateur relève des preuves et non des impressions. Une preuve de compréhension contient un objet nommé, une transformation justifiée et une conséquence vérifiable. Si un apprenant donne le bon résultat sans chaîne, demander de reconstruire la ligne précédente. S’il donne une chaîne cohérente avec un résultat faux, conserver la chaîne et isoler l’erreur de calcul. S’il emploie le vocabulaire d’un autre concept, faire comparer les deux mécanismes dans un tableau entrée, état, sortie, coût et limite. La reprise se fait sur la première rupture seulement : vocabulaire, formes, opération, interprétation ou portée de l’affirmation. Après correction, proposer un cas voisin avec une valeur différente; la réussite sur le même exemple ne prouve pas le transfert. Pour le travail en binôme, attribuer les rôles « opérateur » et « vérificateur », puis les inverser. Le vérificateur ne donne pas la réponse : il exige une hypothèse, contrôle la forme et demande quelle observation pourrait contredire le raisonnement. Le formateur conserve le ticket de sortie et classe la rupture dominante. La séance suivante commence par un problème de trois minutes ciblant cette rupture, plutôt que par une répétition générale du cours.
Différenciation
- Soutien: fournir les formes et la première transformation; laisser l’apprenant compléter l’interprétation et la limite.
- Parcours nominal: cas guidé sans résultat, laboratoire avec une variable imposée, exercice de diagnostic.
- Prolongement: changer une hypothèse, comparer deux mécanismes et définir la métrique qui déciderait entre eux.
Suivi après la séance
Dans les vingt-quatre heures, renvoyer à chaque apprenant son ticket annoté avec une seule priorité, la ressource précise à rouvrir et un mini-cas différent du cas guidé. La reprise demande trois éléments : une prédiction écrite, une trace conservée et une phrase expliquant l’écart. Au cours suivant, échantillonner deux productions : une qui a réparé la rupture et une qui reste ambiguë. Les discuter sans nommer les auteurs, puis faire expliciter le critère qui distingue les deux. Ne pas utiliser le taux de complétion comme preuve de maîtrise. La preuve de reprise est une chaîne correcte sur un cas nouveau, accompagnée d’une limite. Si la même rupture apparaît chez plus d’un tiers du groupe, corriger le support ou la démonstration avant d’attribuer le problème aux apprenants.
Le suivi est clos seulement lorsque la nouvelle production montre la chaîne causale, la vérification et la frontière, et non lorsque le fichier a simplement été rendu.
Sources et frontière de preuve
- Dossier de cours bilingue fourni par le propriétaire, chapitre 10.
- Katharopoulos et al., “Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention”, ICML (2020).
- Yang et al., “Gated Linear Attention Transformers with Hardware-Efficient Training” (chunkwise parallel form), ICML (2024).
- Dossier source fourni par le propriétaire; les détails sur des produits nommés restent attribués à cette source jusqu’à vérification primaire.
Portée: Mécanismes établis ; les simplifications numériques sont pédagogiques. Ces références soutiennent le cadre de la session; elles ne transforment pas un choix de produit rapporté en résultat indépendant.
Ticket de sortie
En six lignes maximum : mécanisme; calcul ou trace; observation; frontière; niveau de preuve; prochaine expérience. Le formateur annote une seule rupture causale prioritaire pour la reprise.