Pré-entraîner un LLM : données, calcul, scaling laws et coût
Vingt modèles entraînés sur un GPU de portable pour mesurer une scaling law et vérifier l’estimation 6ND avec un compteur FLOP réel.
Dans cet article
Le chapitre 9 s’achevait sur un bloc transformer qui s’entraîne. Empilez-en quelques-uns, appliquez la perte de next-token du chapitre 8 à la sortie, et il n’y a plus rien à inventer. Tout ce qui reste est un achat.
C’est un basculement plus important qu’il n’y paraît. Jusqu’ici, chaque chapitre demandait est-ce que ça apprend ? — une question oui-ou-non qu’un portable règle en dix minutes. Celui-ci pose une question où l’argent entre en jeu : avec une quantité fixe d’arithmétique, quel est le meilleur modèle que je peux acheter ? La réponse est une formule, et elle n’avait rien d’évident pour qui que ce soit en 2018.
Voici cette question résolue par la mesure, sur un seul GPU de portable. Vingt modèles, de 98 624 à 15 millions de paramètres, ont été entraînés de zéro sur 174 millions de tokens de Wikipédia — un vocabulaire BPE de 2 048 tokens entraîné comme au chapitre 7, le transformer du chapitre 9. Chaque exécution a reçu exactement l’un de trois budgets de calcul, et pas une opération de plus ; un modèle plus grand lit donc nécessairement moins de texte. La meilleure perte de validation atteinte à chaque budget :
budget C (FLOPs) best loss reached by a model of
1.00e13 5.3531 98,624 params
3.16e13 4.8638 98,624 params
1.00e14 4.3383 295,808 params
fitted: L = (Cc / C)^0.0913 over one decade of computeMultiplier l’arithmétique par dix retire 19 % à la perte, et les trois points s’alignent sur une droite en log-log. Rien dans les neuf premiers chapitres ne prédit cela. Il n’y a pas de théorème derrière — c’est une régularité empirique, qui tient avec un exposant différent sur les dix ordres de grandeur entre ce portable et un datacentre, et c’est l’observation unique qui a convaincu une industrie de dépenser le PIB d’un petit pays en GPUs.
Ce qu’est le pretraining, et ce qu’il a de nouveau
Lien vers la section : Ce qu’est le pretraining, et ce qu’il a de nouveauRien ne change dans l’objectif. Le modèle prédit toujours le prochain token, la perte reste la cross-entropy du chapitre 4 appliquée à la factorisation du chapitre 8, l’optimiseur reste l’AdamW du chapitre 6. Le pretraining n’est pas un nouvel algorithme ; c’est le même algorithme exécuté sur un corpus assez grand pour que l’exécution doive être budgétée. Deux choses le rendent possible : les labels sont gratuits, puisque la cible pour la position est le token en et se trouve déjà dans le texte ; et la dernière section du chapitre 6 a levé l’objection, parce qu’un modèle avec bien plus de paramètres que ne l’autorisent les règles classiques ne s’effondre pas, il s’améliore. Ce qui en sort est un modèle de base — quelque chose qui continue du texte plutôt que de répondre.
Compter le calcul avant de le dépenser : 6ND
Lien vers la section : Compter le calcul avant de le dépenser : 6NDAvant de pouvoir budgéter tout cela, il faut le compter, et le domaine le compte avec une seule formule :
où est le nombre de paramètres, les tokens d’entraînement et le total d’opérations en virgule flottante. Kaplan et al. la dérivent en deux étapes.1 Forward : 2 FLOPs par paramètre et par token, puisque chaque paramètre d’une multiplication matricielle est utilisé une fois par token, dans une multiplication et une addition. Backward : deux fois le forward, puisque le backward pass du chapitre 5 calcule deux gradients à chaque couche — par rapport aux entrées de la couche, pour que le signal continue de se propager, et par rapport à ses poids — chacun étant une multiplication matricielle de la taille du forward, donc .
C’est toute la dérivation, et elle mérite d’être vérifiée plutôt que crue. PyTorch fournit un vrai compteur de FLOP, torch.utils.flop_counter.FlopCounterMode, qui intercepte chaque opération envoyée par un modèle et totalise le travail réel. Exécutez-le sur quatre ordres de grandeur, le plus grand sur le device meta, qui alloue les formes et non la mémoire :
from torch.utils.flop_counter import FlopCounterMode
counter = FlopCounterMode(display=False)
with counter:
loss = model(x, targets)[1]
loss.backward()
measured = counter.get_total_flops()
print(measured / (6 * n_params * n_tokens))| configuration | sans embeddings | total | mesuré, fwd+bwd | ÷ ( total) | ÷ (sans emb.) | fwd+bwd ÷ fwd |
|---|---|---|---|---|---|---|
| 128, 4 couches, 256 | 788,736 | 7,254,400 | 4.60e10 | 1.031 | 9.485 | 3.000 |
| 512, 8 couches, 256 | 25,183,232 | 51,045,888 | 3.26e11 | 1.038 | 2.104 | 3.000 |
| 768, 12 couches, 1024 | 84,973,056 | 124,356,864 | 1.75e12 | 1.145 | 1.676 | 3.000 |
| 1600, 48 couches, 1024 | 1,474,870,400 | 1,556,920,000 | 2.10e13 | 1.100 | 1.161 | 3.000 |
| 4096, 32 couches, 2048 | 6,442,983,424 | 6,582,444,032 | 8.74e13 | 1.080 | 1.104 | 3.000 |
| 8192, 80 couches, 8192 | 64,427,147,264 | 65,544,929,280 | 3.75e15 | 1.163 | 1.183 | 3.000 |
Le ratio forward+backward sur forward vaut 3.000, exactement, à toutes les échelles : pas une approximation qui se trouve être bonne, mais l’identité arithmétique ci-dessus renvoyée comme nombre rond par un compteur qui ne sait rien de la dérivation.
Le total mesuré se situe ensuite entre 3 % et 17 % au-dessus de , une fois que compte les matrices d’embedding — et cette clause importe, parce que les deux articles fondateurs comptent différemment. Kaplan exclut « all vocabulary and positional embeddings » parce que cela « produces significantly cleaner scaling laws » (§1.3) ; l’annexe F de Chinchilla indique « we also count embeddings matrices in the total parameter count ».2 Pour un vocabulaire large et une dimension cachée étroite, les deux diffèrent d’un facteur neuf, comme le montre la première ligne.
L’écart résiduel est ce que omet délibérément : les scores d’attention. L’équation (2.2) de Kaplan écrit le coût forward comme et supprime le second terme parce que — sûr en 2020, moins sûr aujourd’hui, et la raison pour laquelle le ratio dérive vers le haut quand grandit — ce qui explique que deux lignes ici partagent un de 1 024 et que le ratio baisse, de 1.145 à 1.100, quand passe de 768 à 1 600. C’est le coût introduit au chapitre 9 et transformé en prix au chapitre 16.
Mémoire : ce qui doit vraiment tenir
Lien vers la section : Mémoire : ce qui doit vraiment tenirLe calcul décide de la durée d’une exécution ; la mémoire décide si elle peut démarrer. Entraînez avec AdamW fp32 simple et chaque paramètre transporte quatre nombres : le poids, son gradient, et la moyenne courante et la variance d’Adam — les deux moyennes construites à la main au chapitre 6. Quatre nombres à quatre octets chacun font 16 octets par paramètre, avant la moindre activation. Mesuré sur un GPU de portable de 8 Go, en prenant l’allocation résidente au point de l’étape où aucun graphe n’est vivant :
| modèle | vocabulaire | batch | prédit | résident mesuré | pic dans une étape | différence | |
|---|---|---|---|---|---|---|---|
| 512, 8 couches | 50,257 | 8 | 51,045,888 | 779 MB | 801 MB | 2,500 MB | 1,699 MB |
| 512, 8 couches | 4,096 | 8 | 27,411,456 | 418 MB | 426 MB | 1,043 MB | 617 MB |
| 256, 6 couches | 4,096 | 8 | 5,839,360 | 89 MB | 89 MB | 382 MB | 293 MB |
| 256, 6 couches | 4,096 | 32 | 5,839,360 | 89 MB | 89 MB | 1,259 MB | 1,170 MB |
| 256, 6 couches | 4,096 | 128 | 5,839,360 | 89 MB | 89 MB | 4,771 MB | 4,681 MB |
Prédiction et mesure concordent à moins de 3 %. La surprise est la dernière colonne : les activations écrasent le modèle. Le même modèle de 5,8 millions de paramètres qui nécessite 89 MB d’état persistant a besoin de 4 681 MB d’activations avec un batch de 128 — cinquante-deux fois le modèle — et une grande partie de cela n’est pas du transformer du tout. Ce sont les logits, un vecteur de taille vocabulaire par token à quatre octets l’entrée : 512 MB dans la dernière ligne, 393 MB dans la première. La taille du vocabulaire a été choisie au chapitre 7, et elle décide encore de ce qui tient sur la carte.
Le terme dominant dépend de la forme de l’exécution, d’où l’affirmation de Micikevicius et al. selon laquelle la mémoire « is dominated by activations »3, tandis que ZeRO dit qu’un modèle de 1,5 milliard de paramètres exige « at least 24 GB » pour les seuls états du modèle.4 ZeRO atteint les mêmes 16 octets par un autre chemin — pour les poids fp16, pour les gradients fp16, chacun pour les poids maîtres fp32 et les deux moments d’Adam — ce qui, pour 70 milliards de paramètres, représente 1,12 téraoctet, soit quatorze GPUs de 80 GB avant la moindre activation.
Le parallélisme, en un paragraphe et une délégation
Lien vers la section : Le parallélisme, en un paragraphe et une délégationRien de tout cela ne tient sur un seul device à l’échelle frontière, donc l’exécution est divisée de quatre façons à la fois. Le parallélisme de données met une copie du modèle sur chaque GPU et moyenne les gradients — le défaut, et celui que ZeRO améliore en refusant de conserver des copies redondantes de l’état de l’optimiseur. Le parallélisme tensoriel divise les matrices individuelles entre devices. Le parallélisme pipeline donne à chaque device un groupe contigu de couches. Le parallélisme de context divise la séquence elle-même, nécessaire seulement quand est assez long pour que le terme d’attention domine. Le tableau 4 de Llama 3 les liste tous les quatre à la fois : tensor 8, context jusqu’à 16, pipeline 16, data jusqu’à 128, sur 16 384 GPUs H100.5 C’est tout ce que ce cours en dira ; l’ingénierie de l’entraînement distribué est un semestre à elle seule, et le CS336 de Stanford est ce semestre, cours 5 à 8, avec le code.6 Ce qui survit à la délégation est un seul nombre, l’utilisation des FLOPs du modèle — la fraction du pic arithmétique d’un GPU qu’une exécution réelle atteint — qui transforme le propre en temps réel, et donc en argent.
Kaplan, et le pari fait par l’industrie
Lien vers la section : Kaplan, et le pari fait par l’industrieEn janvier 2020, Kaplan et al. ont entraîné une grille de transformers et constaté que la perte de test suit une loi de puissance pour chacune des trois ressources sur plus de six ordres de grandeur.1 Leur §1.2 donne trois lois ajustées :
avec comme compagnes pour les données et pour le calcul alloué de façon optimale. Les constantes ne sont pas universelles, et l’article le dit : « the precise numerical values of , and depend on the vocabulary size and tokenization and hence do not have a fundamental meaning. »
Les exposants sont minuscules : dix fois plus de paramètres achètent un facteur sur la perte restante. Cela semble négligeable, et c’est le fait le plus important ici — les rendements sont mauvais et ils ne s’arrêtent jamais. Une loi de puissance avec un petit exposant promet que l’ordre de grandeur suivant aidera, moins que le précédent, pour toujours. Acheter du calcul cesse d’être un pari et devient un achat avec un taux de change publié, ce qui est exactement l’argument qui a débloqué le capital.
Puis est venue la prescription, et c’est là que l’article s’est trompé d’une manière qui a coûté très cher à l’industrie. Le tableau 6 de Kaplan donne et : dix fois le calcul signifie un modèle 5,4 fois plus grand nourri avec seulement 1,9 fois plus de texte. L’abstract est explicite — « optimally compute-efficient training involves training very large models on a relatively modest amount of data and stopping significantly before convergence. » Le domaine a fait exactement cela : GPT-3 compte 175 milliards de paramètres sur 300 milliards de tokens,7 Gopher 280 milliards sur 300 milliards, Megatron-Turing NLG 530 milliards sur 270 milliards.2 Un demi-token à deux tokens par paramètre, partout.
Chinchilla, et ce que le balayage ci-dessus mesurait
Lien vers la section : Chinchilla, et ce que le balayage ci-dessus mesuraitEn mars 2022, Hoffmann et al. ont entraîné plus de 400 modèles de 70 millions à 16 milliards de paramètres et sont arrivés à la conclusion opposée par trois voies indépendantes.2 Leur tableau 2 rapporte l’exposant dans comme 0,50, 0,49 et 0,46, contre 0,73 chez Kaplan. En clair : la taille du modèle et les données d’entraînement doivent croître dans la même proportion.
Leur deuxième approche est celle reproduite par le balayage en haut de ce chapitre, à un millionième de l’échelle : fixer un budget, entraîner de nombreuses tailles exactement à ce budget, tracer la perte finale en fonction de la taille du modèle.
| paramètres | |||
|---|---|---|---|
| 98,624 | 5.3531 (171) | 4.8638 (542) | — |
| 150,320 | 5.4636 (74) | — | — |
| 194,208 | 5.5041 (44) | 4.8730 (140) | 4.4040 (442) |
| 295,808 | 5.5550 (19) | 4.9029 (60) | 4.3383 (190) |
| 665,280 | 5.7849 (3.8) | 5.1254 (12) | 4.4192 (38) |
| 1,280,768 | 5.8174 (1.0) | 5.1751 (3.2) | 4.5003 (10) |
| 3,101,568 | — | 5.4686 (0.5) | 4.7768 (1.7) |
| 5,315,072 | — | 5.5894 (0.2) | 4.8514 (0.6) |
| 15,053,568 | — | — | 5.3534 (0.1) |
Perte de validation en nats par token, tokens par paramètre entre parenthèses, gras pour le meilleur modèle à chaque budget ; un tiret indique un point non exécuté, parce que le budget demandait plus de texte que le corpus n’en contient ou que la taille sortait de celles balayées là.
Lisez une colonne vers le bas : la perte baisse, touche un minimum, puis remonte. Un modèle peut être trop grand pour son budget exactement aussi facilement qu’il peut être trop petit — à , la pénalité pour choisir 665 280 paramètres au lieu de 295 808 est de 0,08 nat, ce qui, sur l’enveloppe ajustée ci-dessus, correspond à la perte qu’un modèle correctement dimensionné atteint avec 18 % de calcul en moins. Choisir la mauvaise forme jette un cinquième du budget. C’est la figure 3 de Chinchilla en un après-midi sur un GPU plutôt qu’avec quatre cents modèles.
Maintenant, lisez horizontalement. À , le meilleur modèle est le plus petit du balayage ; à , il compte 295 808 paramètres, encadré des deux côtés. L’optimum se déplace vers la droite quand le budget augmente, ce qui est tout le contenu de la correction. Ajustez la troisième approche de l’article — la surface sur chaque exécution — et minimisez sous la contrainte :
L(N, D) = 24.7 / N^0.195 + 46.8 / D^0.169 (E fits to ~0; see below)
implied N_opt ∝ C^0.464
compare Chinchilla 0.46-0.50 · Besiroglu 0.513 · Kaplan 0.730,46, depuis un portable, contre 0,73 pour Kaplan. L’accord à trois chiffres d’un ajustement sur trois budgets tient à la chance ; l’accord au premier chiffre, non. L’exposant voyage — la constante, non, puisque le ratio tokens-paramètres à ces optima est de 170 à 540, pas 20. Trois raisons, toutes instructives. s’ajuste à zéro parce qu’à une perte au-dessus de 4 nats, l’exécution est loin du plancher d’entropie qui domine l’ajustement de Chinchilla. La taille de batch et le learning rate ont été fixés plutôt qu’ajustés par point, ce qui handicape les exécutions qui reçoivent le moins d’étapes — et ce sont les grands modèles : à FLOPs, un modèle de 1,28 million de paramètres reçoit 159 étapes d’optimiseur au total, bien en dessous des quelques milliers que le terme de Kaplan dit nécessaires à n’importe quel modèle. Une scaling law est ajustée à l’intérieur d’un régime, et celle-ci se situe six ordres de grandeur sous Chinchilla.
D’où l’abstract de l’article : « current large language models are significantly undertrained ». Chinchilla est la démonstration — 70 milliards de paramètres sur 1,4 trillion de tokens, le même calcul total que Gopher avec 280 milliards sur 300 milliards, le battant sur 51 des 57 tâches MMLU, 67,5 % contre 60 %.2 Quatre fois plus petit, quatre fois et demie plus de texte, même argent, meilleur modèle.
Deux mises en garde sur ce fameux ratio. « Vingt tokens par paramètre » n’est pas une phrase dans l’article, qui dit seulement que « for every doubling of model size the number of training tokens should also be doubled » ; le 20 est une inférence tirée du tableau 3 et du propre Chinchilla, 70 B sur 1,4 T. Et sa précision est pire que publiée : Besiroglu et al. ont réajusté à partir d’une numérisation de la figure 4, ont constaté que les paramètres originaux « fit the reconstructed data poorly » avec des intervalles « implausibly tight given the number of data points », et placent la plage honnête « between 4 and 40 » tokens par paramètre.8
Un détail de la méthode de Chinchilla tient une promesse faite par le chapitre 1 au sujet des calendriers de learning rate. Le calendrier cosinus doit être adapté au budget de tokens. Un modèle qui verra 10 millions de tokens doit faire décroître son learning rate jusqu’à zéro à 10 millions de tokens ; donnez-lui un calendrier dimensionné pour 100 millions, arrêtez-le tôt, et vous lisez une perte en pleine descente à un taux beaucoup trop élevé. Chinchilla entraîne chaque modèle avec quatre longueurs de cycle pour contrôler exactement cela ; le balayage ci-dessus définit son calendrier à partir du budget pour la même raison.
Ce que les scaling laws ne promettent pas
Lien vers la section : Ce que les scaling laws ne promettent pasElles sont le résultat empirique le plus utile du domaine et sont couramment survendues. Quatre limites.
Elles prédisent la perte, pas les capacités. Le membre de gauche est la cross-entropy sur du texte de validation. Rien dans ces articles n’autorise une affirmation sur le fait qu’un modèle écrira du SQL correct, refusera une demande dangereuse ou utilisera un tool. C’est encore la leçon du chapitre 5 : une prédiction de la perte n’est pas une prédiction du comportement pour lequel vous payez.
Elles sont ajustées, pas dérivées. Aucune théorie ne produit . Les constantes bougent avec le tokenizer — c’est pourquoi une comparaison de perplexité entre deux tokenizers n’a aucun sens, comme l’expliquait le chapitre 8 — et avec le mélange de données, l’architecture et l’optimiseur. Toute loi publiée est une loi du dispositif qui l’a produite, raison pour laquelle Meta a réajusté la sienne avant Llama 3.5
Elles supposent un token neuf à chaque étape, ce qui suppose discrètement un corpus infini. Muennighoff et al. ont mesuré ce qui se passe quand il s’épuise : jusqu’à quatre époques de données répétées coûtent presque rien — un modèle de 8,7 milliards de paramètres sur 44 milliards de tokens uniques vus quatre fois a terminé avec une « only 0.5 % higher validation loss » que le même modèle sur 178 milliards de tokens uniques — tandis qu’au-delà d’environ seize époques, le calcul supplémentaire n’achète plus rien.9
Et plus personne n’entraîne compute-optimal. Chinchilla minimise le coût de l’entraînement ; un modèle déployé paie ensuite environ FLOPs par token généré, pour toujours. LLaMA 1 le disait clairement : « given a target level of performance, the preferred model is not the fastest to train but the fastest at inference ».10 Sardana et al. l’ont formalisé en minimisant plutôt , et ont constaté que toute personne prévoyant un milliard de requêtes devrait entraîner « smaller and longer than Chinchilla-optimal ».11 Le §9.1 de Llama 3 confirme : ses petits modèles s’entraînent « far beyond the point of compute optimal training, effectively trading training compute for inference efficiency ».5 Le ratio n’est pas obsolète ; il répond à une question qui n’est plus celle qu’on pose.
Capacités émergentes, et le débat sur leur réalité
Lien vers la section : Capacités émergentes, et le débat sur leur réalitéLa perte baisse en douceur. Les scores de benchmark, parfois non. Wei et al. ont rassemblé des cas où une tâche reste au niveau du hasard sur des ordres de grandeur de calcul d’entraînement puis saute — l’arithmétique à trois chiffres apparaissant dans GPT-3 vers FLOPs, MMLU dépassant le hasard entre et — et ont nommé le motif : « an ability is emergent if it is not present in smaller models but is present in larger models ».12 Si c’est une propriété réelle, extrapoler à partir d’expériences bon marché est dangereux, parce que la capacité que vous achetez peut ne pas exister à une échelle que vous pouvez vous permettre de tester.
Schaeffer, Miranda et Koyejo ont soutenu que la plupart du phénomène est un artefact de mesure, et le mécanisme est arithmétique.13 La perte par token baisse en douceur, donc la probabilité qu’un token soit juste, , s’améliore graduellement. Évaluez le modèle avec une correspondance exacte de chaîne sur une réponse de tokens et vous élevez cette probabilité à la puissance — une courbe lisse élevée à une grande puissance ressemble à une falaise. Remplacez par une métrique qui compte les tokens au lieu d’exiger qu’ils soient tous corrects, sur les mêmes sorties, et « the family's performance smoothly, continuously and predictably improves with increasing scale ».
Leur audit est le nombre à retenir — « of the 39 preferred metrics in BIG-Bench, at most 5 display emergence », avec deux métriques discontinues représentant plus de 92 % des cas revendiqués — et leur prudence l’est aussi : « nothing in this paper should be interpreted as claiming that large language models cannot display emergent abilities ». Un saut dans un graphique est une preuve sur la métrique jusqu’à démonstration du contraire. Le chapitre 29 est l’endroit où cela devient votre problème, parce que choisir une métrique à seuil dur est une décision que vous prendrez sans vous en apercevoir.
D’où viennent les données
Lien vers la section : D’où viennent les donnéesLe corpus est la partie d’une exécution de pretraining à laquelle aucune équation n’est attachée, et où résident la plupart des décisions lourdes de conséquences. La matière première est un crawl du web : l’archive d’août 2026 de Common Crawl contient « 2.14 billion web pages or 360 TiB of uncompressed content », un mois, gratuit à télécharger.14 Presque rien n’est utilisable tel quel. L’article T5 dit que le crawl « largely comprises gibberish or boiler-plate text like menus, error messages, or duplicate text », et le pipeline C4 qu’il a introduit est une liste d’heuristiques brutales — ne garder que les lignes se terminant par une ponctuation terminale, supprimer les pages de moins de trois phrases, supprimer toute page contenant une accolade ou un mot d’une liste publique d’obscénités — transformant vingt téraoctets de texte mensuel en environ 750 GB.15
Brutal est le mot. Dodge et al. ont audité ce que ces filtres retirent et ont découvert que la blocklist d’obscénités supprime 42 % des documents en anglais afro-américain et 32 % en anglais aligné hispanique, contre 6,2 % de l’anglais aligné blanc, laissant un corpus composé à 97,8 % de cette dernière catégorie.16 Une règle sans opinion sur le dialecte en avait une.
Vient ensuite la déduplication, qui n’est pas du rangement : Lee et al. ont trouvé une phrase de 61 mots répétée 61 036 fois dans C4, et montré que dédupliquer réduit par dix le taux auquel les modèles « emit memorized text », de 1,9 % des tokens générés à 0,19 %.17 Plus n’est pourtant pas mieux — l’équipe de FineWeb a dédupliqué globalement sur 96 crawls, obtenu 4 trillions de tokens sans gain mesurable, puis dédupliqué chaque crawl séparément, obtenu 20 trillions, et égalé le meilleur corpus existant.18
Puis la contamination. Llama 3 a mesuré la sienne et l’a publiée : 98 % d’AGIEval, 95 % de BIG-Bench Hard et 85 % de HellaSwag chevauchant l’ensemble d’entraînement par 8-grams, et pour MMLU un chevauchement si élevé qu’« it is impossible to get a good performance gain estimate ».5 Le §4 de GPT-3 signale un bug de filtrage ayant laissé des benchmarks dans les données sans retour possible : « because of cost considerations it was infeasible to retrain the model ».7
La provenance est la partie non résolue. The Pile contenait un composant de 100,96 GiB appelé Books3 — 12 % du corpus et, selon le propre tableau de consentement de l’article, des livres issus d’un tracker torrent privé ;19 il a été mis hors ligne en août 2023 après une plainte pour droit d’auteur. La situation juridique en septembre 2026 n’est pas tranchée, et les trois décisions américaines citées comme tendance se contredisent. Alsup a jugé l’entraînement sur des livres légalement acquis « exceedingly transformative » tout en considérant qu’une bibliothèque bâtie à partir de copies piratées ne l’était pas, et Anthropic a réglé cette moitié pour $1.5 billion couvrant 482 460 œuvres, environ $3,000 chacune, approuvé le 20 juillet 2026.20 Chhabria a accordé un jugement sommaire à Meta tout en écrivant que sa décision « does not stand for the proposition that Meta's use of copyrighted materials to train its language models is lawful », seulement que « these plaintiffs made the wrong arguments ».21 Bibas, statuant contre Ross Intelligence, a noté que « only non-generative AI is before me today ».22 Aucune cour d’appel américaine ne s’est prononcée sur la question.
Des personnes font les parties que la perte ne peut pas faire. TIME a rapporté en janvier 2023 que des travailleurs labellisant du texte toxique pour OpenAI via l’entreprise Sama touchaient « between around $1.32 and $2 per hour » pour lire des passages décrivant des abus sexuels sur enfants, de la torture et de l’automutilation, tandis qu’OpenAI payait Sama $12.50 de l’heure pour le travail ; Sama conteste à la fois la fourchette de rémunération et le quota.23 C’est le filtrage autour du pretraining plutôt que le pretraining lui-même — mais c’est sur la même facture, et c’est là qu’une personne se trouve.
L’électricité est réelle et généralement mal citée. Le chiffre publié le plus soigneux est celui de BLOOM : 1 082 990 GPU-heures, 433 MWh et 24,7 tonnes de CO₂ équivalent pour l’exécution, 50,5 en comptant la fabrication et les nœuds idle ;24 Patterson et al. placent GPT-3 à 1 287 MWh et 552 tonnes.25 Deux avertissements. L’avantage de BLOOM est le réseau nucléaire français à 57 g CO₂ par kWh plutôt que l’efficacité — il a consommé plus d’énergie qu’OPT-175B. Et le chiffre d’émissions le plus cité du domaine, les 626 155 lb de Strubell et al. pour une recherche d’architecture neuronale, s’est révélé ensuite 88 fois trop élevé, parce qu’il supposait que la recherche avait été lancée à la taille complète du modèle alors qu’elle utilisait un proxy.26 Le cadrage du LBNL est celui qu’on peut défendre : les data centres américains ont consommé 192 TWh en 2024, 4,7 % de l’électricité nationale — un chiffre attaché à une industrie, pas à une exécution particulière.27
Le fil conducteur est ce que Bender et al. ont appelé la documentation debt : « putting ourselves in a situation where the datasets are both undocumented and too large to document post hoc ».28 Tous les faits ci-dessus existent parce que quelqu’un a regardé. Pour les corpus derrière les modèles que la plupart des gens utilisent, personne ne le peut.
Ce que cela coûte réellement
Lien vers la section : Ce que cela coûte réellementVoici maintenant l’arithmétique que tout le monde veut, à partir de quatre entrées citées, de sorte que lorsqu’elles deviendront périmées il soit évident lesquelles remplacer.
Débit de pointe
Lien vers la section : Débit de pointeLa page H100 de NVIDIA liste 1 979 teraFLOPS de débit tensor-core BF16 sous une note indiquant « with sparsity ».29 Aucune exécution de pretraining n’utilise de sparsity structurée, donc le chiffre dense est la moitié : 989,5 TFLOP/s.
Utilisation
Lien vers la section : UtilisationLe tableau 4 de Llama 3 rapporte 38–43 % d’utilisation des FLOPs du modèle BF16. Prenez 40 % : 395,8 TFLOP/s d’arithmétique utile par GPU.5
Le prix à la demande de Lambda pour un nœud 8×H100 SXM, consulté le 2026-09-06 : $3.99 par GPU-heure, soit $31.92 par heure pour le nœud.30
Le ratio de Chinchilla, , donne et donc .
| budget | H100-heures | FLOPs | paramètres compute-optimal | tokens | sur un nœud 8×H100 | GPUs pour finir en 90 jours |
|---|---|---|---|---|---|---|
| $100 | 25 | 3.6e19 | 546 M | 10.9 B | 3.1 h | 1 |
| $1,000 | 251 | 3.6e20 | 1.73 B | 34.5 B | 31.3 h | 1 |
| $10,000 | 2,506 | 3.6e21 | 5.46 B | 109 B | 13 jours | 2 |
| $100,000 | 25,063 | 3.6e22 | 17.3 B | 345 B | 131 jours | 12 |
| $1,000,000 | 250,627 | 3.6e23 | 54.6 B | 1.09 T | 4 ans | 116 |
| $10,000,000 | 2,506,266 | 3.6e24 | 173 B | 3.45 T | 36 ans | 1,160 |
| $100,000,000 | 25,062,657 | 3.6e25 | 546 B | 10.9 T | 358 ans | 11,603 |
Lisez les deux dernières colonnes ensemble. À $10,000, vous obtenez un modèle de 5 milliards de paramètres sur un nœud loué en quinze jours. À $100,000,000, l’arithmétique dit 546 milliards de paramètres — et douze mille H100 câblées ensemble pendant trois mois, ce qui ne se loue pas avec une carte bancaire. Au-delà d’environ $100,000, la contrainte bloquante cesse d’être l’argent et devient le cluster.
Avant de faire confiance à un tableau comme celui-là, testez-le contre des exécutions dont le coût réel est publié — llm.c reproduit GPT-2 124M en « ~90 minutes » sur un nœud 8×A100 « for about $20 », et GPT-2 1.6B en 24 heures sur un nœud 8×H100 pour $672.31
$672, against what $672 actually bought (llm.c GPT-2 1.6B, one 8xH100 node, 24 h)
this table predicts: 168 H100-hours N = 1.41 B params D = 28.3 B tokens
what was actually run: 192 H100-hours N = 1.558 B params D = 33.6 B tokens
Llama 3 405B, against Meta's own published GPU-hours
from the paper's 3.8e25 FLOPs at 40 % MFU: 26.67 M H100-hours
published in Meta's Llama 3.1 model card: 30.84 M H100-hours ratio 0.86Les deux sont à environ 15 %, ce qui correspond grosso modo à la précision que mérite ce type d’estimation et est nettement meilleur que la précision avec laquelle elle est généralement citée.
La comparaison headline, avec les deux définitions sur la table
Lien vers la section : La comparaison headline, avec les deux définitions sur la tableLe chiffre le plus répété sur ce sujet est qu’un modèle de classe GPT-2 coûtant environ $43,000 en 2019 peut aujourd’hui être reproduit pour quelques dizaines de dollars. La moitié moderne est bien documentée ; la moitié historique ne l’est pas.
Aujourd’hui. Le README de nanochat par Karpathy : « you can train your own GPT-2 capability LLM ... for only $48 (~2 hours of 8XH100 GPU node) ... On a spot instance, the total cost can be closer to ~$15. »32 « GPT-2 capability » est ici précis et publié — battre le score CORE de GPT-2, 0.256525 — sur un leaderboard dont la meilleure entrée au 14 mars 2026 est 1,65 heure. Les $48 supposent $3 par GPU-heure, sous le prix catalogue de Lambda à $3.99 ; au catalogue, on est plus près de $64.
En 2019. Il n’existe pas de source primaire : OpenAI n’a jamais publié de durée ni de coût. La chaîne passe par The Register, février 2019, rapportant « 256 Google TPU3 cores » sans prix ni durée ; puis Synced, juin 2019, notant que le matériel coûtait $256 de l’heure sur Google Cloud et indiquant explicitement que « OpenAI didn't specify the training duration ». $43,008 correspond à $256 de l’heure multipliés par 168 heures supposées, qu’aucune source n’a jamais étayées.
Le headline honnête est donc : un modèle égalant le score de benchmark publié de GPT-2 peut aujourd’hui être entraîné pour largement moins de $100 sur du matériel loué, contre un coût de 2019 qui n’a jamais été publié et dont la célèbre estimation repose sur une hypothèse non sourcée sur la durée. L’effondrement est réel et la moitié moderne est reproductible par toute personne avec une carte bancaire ; le ratio est de l’arithmétique appliquée à un nombre qui n’existe pas. C’est l’état général des coûts d’entraînement publiés. L’article GPT-3 ne contient aucun montant en dollars, seulement FLOPs dans le tableau D.1 ;7 l’article Llama 3 n’en contient pas non plus.5 Tout coût d’entraînement que vous avez lu est une estimation à partir d’un compte de FLOP, d’une hypothèse matériel et d’une hypothèse de prix — il vaut toujours la peine de demander de qui elles viennent.
Ce qu’un modèle de base sait, et quand il a cessé de le savoir
Lien vers la section : Ce qu’un modèle de base sait, et quand il a cessé de le savoirCe qui sort a vu un corpus fixe assemblé à un moment fixe, et deux propriétés en découlent.
La première est le knowledge cutoff. Après la date de collecte, le modèle ne sait rien — pas « il est incertain », rien — et il confabulera avec aisance plutôt que de le dire, parce que le dire n’a jamais été un comportement sur lequel il a été entraîné. La model card de Llama 3.1 indique décembre 2023 ;33 chaque modèle en a une, et c’est une propriété des données d’entraînement, pas du déploiement. Le contournement relève de la récupération d’information, ce qui est le chapitre 19.
La seconde est qu’un modèle de base complète plutôt qu’il ne répond. Donnez-lui « Quelle est la capitale de la France ? » et une continuation plausible est une autre question, parce que dans le corpus cette chaîne apparaît le plus souvent dans une liste d’exercices.
Où cela va ensuite
Lien vers la section : Où cela va ensuiteUn compléteur de texte n’est pas un assistant. Il ne suit pas les instructions, parce que rien dans le corpus ne lui a dit qu’une demande devait être exécutée plutôt que continuée. Il n’a aucune notion d’une conversation à deux participants. Il produira volontiers la continuation la plus probable d’un prompt dangereux, parce que probable est la seule chose pour laquelle il ait jamais été optimisé.
Le transformer en quelque chose qui répond demande une seconde étape coûtant une fraction de pour cent de la première, et consistant presque entièrement à lui montrer des exemples du comportement voulu puis à comparer des paires de ses propres sorties. C’est à cette étape que naissent le suivi d’instructions, les templates de chat, les refus et — cela surprend — la capacité à appeler un tool. Le chapitre 11 est cette étape : supervised fine-tuning, RLHF, DPO et GRPO, et la question de ce que signifie « aligned » et de qui en décide.
Sources et méthode
Lien vers la section : Sources et méthodeÀ lire aussi avec ce chapitre : le build-nanogpt de Karpathy et sa vidéo d’accompagnement, qui parcourent une reproduction complète de GPT-2 de bout en bout à un rythme que ce chapitre ne peut pas tenir ; et Stanford CS324, Large Language Models, dont les cours sur les données et sur l’impact environnemental approfondissent davantage que la section ci-dessus une matière que ce cours traite une fois puis délègue.
Références
Lien vers la section : Références-
Kaplan, J., McCandlish, S., Henighan, T., Brown, T. B., Chess, B., Child, R., Gray, S., Radford, A., Wu, J. and Amodei, D. Scaling Laws for Neural Language Models. arXiv:2001.08361 (2020). Les trois lois de puissance sont les équations (1.1)–(1.3) au §1.2 et les constantes complètes se trouvent dans l’annexe A, tableau 5 ; la dérivation de est au §2.1 ; les exposants d’allocation du calcul sont au tableau 6. Notez qu’il existe deux lois de calcul, à taille de batch fixe et à taille de batch optimale ; l’article dit que la seconde « should be used to make predictions ». ↩ ↩2
-
Hoffmann, J., Borgeaud, S., Mensch, A., Buchatskaya, E., Cai, T., Rutherford, E. et al. Training Compute-Optimal Large Language Models. arXiv:2203.15556 (2022). Exposants dans le tableau 2, budgets projetés dans le tableau 3, comparaison avec Gopher au §4, convention de comptage des paramètres dans l’annexe F. La prose sous le tableau 3 contredit le tableau 3 lui-même pour les lignes 175 B et 280 B ; le tableau est la version à citer. ↩ ↩2 ↩3 ↩4
-
Micikevicius, P., Narang, S., Alben, J., Diamos, G., Elsen, E., Garcia, D. et al. Mixed Precision Training. arXiv:1710.03740 (2017), ICLR 2018. Poids maîtres FP32 au §3.1, loss scaling au §3.2. ↩ ↩2
-
Rajbhandari, S., Rajbhandari, S., Ruwase, O. and He, Y. ZeRO: Memory Optimizations Toward Training Trillion Parameter Models. arXiv:1910.02054 (2019), SC20. La comptabilité est au §3.1 ; les chiffres d’état résiduel pour les activations sont au §3.2. ↩
-
Grattafiori, A. et al. (Llama Team, AI @ Meta). The Llama 3 Herd of Models. arXiv:2407.21783 (2024). Budget de calcul et nombre de tokens au §1, scaling law réajustée au §3.2.1, configuration de parallélisme et MFU dans le tableau 4, analyse de contamination au §5.1.4, déclaration de surentraînement au §9.1. L’article ne contient aucun chiffre en dollars ni tableau d’émissions. ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Stanford CS336, Language Modeling from Scratch. Le cours 2 couvre la comptabilité des ressources, les cours 5–8 les GPUs, kernels et parallélisme, les cours 9 et 11 le scaling, les cours 13–14 les données. C’est le cours auquel ce chapitre délègue son ingénierie, et il est public. ↩
-
Brown, T. B. et al. Language Models are Few-Shot Learners. arXiv:2005.14165 (2020). Calcul dans l’annexe D, tableau D.1 — qui a une colonne littéralement intitulée « flops per param per token », dont la valeur pour chaque ligne GPT-3 est 6. Analyse de contamination au §4. ↩ ↩2 ↩3
-
Besiroglu, T., Erdil, E., Barnett, M. and You, J. Chinchilla Scaling: A replication attempt. arXiv:2404.10102 (2024). Reconstruit les données de Chinchilla en numérisant sa figure 4, réajuste, et rapporte les exposants corrigés ainsi que des intervalles beaucoup plus larges. ↩
-
Muennighoff, N., Rush, A. M., Barak, B., Le Scao, T., Piktus, A., Tazi, N., Pyysalo, S., Wolf, T. and Raffel, C. Scaling Data-Constrained Language Models. arXiv:2305.16264 (2023), NeurIPS 2023. Le résultat à quatre époques est au §6 ; la demi-vie à seize époques est le ajusté. ↩
-
Touvron, H., Lavril, T., Izacard, G., Martinet, X., Lachaux, M.-A., Lacroix, T. et al. LLaMA: Open and Efficient Foundation Language Models. arXiv:2302.13971 (2023). Le §1 énonce l’argument du coût d’inférence contre l’entraînement Chinchilla-optimal. ↩
-
Sardana, N., Portes, J., Doubov, S. and Frankle, J. Beyond Chinchilla-Optimal: Accounting for Inference in Language Model Scaling Laws. arXiv:2401.00448 (2023), ICML 2024. Leur §5 contient aussi le contrepoids : les modèles entraînés avec des ratios de tokens extrêmes continuent de s’améliorer, mais « more slowly than scaling laws predict ». ↩
-
Wei, J., Tay, Y., Bommasani, R., Raffel, C., Zoph, B., Borgeaud, S. et al. Emergent Abilities of Large Language Models. arXiv:2206.07682 (2022), TMLR. Définition au §2, exemples et seuils de calcul aux §3–4 et dans le tableau 1. ↩
-
Schaeffer, R., Miranda, B. and Koyejo, S. Are Emergent Abilities of Large Language Models a Mirage? arXiv:2304.15004 (2023), NeurIPS 2023 outstanding paper. L’argument sur les métriques est au §2, la méta-analyse BIG-Bench au §4, l’exemple visuel construit au §5. ↩
-
Common Crawl, August 2026 Crawl Archive Now Available (CC-MAIN-2026-34), publié le 24 août 2026, consulté le 2026-09-06. Sa propre page d’accueil revendique « over 300 billion pages spanning 15 years », « totalling more than 10 petabytes » — un chiffre pour toute l’archive, pas pour le crawl mensuel chiffré ici. ↩
-
Raffel, C., Shazeer, N., Roberts, A., Lee, K., Narang, S., Matena, M., Zhou, Y., Li, W. and Liu, P. J. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683 (2019), JMLR 21(140). Les filtres C4 sont au §2.2. L’article donne des tailles en octets, pas en tokens ; le chiffre de 156 milliards de tokens qui lui est largement attribué vient de Dodge et al. ci-dessous. ↩
-
Dodge, J., Sap, M., Marasović, A., Agnew, W., Ilharco, G., Groeneveld, D., Mitchell, M. and Gardner, M. Documenting Large Webtext Corpora: A Case Study on the Colossal Clean Crawled Corpus. arXiv:2104.08758 (2021), EMNLP 2021. Les taux de suppression par dialecte sont au §5.3 ; la contamination de benchmarks dans C4 au §4.2. ↩
-
Lee, K., Ippolito, D., Nystrom, A., Zhang, C., Eck, D., Callison-Burch, C. and Carlini, N. Deduplicating Training Data Makes Language Models Better. arXiv:2107.06499 (2021), ACL 2022. Les 61 036 répétitions sont en note 1 ; les chiffres de mémorisation sont au §6.2, tableau 4, et sont des pourcentages de tokens générés selon un critère de correspondance exacte à 50 tokens. ↩
-
Penedo, G., Kydlíček, H., Ben Allal, L., Lozhkov, A., Mitchell, M., Raffel, C., Von Werra, L. and Wolf, T. The FineWeb Datasets: Decanting the Web for the Finest Text Data at Scale. arXiv:2406.17557 (2024), NeurIPS 2024 Datasets and Benchmarks. Le résultat de déduplication est au §3.4. Le dataset publié a depuis dépassé les 15 trillions de tokens de l’article. ↩
-
Gao, L., Biderman, S., Black, S. et al. The Pile: An 800GB Dataset of Diverse Text for Language Modeling. arXiv:2101.00027 (2020). Books3 est au §2.3 et dans le tableau 1 ; le tableau de consentement est le tableau 5. Le corpus fait 825,18 GiB, donc même le titre arrondit vers le bas. ↩
-
Bartz v. Anthropic, No. 4:24-cv-05417 (N.D. Cal.). Ordonnance de fair use du 23 juin 2025 (Dkt. 231) ; certification de classe du 17 juillet 2025 ; approbation finale et jugement du 20 juillet 2026 (Dkt. 680). Le règlement libère uniquement les inputs passés, pas les outputs ni les conduites futures. ↩
-
Kadrey v. Meta, No. 3:23-cv-03417-VC (N.D. Cal.), jugement sommaire du 25 juin 2025 (Dkt. 598). Notez que la demande relative à la distribution par torrent n’a pas été tranchée et reste pendante. ↩
-
Thomson Reuters v. ROSS Intelligence, No. 1:20-cv-00613-SB (D. Del.), opinion révisée du 11 février 2025 (Dkt. 770), juge Bibas. En appel interlocutoire devant le Third Circuit (No. 25-2153), plaidé le 11 juin 2026, non tranché au moment de la rédaction. ↩
-
Perrigo, B. Exclusive: OpenAI Used Kenyan Workers on Less Than $2 Per Hour to Make ChatGPT Less Toxic. TIME, 18 janvier 2023. Les $2 sont un plafond pour les réviseurs seniors qui atteignaient chaque objectif ; les labellisateurs juniors, majoritaires, touchaient $1.32. La réfutation de Sama, citée dans le même article, donne $1.46–$3.74 et un quota plus bas. ↩
-
Luccioni, A. S., Viguier, S. and Ligozat, A.-L. Estimating the Carbon Footprint of BLOOM, a 176B Parameter Language Model. arXiv:2211.02001 (2022), JMLR 24(253). Tableaux 1 et 3. ↩
-
Patterson, D., Gonzalez, J., Le, Q., Liang, C., Munguia, L.-M., Rothchild, D., So, D., Texier, M. and Dean, J. Carbon Emissions and Large Neural Network Training. arXiv:2104.10350 (2021). Les chiffres de GPT-3 sont au tableau 4 ; la correction de l’estimation NAS est au §4.1. ↩
-
Strubell, E., Ganesh, A. and McCallum, A. Energy and Policy Considerations for Deep Learning in NLP. arXiv:1906.02243 (2019), ACL 2019. À lire précisément à cause de ce qui est arrivé à son chiffre le plus cité : l’article est prudent, indique son extrapolation, et s’est tout de même trompé de deux ordres de grandeur sur la ligne que tout le monde a répétée. ↩
-
Smith, S. J., Hubbard, A., Newkirk, A., Ganeshalingam, M., Holecek, B., Sartor, D., Mills, M. and Shehabi, A. United States Data Center Energy Usage Report: 2025 Update. LBNL-2001758 (18 juin 2026). Cela révise à la baisse le rapport 2024 largement cité pour la série historique ; si vous citez le chiffre de 176 TWh pour 2023, vous citez l’édition remplacée. ↩
-
Bender, E. M., Gebru, T., McMillan-Major, A. and Shmitchell, S. On the Dangers of Stochastic Parrots: Can Language Models Be Too Big? FAccT '21, pp. 610–623. DOI 10.1145/3442188.3445922. La « documentation debt » est au §4.4. Notez que les propres chiffres carbone de l’article sont cités depuis Strubell et al. et héritent de la correction ci-dessus — ce qui illustre son argument plutôt que de le réfuter. ↩
-
NVIDIA. Page produit NVIDIA H100 Tensor Core GPU,
nvidia.com/en-us/data-center/h100/(consultée le 2026-09-06). Toutes les lignes tensor-core de cette page sauf FP64 portent la note « with sparsity » ; le chiffre BF16 dense utilisé ici est la moitié des 1 979 TFLOPS publiés. ↩ -
Lambda. GPU Cloud pricing,
lambda.ai/pricing(consulté le 2026-09-06). À la demande, par GPU et par heure, hors taxes. Les prix de cette section deviendront périmés plus vite que tout le reste de ce cours ; l’arithmétique autour d’eux, non. ↩ -
Karpathy, A.
karpathy/llm.c, discussion #481, Reproducing GPT-2 (124M) in llm.c in 90 minutes for $20 (28 mai 2024), et discussion #677, Let's reproduce GPT-2 (1.6B): one 8XH100 node, 24 hours, $672, in llm.c (11 juillet 2024). ↩ -
Karpathy, A.
karpathy/nanochat, README et leaderboard « time to GPT-2 » (consultés le 2026-09-06). Le chiffre de $48 et la définition par score CORE de « GPT-2 capability » figurent tous deux dans le README ; le proprespeedrun.shdu dépôt dit « approximately 1.5 hours », donc traitez le chiffre de deux heures comme arrondi. ↩ -
Meta. Llama 3.1 model card,
models/llama3_1/MODEL_CARD.mddansmeta-llama/llama-models(consulté le 2026-09-06). Source des 30,84 M H100-heures pour le modèle 405 B, des 39,3 M au total, du chiffre location-based de 11 390 tCO2eq, et du data cutoff de décembre 2023. ↩