Piotr Bąk Generalista AI
W świecie technologii oprogramowania następuje fundamentalna zmiana, którą Andrej Karpathy, były dyrektor AI w Tesli, opisuje jako ewolucję nie widzianą na taką skalę od 70 lat. W ciągu zaledwie kilku ostatnich lat byliśmy świadkami dwóch szybkich transformacji, które na nowo zdefiniowały sposób, w jaki tworzymy i rozumiemy oprogramowanie. Karpathy wyróżnia trzy kluczowe paradygmaty, które kształtują naszą cyfrową rzeczywistość: od tradycyjnego Software 1.0, czyli kodu bezpośrednio pisanego przez ludzkich programistów w językach takich jak C++, przez oparty na sieciach neuronowych Software 2.0, gdzie programista dostraja zbiory danych, aby stworzyć parametry sieci neuronowej, aż po rewolucyjny Software 3.0, gdzie programowanie odbywa się poprzez komunikację w języku naturalnym z dużymi modelami językowymi (LLM). Ta zmiana nie tylko otwiera drzwi dla zupełnie nowych aplikacji, ale także oznacza, że język angielski staje się nowym, potężnym językiem programowania. Jest to niezwykle unikalny i interesujący czas, aby wejść do branży, a bycie biegłym we wszystkich tych paradygmatach jest kluczowe.
Na oficjalnym kanale YouTube Y Combinator pojawił się baaardzo ciekawy materiał w którym Andrej Karpathy omawia temat ewolucji tworzenia oprogramowania. A, że jesteśmy w erze AI to, także oprogramowanie się zmienia, ewoluuje do wersji 3.0. Warto posłuchać. Poniżej znajdziesz też skrót materiału.
San Francisco, Kalifornia – W San Francisco, na Y Combinator AI Startup School, atmosfera była naelektryzowana. Andrej Karpathy, były Dyrektor AI w Tesli, wszedł na scenę, by wygłosić prelekcję o "Oprogramowaniu w Erze AI". To nie był jednak kolejny techniczny wykład. Karpathy, znany ze swoich przenikliwych obserwacji i zdolności do destylowania złożonych idei, rozpoczął narrację, która redefiniuje samą esencję tworzenia oprogramowania – i dlaczego, dla dzisiejszych aspirujących twórców i inżynierów, jest to "niezwykle wyjątkowy i bardzo interesujący czas" na wejście do branży.
"Oprogramowanie się zmienia" – oznajmił Karpathy z lekkim uśmiechem – "znowu." Wskazał, że choć fundamentalna natura oprogramowania nie zmieniła się znacząco przez 70 lat, to ostatnie kilka lat przyniosło dwie sejsmiczne zmiany. To nie jest tylko ewolucja; to rewolucja, wymagająca świeżego spojrzenia od każdego, kto zamierza budować w tym nowym krajobrazie.
Karpathy rozpoczął od nakreślenia znanego terenu:
Oprogramowanie 1.0: To klasyczna era kodu komputerowego. Pomyśl o rozległej "Mapie GitHuba", rozległym cyfrowym kontynencie repozytoriów, gdzie każda linia to instrukcja napisana przez człowieka dla maszyny. W tej erze większość z nas uczyła się budować, starannie tworząc logikę i algorytmy.
Oprogramowanie 2.0: Era sieci neuronowych. Tutaj ludzie nie pisali już jawnego kodu; zamiast tego, kuratorowali dane, uruchamiali optymalizatory i pozwalali maszynie nauczyć się własnych parametrów (wag). "Hugging Face Model Atlas", żywa, wzajemnie połączona sieć wag sieci neuronowych, jest świadectwem tej zmiany. Choć potężne, te modele były nadal "funkcjami stałymi" – szkolonymi do konkretnego zadania, jak rozpoznawanie obrazów.
Prawdziwym, oszałamiającym skokiem, zdaniem Karpathy'ego, jest pojawienie się:
Oprogramowania 3.0: Wielkich Modeli Językowych (LLM), które są programowalnymi sieciami neuronowymi. "Programy" dla tych nowych "komputerów" nie są pisane w Pythonie czy C++; są pisane w... języku angielskim. Karpathy słynnie napisał na Twitterze w styczniu 2023 roku: "Najgorętszym nowym językiem programowania jest angielski." To z pozoru proste stwierdzenie zawiera w sobie głęboką zmianę paradygmatu: teraz każdy, kto potrafi jasno sformułować problem w języku naturalnym, może "zaprogramować" te potężne, nowe maszyny.
Zilustrował to przykładem klasyfikacji sentymentu:
1.0: Funkcja w Pythonie z sztywno zakodowanymi słowami kluczowymi pozytywnymi/negatywnymi.
2.0: Klasyfikator binarny, trenowany na tysiącach pozytywnych i negatywnych przykładów.
3.0: Kilka promptów (tzw. few-shot prompt) dla LLM-a, po prostu instruując go, aby klasyfikował recenzje między tagami.
Implikacje są oszałamiające. Już nie tylko piszemy kod; piszemy instrukcje w naszym ojczystym języku, przekształcając LLM-y w potężne, wszechstronne narzędzia.
Karpathy następnie zbadał wieloaspektową naturę LLM-ów, kreśląc trafne (i często zabawne) analogie:
Właściwości Usług Użyteczności Publicznej: Budowa LLM-a (trening) jest jak budowa sieci energetycznej (ogromne nakłady kapitałowe – CAPEX). Dostarczanie inteligencji poprzez API jest jak dystrybucja energii elektrycznej (koszty operacyjne – OPEX, dostęp mierzony). Zapotrzebowanie na niskie opóźnienia, wysoką dostępność i stałą jakość odzwierciedla nasze wymagania wobec sieci energetycznej. "Inteligencja blackoutów" występuje, gdy usługi takie jak OpenAI przestają działać, sprawiając, że "planeta po prostu staje się głupsza". OpenRouter, umożliwiający przełączanie się między dostawcami LLM-ów, jest jak przełącznik zasilania, pozwalający na wybór między siecią, energią słoneczną czy baterią.
Właściwości Fabryk (Półprzewodników): Nakłady kapitałowe na budowę najnowocześniejszych LLM-ów (masywne klastry GPU, 4nm procesy technologiczne) są ogromne, podobne do tych w fabrykach półprzewodników. Głębokie prace badawczo-rozwojowe i zastrzeżone tajemnice posiadane przez laboratoria LLM-ów dodatkowo cementują tę analogię. Trenowanie na GPU NVIDIA jest "bezfabryczne" (używanie infrastruktury innej firmy), podczas gdy Google trenujące na własnych TPU jest jak Intel posiadający własne fabryki. Jednakże plastyczność oprogramowania sprawia, że jest ono mniej obronne niż fizyczne fabryki.
Właściwości Systemów Operacyjnych (około lat 60. XX wieku): LLM-y są coraz bardziej złożonymi ekosystemami oprogramowania. Są oprogramowaniem, które można łatwo kopiować i rozpowszechniać, w przeciwieństwie do infrastruktury fizycznej. Karpathy zilustrował to, rysując schemat "LLM OS": LLM jako CPU, okna kontekstu jako RAM, interakcja z narzędziami Software 1.0 (kalkulatory, interpretery Pythona) oraz peryferyjnymi urządzeniami I/O (wideo, audio, przeglądarki). Z humorem zauważył, że obecne tekstowe interfejsy czatu są jak stary terminal, sugerując, że graficzny interfejs użytkownika (GUI) dla LLM-ów "nie został jeszcze wynaleziony". Implikacja: ogromna ilość oprogramowania i narzędzi zostanie zbudowana na tych "systemach operacyjnych" LLM.
To prowadzi również do zmiany paradygmatu w samym obliczeniach. Obecnie znajdujemy się w erze mainframe'ów/współdzielenia czasu dla LLM-ów, gdzie moc obliczeniowa jest droga i scentralizowana w chmurze. Wszyscy jesteśmy "cienkimi klientami" komunikującymi się przez sieć. Marzenie o "Personal Computing v2" (uruchamianiu LLM-ów lokalnie na sprzęcie konsumenckim, np. na stosie Maców Mini) dopiero zaczyna się pojawiać.
Być może najbardziej fascynujący fragment wykładu Karpathy'ego dotyczył wyłaniającej się "psychologii" LLM-ów:
"Duchy Ludzi": LLM-y to stochastyczne symulacje ludzi, autoregresywne transformatory działające jako symulatory generowania ludzkiego tekstu.
Supermoce: Posiadają encyklopedyczną wiedzę i pamięć, jak postać Dustina Hoffmana w "Rain Manie", zapamiętując ogromne ilości informacji niemożliwe do zapamiętania dla człowieka.
Deficyty Poznawcze: Cierpią na "halucynacje" (wymyślanie rzeczy), wykazują "poszarpaną inteligencję" (nadludzką w niektórych obszarach, a w innych popełniają podstawowe błędy) i doświadczają "amnezji następczej" (ich okna kontekstu są jak pamięć robocza, wymazywana każdego ranka bez odpowiednika "snu" do konsolidacji wiedzy długoterminowej). Mogą być też zaskakująco "naiwne", podatne na "iniekcje promptów".
Ta unikalna mieszanka nadludzkich zdolności i dziwnych wad wymaga nowego podejścia do programowania i interakcji.
Karpathy podkreślił, że nie chodzi tu tylko o zrozumienie; chodzi o budowanie. Przedstawił kluczowe możliwości:
Aplikacje z częściową autonomią: Oprogramowanie staje się częściowo autonomiczne, co wymaga przemyślenia interfejsu użytkownika (UI) i doświadczenia użytkownika (UX).
Pakowanie kontekstu: Aplikacje muszą inteligentnie pakować odpowiednie informacje do okna kontekstu LLM-a.
Orkiestracja: Aplikacje LLM będą orkiestrować wiele modeli (modele osadzeń, modele czatu, modele różnicujące i stosujące zmiany).
Niestandardowe GUI: Bezpośredni czat tekstowy z LLM-em jest jak używanie terminala. Potrzebujemy specyficznych dla aplikacji GUI, które pozwalają ludziom audytować pracę LLM-a wizualnie, a nie tylko czytać tekst.
Suwak Autonomii: Ta błyskotliwa koncepcja sugeruje, że użytkownicy powinni mieć możliwość zwiększania lub zmniejszania autonomii LLM-a w zależności od złożoności zadania i ich komfortu (np. od prostego uzupełniania kodu po tryb pełnego agenta). Jest to kluczowe dla zarządzania "poszarpaną inteligencją" LLM-a i utrzymywania go "na krótkiej smyczy".
Ułatwianie dostępu do oprogramowania ("Vibe Coding"): Fakt, że LLM-y mogą być programowane w języku naturalnym, otwiera wrota dla nowych twórców. Karpathy przedstawił "vibe coding" – podejście, w którym "całkowicie oddajesz się wibracjom, akceptujesz wykładnicze zmiany i zapominasz, że kod w ogóle istnieje". Sam zbudował podstawową aplikację iOS i generator menu (MenuGen) z minimalnym tradycyjnym kodowaniem, w dużej mierze tylko "widząc rzeczy, mówiąc rzeczy, uruchamiając rzeczy i kopiując/wklejając rzeczy". Prawdziwymi wyzwaniami nie był kod, ale tradycyjne aspekty dev ops: klucze API, wdrożenia, nazwy domen, uwierzytelnianie i płatności. To sygnalizuje przyszłość, w której rozwój oprogramowania jest znacznie bardziej zdemokratyzowany.
Budowanie dla Agentów: Poza ludźmi, wyłania się nowa kategoria "konsumentów" i "manipulatorów" informacji cyfrowych: agenci. Są to "komputery... ale ludzkie w zachowaniu", które muszą współdziałać z naszą istniejącą infrastrukturą oprogramowania.
Dokumentacja Przyjazna Agentom: Tak jak robots.txt prowadzi roboty indeksujące, potrzebujemy llms.txt – plików markdown na stronach internetowych zaprojektowanych specjalnie dla LLM-ów, aby zrozumiały domenę i jej funkcje. Vercel i Stripe są pionierami w tym zakresie.
Akcje dla LLM-ów: Zamiast kazać LLM-om "kliknij tutaj", musimy przedstawiać akcje jako komendy odczytywalne maszynowo (np. "kliknij" -> cURL). Powstają protokoły takie jak Stripe's Model Context Protocol (MCP), aby umożliwić bezpośrednią komunikację agent-agent.
Konstruktory Kontekstu: Narzędzia takie jak GitIngest i Devin DeepWiki tworzą sposoby na pobieranie ogromnych ilości danych zorientowanych na ludzi (takich jak repozytoria GitHub) i przekształcanie ich w ustrukturyzowane, przyjazne dla LLM-ów formaty, umożliwiając agentom zrozumienie złożonych baz kodu.
Karpathy podsumował potężną metaforą: kombinezon Iron Mana. Jest to zarówno rozszerzenie (Tony Stark noszący kombinezon, zwiększający swoje zdolności), jak i agent (kombinezon działający autonomicznie). Na następną dekadę przewiduje, że w oprogramowaniu będziemy przesuwać się od augmentacji w stronę zwiększonej autonomii agentów. Nie chodzi tu o budowanie science fiction "robotów Iron Mana" czy ściganie się z "AGI 2027" (co zbywa jako nierealistyczne cele krótkoterminowe). Chodzi o budowanie garniturów Iron Mana – produktów z częściową autonomią z niestandardowymi interfejsami GUI i UI/UX, wykorzystujących szybkie pętle generowania i weryfikacji oraz stale dostosowujących suwak autonomii.
"Cóż za niesamowity czas, aby wejść do branży!" – wykrzyknął Karpathy. "Musimy przepisać tonę kodu... Te LLM-y są trochę jak usługi użyteczności publicznej, trochę jak fabryki, ale przede wszystkim są jak systemy operacyjne... I jest tak wcześnie... To jak lata 60. systemów operacyjnych... Będzie bardzo interesujące zobaczyć, jak to będzie wyglądać, i nie mogę się doczekać, aby budować to wszystko razem z wami."
Przyszłość oprogramowania jest redefiniowana i tworzona przez tych, którzy przyjmują te nowe paradygmaty, rozumieją unikalną "psychologię" LLM-ów i są gotowi tworzyć narzędzia, które wzmocnią zarówno ludzi, jak i inteligentne agenty.
🔸 Software zmienia się fundamentalnie (ponownie). Karpathy twierdzi, że oprogramowanie nie zmieniało się na tak fundamentalnym poziomie przez około 70 lat, a w ostatnich kilku latach nastąpiły już dwie szybkie zmiany. Jest to "niezwykle unikalny i bardzo interesujący czas, aby wejść do branży
🔸 Software 2.0 "pożera" Software 1.0, a Software 3.0 "pożera" resztę. Karpathy zaobserwował w Tesli, że w miarę ulepszania autopilota, "kod C++ (Software 1.0) był usuwany", a funkcjonalność migrowana do Software 2.0, tak że "stos Software 2.0 dosłownie przeżarł stos oprogramowania autopilota". Widzi tę samą tendencję, w której nowy rodzaj oprogramowania "przeżera" obecny stos
🔸 Biegłość we wszystkich trzech paradygmatach jest kluczowa. Karpathy podkreśla, że "jeśli wchodzisz do branży, to bardzo dobrym pomysłem jest być biegłym we wszystkich [trzech paradygmatach].
🔸 Jesteśmy w erze "komputerów z lat 60-tych" w kontekście LLM. Obliczenia LLM są wciąż "bardzo drogie", co zmusza do ich centralizacji w chmurze, a użytkownicy są "klientami terminalowymi" korzystającymi z "timesharingu". Karpathy uważa, że "rewolucja komputerów osobistych jeszcze się nie wydarzyła", jeśli chodzi o LLM.
🔸 LLM odwracają kierunek dyfuzji technologii. Zazwyczaj to rządy i korporacje są pierwszymi użytkownikami nowych, kosztownych technologii (np. komputery dla balistyki), a dopiero później trafiają one do konsumentów. W przypadku LLM "jest to odwrócone", gdzie pierwszymi użytkownikami są konsumenci (np. "jak ugotować jajko"), a "korporacje i rządy pozostają w tyle".
🔸 Jesteśmy w erze "komputerów z lat 60-tych" w kontekście LLM. Obliczenia LLM są wciąż "bardzo drogie", co zmusza do ich centralizacji w chmurze, a użytkownicy są "klientami terminalowymi" korzystającymi z "timesharingu". Karpathy uważa, że "rewolucja komputerów osobistych jeszcze się nie wydarzyła", jeśli chodzi o LLM .
🔸 LLM odwracają kierunek dyfuzji technologii. Zazwyczaj to rządy i korporacje są pierwszymi użytkownikami nowych, kosztownych technologii (np. komputery dla balistyki), a dopiero później trafiają one do konsumentów. W przypadku LLM "jest to odwrócone", gdzie pierwszymi użytkownikami są konsumenci (np. "jak ugotować jajko"), a "korporacje i rządy pozostają w tyle".
🔸 LLM to "stochastyczne symulacje ludzi" z supermocami i deficytami poznawczymi. Mają "encyklopedyczną wiedzę i pamięć" (jak Rain Man), ale także "halucynują dość często", mają "poszarpaną inteligencję" (mogą być nadludzkie w jednych dziedzinach, a popełniać proste błędy w innych) oraz "cierpią na amnezję następczą" (nie uczą się ani nie konsolidują wiedzy po zakończeniu sesji, ich "okna kontekstowe to pamięć robocza"). Są również "całkiem łatwowierne" i podatne na ataki "prompt injection"
🔸 Przyszłość to "aplikacje z częściową autonomią" i "suwaki autonomii". Zamiast bezpośrednio rozmawiać z LLM (jak z systemem operacyjnym przez terminal), powinniśmy budować dedykowane aplikacje (np. Cursor, Perplexity). Te aplikacje powinny mieć "tradycyjny interfejs, który pozwala człowiekowi wykonać całą pracę ręcznie", ale także "integrację z LLM, która pozwala działać w większych fragmentach". Kluczowe cechy takich aplikacji to zarządzanie kontekstem przez LLM, orkiestrowanie wielu wywołań LLM, specyficzny interfejs graficzny (GUI) do audytowania pracy, oraz "suwak autonomii", który pozwala użytkownikowi kontrolować poziom autonomii oddawanej narzędziu
🔸 Człowiek w pętli i "trzymanie AI na smyczy". W nowym paradygmacie to ludzie są odpowiedzialni za weryfikację pracy generowanej przez AI, a AI za generowanie. Celem jest "sprawienie, aby pętla generowania i weryfikacji przez człowieka była bardzo, bardzo szybka". Interfejsy graficzne są niezwykle ważne do szybkiej weryfikacji, ponieważ wykorzystują "widzenie komputerowe GPU w naszej głowie", co jest łatwiejsze i przyjemniejsze niż czytanie tekstu. Ważne jest, aby "trzymać AI na smyczy", poprzez np. bycie "bardziej konkretnym w promptach", aby zwiększyć prawdopodobieństwo udanej weryfikacji.
🔸 "Wszyscy są teraz programistami", ponieważ programujemy w języku angielskim. To jest "niezwykle optymistyczne i bardzo interesujące" oraz "całkowicie bezprecedensowe". Karpathy wspomina o "vibe codingu" jako sposobie na tworzenie aplikacji bez znajomości tradycyjnych języków programowania
🔸 Potrzeba budowania infrastruktury dla "agentów". Karpathy twierdzi, że "agenci to komputery, ale są ludzkie", i potrzebują interakcji z naszą infrastrukturą oprogramowania. Należy tworzyć "lm.txt" (jak robots.txt dla LLM) oraz dokumentację w formacie markdown, a także zmieniać dokumentację, aby instrukcje typu "kliknij" były zastępowane poleceniami, które agent LLM może wykonać (np. komendami curl). Istnieją narzędzia, które pomagają w "przyjmowaniu danych w formatach bardzo przyjaznych dla LLM".
🔸 Analogie do Iron Mana: budowanie "skombinezonów" zamiast "robotów". Karpathy radzi, aby budować produkty, które są "wzmocnieniem" dla człowieka (jak garnitur Iron Mana, którym Tony Stark może sterować), zamiast całkowicie autonomicznych "robotów". Produkty te powinny mieć "niestandardowe interfejsy graficzne i UI/UX", aby przyspieszyć pętlę generowania i weryfikacji przez człowieka
Projektuje, buduję i zarządzam projektami wykorzystując framework ALA: Automatyzację, Low-Code/No-Code oraz AI, by osiągać maksymalne rezultaty przy minimalnych zasobach.
Piotr Bąk Solo Founder, Generalista AI
Lubię dzielić się swoją wiedzą oraz tym co robię, jak pracuje i co tworzę. Jeśli interesuje Cię no-code development, praca zdalna, własny biznes i lifestyle to zapisz się do mojego newslettera. Od czasu do czasu wyślę Ci ciekawego mejla.
NoCode Mind