← Wszystkie wpisy

Filozofia inżynierii: Andrej Karpathy, czyli stos, którego się nie pisze

Andrej Karpathy, badacz i nauczyciel w dziedzinie AI

Najważniejsze wnioski

  • Software 2.0 to nowe ujęcie Karpathy’ego: sieć neuronowa jest programem skompilowanym z danych, a nie napisanym ręcznie. Zbiór danych jest kodem źródłowym; trening jest kompilatorem.
  • Prawo do takiego twierdzenia zdobywa, budując każdą warstwę od zera — micrograd, char-rnn, nanoGPT — bo nie sposób ufać stosowi, którego samemu nie da się odtworzyć.
  • Nauczanie traktuje jako rzemiosło: czytelne demo i schludne repozytorium to sposób, w jaki debuguje własne zrozumienie, a nie w jaki je sprzedaje.
  • Dyscypliną, która spaja to wszystko, jest zasada budowania od zera — zaimplementuj propagację wsteczną raz, własnoręcznie, a awaria prawdziwego modelu stanie się czymś, co rozumiesz, zamiast czymś, czego się domyślasz.

Zasada

„Sieci neuronowe to nie kolejny klasyfikator, lecz początek fundamentalnej zmiany w tym, jak tworzymy oprogramowanie. To Software 2.0.” — Andrej Karpathy1

Większość inżynierów w 2017 roku traktowała sieci neuronowe jako jeszcze jedno narzędzie w skrzynce — klasyfikator, po który sięgało się, gdy regresja logistyczna już nie wystarczała. Karpathy przekonywał, że są one czymś zupełnie innym: nowym paradygmatem programowania. W Software 1.0 człowiek pisze jawne instrukcje w Python lub C++. W Software 2.0 człowiek pisze zgrubny szkielet — architekturę sieci — i kuratoruje zbiór danych, a „proces trenowania sieci neuronowej kompiluje zbiór danych do postaci binarnej.”1 Żaden człowiek nie pisze wag. Program się hoduje, a nie pisze.

Jedno przeformułowanie reorganizuje wszystko, co dalej. Jeśli model jest programem, to zbiór danych staje się kodem źródłowym, krzywa straty staje się błędem kompilatora, a zadanie inżyniera przesuwa się od pisania logiki do kształtowania warunków, w jakich logika się wyłania. Ta sama zmiana sprawia, że to kontekst, a nie kod, jest prawdziwą architekturą współczesnego systemu AI: nie instruujesz zachowania, lecz budujesz podłoże, w którym się ono kształtuje. A pod całym nauczaniem Karpathy’ego płynie jedno przekonanie — nie sposób ufać stosowi, którego samemu nie da się zbudować. Zbudował więc każdą warstwę od zera, na oczach wszystkich, znak po znaku propagacji wstecznej.

Kontekst

Andrej Karpathy urodził się w Bratysławie na Słowacji w 1986 roku, a w wieku piętnastu lat przeprowadził się z rodziną do Toronto. Studiował informatykę i fizykę na Uniwersytecie w Toronto, gdzie — jako student studiów licencjackich — uczęszczał na zajęcia i seminaria Geoffreya Hintona, chłonąc ewangelię sieci neuronowych na lata przed tym, nim stała się ortodoksją. Po studiach magisterskich na University of British Columbia trafił na Stanford, gdzie pod kierunkiem Fei-Fei Li w Stanford Vision Lab obronił doktorat w 2015 roku. Jego praca doktorska sytuowała się na styku widzenia komputerowego i języka naturalnego — uczył maszyny opisywać obrazy — dokładnie na tym szwie, który następna dekada miała rozedrzeć.2

Na Stanfordzie zaprojektował i prowadził CS231n, pierwszy na uczelni kurs uczenia głębokiego, który z 150 studentów w 2015 roku urósł do 750 w roku 2017.3 Był członkiem założycielem OpenAI w 2015 roku. W 2017 roku został dyrektorem ds. AI w Tesli, podlegając bezpośrednio Elonowi Muskowi, gdzie kierował stosem widzenia Autopilota. Wrócił do OpenAI w 2023 roku, odszedł w 2024, by założyć firmę edukacyjną z zakresu AI — Eureka Labs — a w 2026 dołączył do zespołu pretreningu w Anthropic.2 Wątkiem przewodnim wszystkich tych ruchów nie jest pracodawca. Jest nim upór, by zrozumieć maszynę do samego dna, a potem pokazać to wszystkim pozostałym.

Dzieło

„The Unreasonable Effectiveness of Recurrent Neural Networks” (2015): demo jako argument

Diagram char-rnn Karpathy'ego: sieć odczytuje znaki „h, e, l, l" przez warstwę wejściową, ukrytą i wyjściową i uczy się przewidywać kolejny znak na każdym kroku — „e, l, l, o"

W maju 2015 roku Karpathy opublikował wpis na blogu, który stał się wiralem w dziedzinie, która jeszcze nie miała wiralowych wpisów na blogach. Wytrenował znakowe rekurencyjne sieci neuronowe — char-rnn — na surowym tekście i pozwolił im generować po jednym znaku naraz. Modele nauczyły się tworzyć Szekspira, matematykę w LaTeX-u, która niemal się kompilowała, kod C jądra Linuksa oraz znaczniki Wikipedii, choć nigdy nie powiedziano im, czym którakolwiek z tych rzeczy jest.4

Wpis był argumentem przebranym za demo. Sprawiając, że mały model robił coś zaskakującego i czytelnego — można było obserwować, jak bełkot powoli krzepnie w składnię — Karpathy udowodnił, że modele sekwencyjne wchłonęły głęboką strukturę z samych danych. Towarzyszący kod char-rnn na GitHub liczył się równie mocno, co sama proza. Lekcja, która miała zdefiniować jego karierę, była już obecna: najmocniejszym argumentem za ideą jest jej najmniejsza działająca wersja, z dołączonym kodem.

Software 2.0 (2017): przeformułowanie

Esej z 2017 roku jest zwornikiem. Karpathy twierdził, że dla rosnącej klasy problemów — widzenie, mowa, tłumaczenie — łatwiej jest zebrać dane i wytrenować sieć, niż napisać program ręcznie, a wytrenowana sieć jest często lepsza. Software 2.0 jest „napisany w znacznie bardziej abstrakcyjnym, nieprzyjaznym dla człowieka języku, takim jak wagi sieci neuronowej”, przy czym „żaden człowiek nie bierze udziału w pisaniu tego kodu.”1

Prawdziwy wkład eseju był kulturowy, nie tylko techniczny. Jeśli sieci neuronowe są paradygmatem programowania, to zespoły potrzebują kontroli wersji dla zbiorów danych, debuggerów dla aktywacji oraz dyscypliny wobec trybów awarii, jakiej stary stos nigdy nie miał. Niemal dekadę później Karpathy rozszerzył to ujęcie o Software 3.0: duże modele językowe, które programuje się zwykłą angielszczyzną, dlatego właśnie mógł nazwać angielski „najgorętszym nowym językiem programowania.”5 Agent nie zmądrzał — zmądrzało podłoże, a inżynieria za każdym razem przesuwała się o warstwę wyżej.

Tesla Autopilot (2017–2022): Software 2.0 w produkcji

Stos widzenia Autopilota Tesli: surowe obrazy z kamer (u góry) zrekonstruowane do „przestrzeni wektorowej" z lotu ptaka, przedstawiającej krawędzie drogi i geometrię pasów (na dole) — Software 2.0 działający w jadącym samochodzie

Jako dyrektor ds. AI w Tesli Karpathy prowadził Software 2.0 tam, gdzie stawka była najwyższa: w samochodzie jadącym z prędkością. System widzenia Autopilota był flotą sieci neuronowych przetwarzających obrazy z kamer, a centralny problem jego zespołu był tym, który esej przewidział — gdy program jest zbiorem danych, ulepszanie programu oznacza ulepszanie danych. Tesla zbudowała silniki danych: potoki, które przeczesywały flotę w poszukiwaniu rzadkich, trudnych przypadków (ciężarówka wioząca pachołki drogowe, jeleń o zmierzchu), oznaczały je, ponownie trenowały i wdrażały na nowo. Baza kodu kurczyła się, w miarę jak ręcznie pisane heurystyki były usuwane i wchłaniane do sieci. Karpathy opisywał to wprost jako kod Software 1.0 „zjadany” przez stos 2.0 — najwyraźniejsze produkcyjne potwierdzenie jego tezy.2

nanoGPT, micrograd i „Neural Networks: Zero to Hero” (od 2022): od zera, rozpisane krok po kroku

Baner nanoGPT — żart Karpathy'ego o dostępnych implementacjach GPT: ciężkie warianty skreślone na rzecz małej, czytelnej „motorówki"

Po Tesli Karpathy zwrócił się na pełen etat ku pracy, która może przetrwać to wszystko: uczeniu ludzi, jak samodzielnie budować ten stos. Jego seria wykładów „Neural Networks: Zero to Hero” zaczyna się od micrograd — kompletnego silnika automatycznego różniczkowania i biblioteki sieci neuronowych w około 100 wierszach Python — i buduje dalej, wideo po wideo, aż po działający GPT.6 Zwieńczający wykład „Let’s build GPT: from scratch, in code, spelled out” odtwarza architekturę Transformera z pracy „Attention Is All You Need”, napisaną na żywo. Towarzyszące repozytorium build-nanogpt odtwarza następnie GPT-2 (124M) od pustego pliku, z historią gita utrzymaną na tyle czysto, że da się ją przejść commit po commicie — działająca motorówka wydestylowana z produkcyjnej klasy nanoGPT.7

Dydaktyka jest filozofią. Nie ma importu biblioteki, który ukrywałby gradient. Implementujesz propagację wsteczną własnoręcznie, by gdy prawdziwy model zacznie się dziwnie zachowywać, wiedzieć — a nie wierzyć — co dzieje się w jego wnętrzu. micrograd to cały stos w 100 wierszach: bez PyTorcha, bez magii, każde mnożenie widoczne.

Metoda

Najpierw zasady pierwsze, potem frameworki. Karpathy nie pozwala, by abstrakcja się ostała, dopóki nie zbuduje rzeczy, która pod nią leży. micrograd istnieje po to, by autograd z PyTorcha nigdy nie był czarną skrzynką. Zbudowanie warstwy leżącej poniżej to inżynierski odpowiednik odmowy cytowania źródła, którego się nie przeczytało.

Buduj najmniejszą działającą wersję. char-rnn, micrograd, nanoGPT, a także nowszy nanochat — wszystkie są celowo malutkie: na tyle małe, by zmieścić całość w głowie, na tyle kompletne, by faktycznie działać. Małość jest sednem: stuwierszowa biblioteka uczy tego, co zaciemnia biblioteka o stu tysiącach wierszy.

Ucz się publicznie. Niemal wszystko, co Karpathy rozumie, publikuje — jako wpis na blogu, wykład, schludne repozytorium, rzucony mimochodem tweet, który nazywa zjawisko („vibe coding”), jakie reszta dziedziny przeczuwała, lecz nie potrafiła wyartykułować.8 Nauczanie wymusza klarowność; nie da się rozpisać propagacji wstecznej na tablicy, będąc wciąż co do niej zagubionym.

Klarowność jako narzędzie myślenia. Czytelność jego dem — obserwowanie, jak RNN uczy się składni znak po znaku — to nie popisywanie się. To sposób, w jaki debuguje własne zrozumienie. Jeśli nie potrafi czegoś uczynić widocznym, znaczy, że jeszcze tego nie rozumie.

Łańcuch wpływów

Kto go ukształtował

Geoffrey Hinton zapalił lont. Karpathy zetknął się z propagacją wsteczną i sieciami neuronowymi w orbicie Hintona w Toronto, dokładnie w chwili — tuż przed wynikiem ImageNet z 2012 roku — gdy dziedzina przechyliła się z niszy ku dominacji. Przekonanie, że sieci neuronowe nie są niszowym narzędziem, lecz przyszłością informatyki, należy do Hintona i zostało poniesione dalej.

Fei-Fei Li ukształtowała rzemieślnika. Jako promotorka jego doktoratu i architektka ImageNetu wpoiła Karpathy’emu dyscyplinę traktowania danych jako centralnego obiektu — zbioru danych jako tego, co przesądza o tym, czym model może się stać. Software 2.0 jest, w bardzo realnym sensie, doktryną laboratorium widzenia skoncentrowanego na danych, rozpisaną jako teoria całego oprogramowania.

Kogo ukształtował on

Całe pokolenie inżynierów ML. CS231n był przez lata sposobem, w jaki pracujący inżynierowie uczyli się uczenia głębokiego; jego notatki wciąż cytuje się niczym podręcznik. „Neural Networks: Zero to Hero” oraz nanoGPT stały się następnie kanoniczną ścieżką do Transformerów budowanych od zera — drogą, którą tysiące praktyków przeszło od „korzystam z API” do „rozumiem tę architekturę”. Niewielu ludzi osobiście wprowadziło do zawodu większą część dzisiejszej kadry AI.

Wątek przewodni

John Carmack poddawał inżynierii wstecznej sprzęt graficzny i odbudowywał potok renderowania od zera, bo nie zamierzał wydawać produktu na warstwie, której nie rozumiał. Karpathy implementuje propagację wsteczną własnoręcznie z tego samego powodu. Obaj traktują budowanie tego samodzielnie nie jako ćwiczenie z tutorialu, lecz jako jedyną uczciwą drogę do mistrzostwa — przekonanie, że nie zna się systemu naprawdę, dopóki nie napisze się jego najmniejszej kompletnej wersji. Ten sam instynkt przewija się przez Linusa Torvaldsa i jego odmowę ufania temu, czego nie da się samemu skontrolować. (Pomost serii)

Co z tego biorę dla siebie

Dyscypliną, do której nieustannie wracam, jest odmowa Karpathy’ego, by działać na warstwie, której choć raz samemu nie zbudował. Komponując agentów, łatwo ulec pokusie traktowania modelu jako wyroczni, a frameworku jako objawienia. Jego przykład mówi: najpierw zbuduj samodzielnie najmniejszą wersję — zrozum, dlaczego agent powinien wywoływać model bezpośrednio, zanim sięgniesz po bibliotekę orkiestracyjną. Ujęcie Software 2.0/3.0 na nowo definiuje też całą pracę: w systemie agentowym nie piszesz zachowania, lecz kształtujesz warunki — kontekst, dane, prompty — w których zachowanie się wyłania, co stanowi wątek przewodni wszystkiego, od RAG po agentów. Pełna mapa znajduje się w centrum inżynierii AI oraz w przewodniku po architekturze agentów.

FAQ

Czym jest „Software 2.0” Andreja Karpathy’ego?

Software 2.0 to termin Karpathy’ego z eseju z 2017 roku oznaczający programy zapisane jako wagi sieci neuronowej, a nie jako jawne, napisane przez człowieka instrukcje. W Software 1.0 programista pisze logikę; w Software 2.0 programista określa cel i architekturę, kuratoruje zbiór danych, a „proces trenowania sieci neuronowej kompiluje zbiór danych do postaci binarnej”. Zbiór danych staje się kodem źródłowym, a trening — kompilacją.1

Czym Andrej Karpathy zajmował się w Tesli?

W latach 2017–2022 Karpathy był dyrektorem ds. AI w Tesli, kierując stosem widzenia opartym na sieciach neuronowych, stojącym za Autopilotem. Jego zespół zbudował „silniki danych”, które przeczesywały flotę pojazdów w poszukiwaniu rzadkich, trudnych scenariuszy drogowych, ponownie je oznaczały i trenowały na nich, stopniowo zastępując ręcznie pisane heurystyki jazdy wyuczonymi sieciami — produkcyjna demonstracja jego tezy o Software 2.0.2

Czym jest „Neural Networks: Zero to Hero”?

To darmowa seria wykładów wideo Karpathy’ego, która uczy uczenia głębokiego, budując je od zera w Python. Zaczyna się od micrograd — silnika automatycznego różniczkowania liczącego ~100 wierszy — i prowadzi przez modele językowe aż po GPT budowany od zera, wraz z wykładem „Let’s build GPT: from scratch, in code, spelled out”. Towarzyszące repozytorium build-nanogpt odtwarza GPT-2 (124M), zaczynając od pustego pliku, jeden commit gita naraz.67

Czy to Andrej Karpathy ukuł termin „vibe coding”?

Tak. W lutym 2025 roku, we wpisie na platformie X, Karpathy opisał „nowy rodzaj kodowania, który nazywam »vibe codingiem«, w którym całkowicie poddajesz się klimatowi, przyjmujesz wykładnicze tempo i zapominasz, że kod w ogóle istnieje”, umożliwiony przez narzędzia do kodowania oparte na LLM, które stały się na tyle dobre, by budować oprogramowanie w drodze rozmowy. Później nazwał ten wpis „rzuconym mimochodem tweetem”; termin mimo to wszedł do słownika branży.8


Źródła


  1. Andrej Karpathy, “Software 2.0.” Medium, 11 listopada 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.” Wikipedia. Urodzony w Bratysławie w 1986; Toronto, UBC, doktorat na Stanfordzie pod kierunkiem Fei-Fei Li (2015); członek założyciel OpenAI; dyrektor ds. AI w Tesli (2017–2022); powrót do OpenAI (2023); Eureka Labs (2024); pretrening w Anthropic (2026). 

  3. Andrej Karpathy, strona osobista / biografia. CS231n: pierwszy na Stanfordzie kurs uczenia głębokiego, zaprojektowany i prowadzony głównie przez Karpathy’ego; liczba zapisanych studentów wzrosła ze 150 (2015) do 750 (2017). Kurs: CS231n. 

  4. Andrej Karpathy, “The Unreasonable Effectiveness of Recurrent Neural Networks.” 21 maja 2015. Znakowe sieci RNN generujące Szekspira, LaTeX, kod źródłowy Linuksa i znaczniki Wikipedii; kod char-rnn udostępniony na GitHub. 

  5. Andrej Karpathy, “The hottest new programming language is English.” X, 24 stycznia 2023. Rozwinięte w jego prelekcji z 2025 roku “Software Is Changing (Again)” / Software 3.0. 

  6. Andrej Karpathy, “Neural Networks: Zero to Hero.” Seria wykładów budujących sieci neuronowe od zera, zaczynając od micrograd. Repozytorium: nn-zero-to-hero. micrograd (~100 wierszy, na licencji MIT): karpathy/micrograd. 

  7. Andrej Karpathy, “build-nanogpt.” „Video+code lecture on building nanoGPT from scratch” — odtwarza GPT-2 (124M) od pustego pliku, z czystymi, krok-po-kroku commitami gita, które można przejść. Wydestylowane z repozytorium produkcyjnej klasy: 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 lutego 2025. Później opisane jako “rzucony mimochodem tweet.” 

Powiązane artykuły

Filozofia inżynierska: Geoffrey Hinton, przekonanie ponad modę

Geoffrey Hinton postawił na sieci neuronowe wzorowane na mózgu przez dwie zimy AI, gdy dziedzina je wyśmiewała — przekon…

15 min czytania

Filozofia inżynierska: Raj Reddy, technologia dla najuboższego miliarda

Raj Reddy był pionierem maszyn, z którymi można rozmawiać -- rozpoznawania mowy, modelu tablicowego -- a następnie skier…

18 min czytania

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 czytania