← Tous les articles

Philosophie de l'ingénierie : Andrej Karpathy, la pile que vous n'écrivez pas

Andrej Karpathy, chercheur en IA et enseignant

Points clés

  • Software 2.0 est le recadrage de Karpathy : un réseau de neurones est un programme compilé à partir de données, et non écrit à la main. Le jeu de données est le code source ; l’entraînement est le compilateur.
  • Il gagne le droit d’avancer cette idée en construisant chaque couche de zéro — micrograd, char-rnn, nanoGPT — parce qu’on ne peut pas faire confiance à une pile que l’on est incapable de reconstruire soi-même.
  • Il traite l’enseignement comme un artisanat : la démonstration lisible et le dépôt propre sont la manière dont il débogue sa propre compréhension, pas la manière dont il en fait la promotion.
  • La discipline qui relie tout cela est le principe du « tout reconstruire de zéro » — implémentez la rétropropagation à la main une seule fois, et l’échec d’un vrai modèle devient une chose que vous connaissez plutôt qu’une chose que vous devinez.

Le principe

« Les réseaux de neurones ne sont pas simplement un classifieur de plus, ils marquent le début d’un changement fondamental dans notre manière de développer des logiciels. Ils sont le Software 2.0. » — Andrej Karpathy1

La plupart des ingénieurs, en 2017, considéraient les réseaux de neurones comme un outil de plus dans la boîte — un classifieur que l’on sortait quand la régression logistique ne suffisait plus. Karpathy soutenait qu’ils étaient tout autre chose : un nouveau paradigme de programmation. Dans le Software 1.0, un humain écrit des instructions explicites en Python ou en C++. Dans le Software 2.0, l’humain écrit une ébauche grossière — une architecture de réseau — et constitue un jeu de données, et « le processus d’entraînement du réseau de neurones compile le jeu de données en binaire »1. Aucun humain n’écrit les poids. Le programme est cultivé, et non rédigé.

Un seul recadrage réorganise tout ce qui suit. Si le modèle est le programme, le jeu de données devient le code source, la courbe de perte devient l’erreur de compilation, et le travail de l’ingénieur passe de l’écriture de la logique à la mise en forme des conditions dans lesquelles cette logique émerge. C’est ce même basculement qui fait du contexte, et non du code, la véritable architecture d’un système d’IA moderne : vous ne donnez pas d’instructions au comportement, vous bâtissez le substrat dans lequel il se forme. Et sous tout l’enseignement de Karpathy court une conviction unique — on ne peut pas faire confiance à une pile que l’on ne sait pas construire soi-même. Il a donc construit chaque couche de zéro, en public, un caractère de rétropropagation à la fois.

Contexte

Andrej Karpathy est né à Bratislava, en Slovaquie, en 1986, et a déménagé avec sa famille à Toronto à quinze ans. Il a étudié l’informatique et la physique à l’Université de Toronto où — en tant qu’étudiant de premier cycle — il a assisté au cours et aux groupes de lecture de Geoffrey Hinton, absorbant l’évangile des réseaux de neurones des années avant qu’il ne devienne une orthodoxie. Après un master à l’Université de la Colombie-Britannique, il est parti à Stanford pour un doctorat sous la direction de Fei-Fei Li au Stanford Vision Lab, achevé en 2015. Ses travaux doctoraux se situaient à l’intersection de la vision par ordinateur et du langage naturel — apprendre aux machines à décrire des images — précisément la couture que la décennie suivante allait déchirer.2

À Stanford, il a conçu et enseigné CS231n, le premier cours d’apprentissage profond de l’université, qui est passé de 150 étudiants en 2015 à 750 en 2017.3 Il a été membre fondateur d’OpenAI en 2015. En 2017, il est devenu directeur de l’IA chez Tesla, sous l’autorité d’Elon Musk, où il dirigeait la pile de vision d’Autopilot. Il est retourné chez OpenAI en 2023, l’a quittée en 2024 pour fonder Eureka Labs, l’entreprise d’éducation à l’IA, et en 2026 a rejoint l’équipe de pré-entraînement d’Anthropic.2 Le fil conducteur de chacun de ces mouvements n’est pas l’employeur. C’est l’exigence de comprendre la machine jusqu’au bout, puis de montrer à tous les autres comment faire.

L’œuvre

« The Unreasonable Effectiveness of Recurrent Neural Networks » (2015) : la démonstration comme argument

Le schéma char-rnn de Karpathy : le réseau lit les caractères « h, e, l, l » à travers une couche d'entrée, une couche cachée et une couche de sortie, et apprend à prédire le caractère suivant à chaque étape — « e, l, l, o »

En mai 2015, Karpathy a publié un billet de blog devenu viral dans un domaine qui n’avait pas encore de billets de blog viraux. Il a entraîné des réseaux de neurones récurrents au niveau du caractère — char-rnn — sur du texte brut et les a laissés générer un caractère à la fois. Les modèles ont appris à produire du Shakespeare, des mathématiques LaTeX qui compilaient presque, du C de noyau Linux et du balisage Wikipédia, sans qu’on leur ait jamais dit ce qu’étaient ces choses.4

Le billet était un argument déguisé en démonstration. En faisant accomplir à un petit modèle quelque chose de saisissant et de lisible — on pouvait lire le charabia se solidifiant lentement en syntaxe — Karpathy prouvait que les modèles de séquences avaient absorbé une structure profonde à partir des seules données. Le code char-rnn qui accompagnait le billet sur GitHub comptait autant que la prose. La leçon qui allait définir sa carrière était déjà présente : le meilleur plaidoyer pour une idée est sa plus petite version qui fonctionne, avec le code attaché.

Software 2.0 (2017) : le recadrage

L’essai de 2017 est la clé de voûte. La thèse de Karpathy était que, pour une classe grandissante de problèmes — vision, parole, traduction — il est plus simple de collecter des données et d’entraîner un réseau que d’écrire le programme à la main, et que le réseau entraîné est souvent meilleur. Le Software 2.0 est « écrit dans un langage bien plus abstrait, peu commode pour l’humain, comme les poids d’un réseau de neurones », et « aucun humain n’intervient dans l’écriture de ce code ».1

La véritable contribution de l’essai était culturelle, pas seulement technique. Si les réseaux de neurones sont un paradigme de programmation, alors les équipes ont besoin d’un contrôle de version pour les jeux de données, de débogueurs pour les activations, et d’une discipline face à des modes de défaillance que l’ancienne pile n’avait jamais connus. Près d’une décennie plus tard, Karpathy a prolongé le cadre jusqu’au Software 3.0 : de grands modèles de langage que l’on programme en anglais ordinaire, ce qui explique qu’il ait pu qualifier l’anglais de « langage de programmation le plus en vogue ».5 L’agent n’est pas devenu plus intelligent — c’est le substrat qui l’est devenu, et l’ingénierie a monté d’une couche à chaque fois.

Tesla Autopilot (2017-2022) : le Software 2.0 en production

La pile de vision d'Autopilot de Tesla : flux bruts des caméras (en haut) reconstruits en un « espace vectoriel » vu du dessus, avec les bords de la route et la géométrie des voies (en bas) — du Software 2.0 tournant dans une voiture en mouvement

En tant que directeur de l’IA chez Tesla, Karpathy a déployé le Software 2.0 là où les enjeux étaient les plus élevés : une voiture lancée à vive allure. Le système de vision d’Autopilot était une flotte de réseaux de neurones consommant des flux de caméras, et le problème central de son équipe était celui que l’essai avait prédit — quand le programme est le jeu de données, améliorer le programme revient à améliorer les données. Tesla a construit des moteurs de données : des pipelines qui exploraient la flotte à la recherche des cas rares et difficiles (un camion transportant des cônes de signalisation, un cerf au crépuscule), les étiquetaient, réentraînaient le réseau et le redéployaient. La base de code rétrécissait à mesure que les heuristiques écrites à la main étaient supprimées et absorbées par le réseau. Karpathy a décrit cela sans détour comme du code Software 1.0 « mangé » par la pile 2.0 — la validation en production la plus nette de sa thèse.2

nanoGPT, micrograd et « Neural Networks: Zero to Hero » (à partir de 2022) : de zéro, expliqué pas à pas

La bannière de nanoGPT — la blague de Karpathy sur les implémentations de GPT disponibles : les options poids lourds barrées au profit d'un petit « hors-bord » lisible

Après Tesla, Karpathy s’est consacré à plein temps à l’œuvre qui pourrait bien survivre à tout le reste : apprendre aux gens à construire la pile eux-mêmes. Sa série de cours « Neural Networks: Zero to Hero » débute par micrograd — un moteur de différentiation automatique complet et une bibliothèque de réseaux de neurones tenant en environ 100 lignes de Python — et s’élève, vidéo après vidéo, jusqu’à un GPT fonctionnel.6 Le cours final, « Let’s build GPT: from scratch, in code, spelled out », reproduit l’architecture du Transformer issue de « Attention Is All You Need », tapée en direct. Son dépôt build-nanogpt qui l’accompagne reproduit ensuite GPT-2 (124M) à partir d’un fichier vide, avec un historique git tenu assez propre pour être parcouru commit par commit — un hors-bord fonctionnel distillé à partir du nanoGPT de qualité production.7

La pédagogie est la philosophie. Aucun import de bibliothèque ne vient masquer le gradient. Vous implémentez la rétropropagation à la main pour que, lorsqu’un vrai modèle se comporte mal, vous sachiez — et non pas croyiez — ce qui se passe à l’intérieur. micrograd, c’est toute la pile en 100 lignes : pas de PyTorch, pas de magie, chaque multiplication visible.

La méthode

Les principes premiers d’abord, les cadres ensuite. Karpathy refuse de laisser une abstraction tenir debout tant qu’il n’a pas construit la chose qui se trouve dessous. micrograd existe pour que l’autograd de PyTorch ne soit jamais une boîte noire. Construire la couche d’en dessous est la version, pour l’ingénieur, du refus de citer une source que l’on n’a pas lue.

Construire la plus petite version qui fonctionne. char-rnn, micrograd, nanoGPT et son plus récent nanochat sont tous délibérément minuscules — assez petits pour tenir le tout en tête, assez complets pour réellement tourner. La petitesse est le but : une bibliothèque de 100 lignes enseigne ce qu’une bibliothèque de 100 000 lignes occulte.

Apprendre en public. Presque tout ce que Karpathy comprend, il le publie — sous forme de billet de blog, de cours, de dépôt propre, ou d’un tweet jeté en l’air qui nomme un phénomène (« vibe coding ») que le reste du domaine avait ressenti sans l’avoir formulé.8 L’enseignement force la clarté ; on ne peut pas expliquer la rétropropagation pas à pas au tableau tout en restant confus à son sujet.

La clarté comme outil de pensée. La lisibilité de ses démonstrations — regarder un RNN apprendre la syntaxe caractère par caractère — n’est pas du spectacle. C’est ainsi qu’il débogue sa propre compréhension. S’il ne peut pas la rendre visible, c’est qu’il ne la comprend pas encore.

Chaîne d’influence

Ceux qui l’ont façonné

Geoffrey Hinton a allumé la mèche. Karpathy a découvert la rétropropagation et les réseaux de neurones dans l’orbite de Hinton à Toronto, au moment précis — juste avant le résultat ImageNet de 2012 — où le domaine est passé de marginal à dominant. La conviction que les réseaux de neurones n’étaient pas un outil de niche mais l’avenir de l’informatique est celle de Hinton, reprise et portée plus loin.

Fei-Fei Li a façonné l’artisan. En tant que directrice de thèse et architecte d’ImageNet, elle a donné à Karpathy la discipline de traiter les données comme l’objet central — le jeu de données comme ce qui détermine ce qu’un modèle peut devenir. Le Software 2.0 est, en un sens très réel, la doctrine d’un laboratoire de vision centré sur les données, écrite comme une théorie de tout le logiciel.

Ceux qu’il a façonnés

Une génération d’ingénieurs en ML. Pendant des années, CS231n a été la façon dont les ingénieurs en exercice apprenaient l’apprentissage profond ; ses notes sont encore citées comme un manuel. « Neural Networks: Zero to Hero » et nanoGPT sont ensuite devenus la voie canonique « de zéro » vers les Transformers — le chemin qu’ont emprunté des milliers de praticiens pour passer de « j’utilise l’API » à « je comprends l’architecture ». Peu de gens ont personnellement intégré une plus grande part de l’actuelle main-d’œuvre en IA.

Le fil conducteur

John Carmack a fait de la rétro-ingénierie sur le matériel graphique et a reconstruit le pipeline de rendu de zéro parce qu’il refusait de livrer par-dessus une couche qu’il ne comprenait pas. Karpathy implémente la rétropropagation à la main pour la même raison. Tous deux traitent le fait de le construire soi-même non comme un exercice de tutoriel mais comme la seule voie honnête vers la maîtrise — la conviction que l’on ne connaît véritablement un système qu’une fois que l’on en a écrit la plus petite version complète. Le même instinct court chez Linus Torvalds et son refus de faire confiance à ce qu’il ne peut pas inspecter. (Passerelle de la série)

Ce que j’en retiens

La discipline à laquelle je reviens sans cesse est le refus de Karpathy d’opérer par-dessus une couche qu’il n’a pas construite au moins une fois. Lorsqu’on compose des agents, il est tentant de traiter le modèle comme un oracle et le cadre comme une parole d’évangile. Son exemple dit : construisez d’abord la plus petite version vous-même — comprenez pourquoi l’agent devrait appeler le modèle directement avant de vous tourner vers la bibliothèque d’orchestration. Le cadre Software 2.0/3.0 reformule aussi tout le métier : dans un système d’agents, vous n’écrivez pas le comportement, vous mettez en forme les conditions — le contexte, les données, les prompts — dans lesquelles le comportement émerge, le fil conducteur de tout, du RAG aux agents. La carte complète se trouve dans le hub d’ingénierie de l’IA et le guide d’architecture des agents.

FAQ

Qu’est-ce que le « Software 2.0 » d’Andrej Karpathy ?

Le Software 2.0 est le terme de Karpathy, issu d’un essai de 2017, désignant des programmes écrits comme les poids d’un réseau de neurones plutôt que comme des instructions explicites rédigées par un humain. Dans le Software 1.0, un programmeur écrit la logique ; dans le Software 2.0, le programmeur spécifie un objectif et une architecture, constitue un jeu de données, et « le processus d’entraînement du réseau de neurones compile le jeu de données en binaire ». Le jeu de données devient le code source et l’entraînement devient la compilation.1

Qu’a fait Andrej Karpathy chez Tesla ?

De 2017 à 2022, Karpathy a été directeur de l’IA chez Tesla, à la tête de la pile de vision par réseaux de neurones derrière Autopilot. Son équipe a construit des « moteurs de données » qui exploraient la flotte de véhicules à la recherche de scénarios de conduite rares et difficiles, les réétiquetaient et réentraînaient le réseau dessus, et remplaçaient progressivement les heuristiques de conduite écrites à la main par des réseaux appris — une démonstration en production de sa thèse du Software 2.0.2

Qu’est-ce que « Neural Networks: Zero to Hero » ?

Il s’agit de la série de cours vidéo gratuite de Karpathy qui enseigne l’apprentissage profond en le construisant de zéro en Python. Elle débute par micrograd — un moteur de différentiation automatique d’environ 100 lignes — et s’élève à travers les modèles de langage jusqu’à un GPT bâti de zéro, dont le cours « Let’s build GPT: from scratch, in code, spelled out ». Le dépôt build-nanogpt qui l’accompagne reproduit GPT-2 (124M) à partir d’un fichier vide, un commit git à la fois.67

Est-ce Andrej Karpathy qui a inventé le terme « vibe coding » ?

Oui. Dans un billet publié sur X en février 2025, Karpathy a décrit « un nouveau genre de programmation que j’appelle le “vibe coding”, où l’on s’abandonne pleinement aux sensations, où l’on embrasse les exponentielles et où l’on oublie que le code existe même », rendu possible par des outils de programmation LLM devenus assez bons pour construire un logiciel par la conversation. Il a plus tard qualifié le billet de « tweet jeté en l’air » ; le terme est néanmoins entré dans le vocabulaire du secteur.8


Sources


  1. Andrej Karpathy, « Software 2.0 ». Medium, 11 novembre 2017. « Neural networks are not just another classifier…They are Software 2.0 » ; « the process of training the neural network compiles the dataset into the binary » ; « no human is involved in writing this code ». 

  2. « Andrej Karpathy ». Wikipédia. Né à Bratislava en 1986 ; Toronto, UBC, doctorat à Stanford sous la direction de Fei-Fei Li (2015) ; membre fondateur d’OpenAI ; directeur de l’IA chez Tesla (2017-2022) ; retour chez OpenAI (2023) ; Eureka Labs (2024) ; pré-entraînement chez Anthropic (2026). 

  3. Andrej Karpathy, site personnel / bio. CS231n : premier cours d’apprentissage profond de Stanford, conçu et principalement enseigné par Karpathy ; les effectifs sont passés de 150 (2015) à 750 (2017). Cours : CS231n. 

  4. Andrej Karpathy, « The Unreasonable Effectiveness of Recurrent Neural Networks ». 21 mai 2015. Des RNN au niveau du caractère générant du Shakespeare, du LaTeX, du code source Linux et du balisage Wikipédia ; code char-rnn publié sur GitHub. 

  5. Andrej Karpathy, « The hottest new programming language is English ». X, 24 janvier 2023. Prolongé dans sa conférence de 2025 « Software Is Changing (Again) » / Software 3.0. 

  6. Andrej Karpathy, « Neural Networks: Zero to Hero ». Série de cours construisant des réseaux de neurones de zéro, à partir de micrograd. Dépôt : nn-zero-to-hero. micrograd (~100 lignes, sous licence MIT) : karpathy/micrograd. 

  7. Andrej Karpathy, « build-nanogpt ». « Video+code lecture on building nanoGPT from scratch » — reproduit GPT-2 (124M) à partir d’un fichier vide avec des commits git propres, étape par étape, que l’on peut parcourir. Distillé à partir du dépôt de qualité production : nanoGPT, « the simplest, fastest repository for training/finetuning medium-sized GPTs ». 

  8. Andrej Karpathy, « There’s a new kind of coding I call ‘vibe coding’… ». X, 2 février 2025. Plus tard décrit comme un « throwaway tweet ». 

Articles connexes

Philosophie d'ingénierie : Geoffrey Hinton, la conviction contre la mode

Geoffrey Hinton a misé sur des réseaux de neurones inspirés du cerveau à travers deux hivers de l'IA, alors que le domai…

19 min de lecture

Philosophie de l'ingénierie : Raj Reddy, la technologie pour le milliard d'en bas

Raj Reddy a inventé les machines auxquelles on parle -- la reconnaissance vocale, le modèle du tableau noir -- puis il a…

24 min de lecture

The Shader Gallery That Lied: Debugging 216 WebGL Presets

A user said the shader playground looked broken. Pixel-readback testing found 30 dead presets, 11 that never compiled, a…

11 min de lecture