Demandez à GPT-4 de multiplier deux nombres de quatre chiffres. Le taux de réussite tourne autour de 30 %. Un calcul qu'un collégien pose en trente secondes sur une feuille. Ce n'est pas un bug. Ce n'est pas un modèle trop petit. C'est un indice sur la mécanique réelle de la machine.
On l'a tous observé. On reformule un prompt, on ajoute une numérotation, on découpe une instruction — et la sortie s'améliore. On appelle ça « prompt engineering ». En réalité, on compense une faiblesse structurelle qu'on n'a jamais nommée.
Un seul outil pour tout faire
Un transformer n'a qu'un seul mécanisme pour traiter l'information : l'attention. Pas de module de calcul. Pas de compteur. Pas de vérificateur de cohérence. Tout — absolument tout — passe par le même goulot : des matrices d'attention qui comparent chaque token à tous les autres.
Le coût ? Quadratique. O(n^2) en nombre de tokens, pour reprendre la notation de Vaswani et al. Mais le vrai problème n'est pas la taille du contexte. C'est la nature des opérations qu'on demande.
Sept d'entre elles paraissent triviales pour un humain. Elles sont catastrophiques pour un transformer.
Comptage et ordonnancement. « Combien de fois ai-je mentionné ce point ? » Le modèle n'a pas de compteur. Il émule le dénombrement par pattern matching attentionnel, token par token. Le benchmark MRCR (OpenAI, 2025) le confirme : quand on augmente le nombre d'aiguilles à retrouver dans un contexte long, la performance chute — le modèle perd le fil du « combien ».
Résolution de coréférences. « Le client mentionné en paragraphe 3 » — lequel ? Chaque référence ambiguë force le modèle à maintenir des chaînes de dépendances croisées à travers tout le contexte. Sature l'attention.
Négation et exclusion. « Tous les éléments sauf X. » Les représentations vectorielles continues ne codent pas naturellement l'absence. Alhamoud et al. (CVPR 2025) le montrent sur les modèles vision-langage : face à une négation, le modèle ignore le « ne...pas » et répond comme s'il n'existait pas. Le problème est structurel.
Vérification de cohérence. Comparer chaque élément à tous les autres pour détecter une contradiction — c'est la définition même du coût quadratique. Plus le document est long, plus les incohérences passent.
Conformité de format. « Respecte ce schéma JSON, ces contraintes de champs, ce format de date. » Chaque règle de format est une contrainte supplémentaire que le modèle maintient en parallèle de la tâche principale. Le headroom fond. Un cas classique : un pipeline d'extraction de factures dont le champ date oscille entre ISO 8601 et format local selon la langue du document source — au sein du même batch. On ne sait pas à l'avance quel format sortira. Et le modèle ne le « choisit » pas : il échantillonne.
Reversal curse. Berglund et al. l'ont démontré à l'ICLR 2024 : un modèle entraîné sur « A est B » ne généralise pas à « B est A ». La vraisemblance de la réponse correcte ? Pas supérieure au hasard. L'information est là. Le chemin inverse n'existe pas.
Déduplication sémantique. Pas les doublons de texte — ceux-là, un diff les trouve. Les doublons de sens. Comparer chaque élément à tous les autres sur un espace sémantique. Quadratique, encore.
Un seul rouage. Sept grains de sable. L'engrenage grippe.
Richard Sennett, dans Ce que sait la main, décrit l'artisan qui connaît les limites de son outil. Pas pour le mépriser — pour adapter son geste. Le menuisier n'utilise pas un rabot pour visser. Le praticien IA ne devrait pas demander à l'attention de compter.
Certes, les modèles progressent. Les benchmarks montent. La fenêtre de contexte s'agrandit. Mais l'architecture fondamentale reste la même : un mécanisme unique, universel, coûteux. Doubler la fenêtre de contexte, c'est quadrupler le coût attentionnel — les dépendances croisées ne se dissolvent pas dans l'espace, elles s'y noient.
La réponse n'est pas de renoncer. Elle est de décharger.
La philosophie est vieille. UNIX l'a formalisée il y a cinquante ans : do one thing and do it well. Chaque outil fait une chose. On les compose. Appliquée aux pipelines IA, la logique est identique. Numéroter les lignes en amont, c'est externaliser le comptage. Décomposer une tâche complexe en étapes, c'est réduire les dépendances croisées par step. Forcer un chain-of-thought, c'est créer du headroom intermédiaire.
Ce ne sont pas des incantations. Ce sont des stratégies de décharge attentionnelle. Et elles ont un nom technique : on retire des grains de sable de l'engrenage avant de le faire tourner.
Concevoir au lieu de corriger
Chaque step d'un pipeline qui force une de ces sept opérations sans la décharger est un consommateur silencieux de qualité. Le modèle « voit » l'information. Il échoue à raisonner dessus. Et nous, on blâme le modèle.
La grille de diagnostic tient en une question : avant d'ajouter de l'IA à un step, demander quelle opération je force ? Si la réponse est comptage, cohérence, négation, format, coréférence, inversion ou déduplication sémantique — décharger d'abord. Outillage externe, prétraitement, décomposition.
La prochaine fois qu'un prompt « corrigé » améliore le résultat, on saura pourquoi. On ne corrige plus. On conçoit. Rouage par rouage.