jancll.com

Lekce 00 · 5 min čtení

Úvod

Co tady budeme dělat a proč. Spoiler: na konci si postavíš vlastní mini-GPT.

Ahoj! Vypadá to, že ve světě, kde si skoro každý může „navajbit” aplikaci, text, obrázek nebo kus kódu podle momentální nálady, ztrácí programátoři svou výjimečnost. Už nestačí jen umět něco napsat. Čím dál důležitější bude rozumět tomu, co se pod tím vším děje.

Pokud tě zajímá, jak AI funguje pod pokličkou, jsi na správném místě. Třeba se díky tomu jednou dostaneš z role člověka, který AI jen slepě používá, do role někoho, kdo ji umí posouvat dál.

Když jsem studoval (už je to 20 let, uaaaaa) informatiku, ať už v ČR nebo v USA, učitelé nám pořád opakovali jednu věc: důležitější než konkrétní technologie je rozumět principům a abstrakcím. My studenti jsme se mezitím samozřejmě hádali, který jazyk je praktičtější, čistší nebo „lepší“. Jenže pokud jsou všechny Turingovsky úplné, tak je to do určité míry jedno. Programovací jazyk je nástroj. Důležitý, ale pomíjivý. Syntaxe se mění, frameworky stárnou, hype přichází a odchází.

S odstupem času se ukazuje, že měli pravdu. A nejen u programování. V době AI to platí možná víc než kdy dřív: kdo rozumí principům, dokáže se přizpůsobit novým nástrojům.

Následující lekce na tebe nekladou velké nároky. Stačí umět trochu programovat v Pythonu, nebát se kódu a mít chuť pochopit něco nového. Složitější programátorské detaily můžeme vždycky vyřešit s pomocí AI (uaaaa). Tady nám jde hlavně o principy.

A právě na relativně jednoduchých principech, které si postupně rozebereme, stojí dnešní jazykové modely. Ty samé modely, které už teď mění způsob, jak píšeme, programujeme, učíme se, pracujeme a možná i to, jak bude vypadat celý pracovní trh.

Programátor sleduje svět řízený roboty a AI

Svět se trochu rozjel. Je dobré vědět, kdo drží páky.

Tak co tady budeme dělat?

Pojďme si postavit vlastní jazykový model.

V poslední době narážím na „napíšeme prompt do ChatGPT a budeme tomu říkat AI kurz". To nechci :)... Opravdu si sáhneme na vnitřnosti: tokeny, pravděpodobnosti, vektory, attention, transformer. V Pythonu (ale to není tak podstatné). Postupně, od úplně hloupé tabulky, která umí vyplivnout pár švejkovsky znějících slov, až po malý funkční transformer — stejný typ architektury, ze které vyrostly ChatGPT, Claude, Gemini a zbytek dnešního bláznivého AI světa.

Na konci budeme mít:

  • Funkční mini-GPT v nějakých 150 řádcích kódu (přesně ještě nevím, píšu to průběžně :)).
  • Mentální model toho, co se uvnitř LLM děje. Co kam teče, co se počítá, kde to funguje překvapivě dobře a kde to celé začne dělat kraviny.
  • Schopnost číst články o nových modelech bez toho, aby ti každé druhé slovo připadalo jako zaklínadlo. Attention, embedding, softmax — všechno to postupně otevřeme.

Pokud máš PhD z deep learningu, tak se tu asi moc nenaučíš. Pokud jsi programátor, který AI používá každý den, ale při slově „QKV" se mu v hlavě rozsvítí kontrolka „tohle někdy doženu", jsi doma.

Co budeš potřebovat

Nic. Vážně.

  • Žádný GPU.
  • Žádná lokální instalace Pythonu, numpy ani PyTorche.
  • Žádný účet u OpenAI, Anthropic ani kohokoliv dalšího.

Veškerý kód běží přímo v prohlížeči přes Pyodide (to je Python zkompilovaný do WebAssembly). Klikneš na Run a věci se začnou počítat na tvém laptopu.

Můžeš si kód měnit, rozbít, opravit, pustit znovu, změnit jedno číslo a pozorovat, jak se model začne chovat jinak. Tohle je podle mě nejlepší způsob, jak se něco naučit - experimentováním.

Plán

10 lekcí + 1 bonus. Každá staví na předchozí. Začneme u nejhloupějšího možného jazykového modelu: tabulky, která říká „po slově pan často přijde Švejk". Pak budeme přidávat jeden dílek po druhém: tokenizaci, embeddings, neuronové sítě, učení gradientním sestupem, self-attention, multi-head attention, poziční kódování a celý transformer blok.

Pak ten finální projekt — slepíme všechny pod-komponenty dohromady do mini-GPT, který se vytrénuje na Osudech dobrého vojáka Švejka (česká varianta) a Adventures of Huckleberry Finn (anglická varianta) a bude generovat text, který zní jako Hašek a zní jako Twain.

Nečekejme GPT-5. Spíš GPT-0.001 a vlastně ani ještě nevím, jak to dopadne. Možná celkem blbě, ale je to taky experiment a experimentovat je opravdu potřeba. A hlavně - bude to tvoje. Tvůj vlastní AI chat!

Jak to bude vypadat

  • Hodně vizualizací. Diagramy, animace, interaktivní grafy. Když něco nevidíš, je těžké tomu rozumět.
  • Lehká matika. Vektory, pravděpodobnosti, softmax. Žádné backprop derivace (to si ještě rozmyslím), žádné tenzorové důkazy. Některé věci zjednodušším, ale vždy to zmíním.
  • Vždycky kód, který si můžeš spustit. Žádné pseudokódy „pro představu".
  • Cvičení na konci každé lekce. Krátká, konkrétní, s okamžitou validací. Když ti něco nepůjde, je to signál, že jsem něco nevysvětlil dobře — klidně mi napiš do diskuze.

Co NE!

  • „Jak naprompovat ChatGPT, aby vám psal byznys plány." Tohle není prompt engineering kurz.
  • „Jak fine-tunovat Llamu na vlastní data." Možná někdy, ne teď.
  • „AI etika a budoucnost lidstva." Důležité, ale úplně mimo scope.

Tahle série je o principech. Až je budeš mít, prompty si napíšeš líp sám.

Programátor ukazuje hotový domácí jazykový model GPT-0.001

Není to GPT-5. Ale je to tvoje GPT-0.001.

Tak jdeme na to!

Otevři Lekci 1 — Co je jazykový model?.

Tam si poprvé napíšeme funkční (byť velmi hloupý) model, který bude generovat švejkovinu. Nachystej si kafe, čaj nebo pivo a jdeme na to :)...