jancll.com

Lekce 00 · 5 min čtení

Úvod

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

Tak co tady budeme dělat

Postavíme si vlastní jazykový model. Od nuly. V Pythonu. Postupně, krok za krokem, od nejprimitivnější verze, co dokáže vyplivnout pár souvislých slov, až po malý funkční transformer — ten samý typ architektury, jakou používá ChatGPT, Claude, Gemini a všechno ostatní, co se tváří chytře.

Na konci budeš mít:

  • Funkční mini-GPT v ~150 řádcích kódu.
  • Mentální model toho, co se uvnitř LLM děje — žádné „je to magie", žádné „je to jen autocomplete". Budeš vědět přesně, co dělá a kde má limity.
  • Schopnost číst články o nových modelech a chápat, o čem se mluví — místo jen zírání na slova attention, embedding, softmax a doufání, že někdo vysvětlí.

Pro koho to je

  • Umíš Python alespoň na úrovni „napíšu si vlastní funkci a nezdá se mi to divné". for, if, listy, dicty. Numpy jsme schopni dovysvětlit.
  • Neumíš AI, nebo umíš tak akorát volat OpenAI API a nemáš ponětí, co se děje za rohem.
  • Chceš pochopit pod kapotou — ne proto, abys konkuroval OpenAI, ale abys věděl, co skutečně používáš.

Pokud máš PhD z deep learningu, tahle série ti bude přijít hloupě jednoduchá. To je záměr. Pokud nemáš, jsi přesně tam, kde máš být.

Co budeš potřebovat

Nic. Vážně.

  • Žádný GPU.
  • Žádná instalace Pythonu, numpy, PyTorche.
  • Žádný účet u OpenAI / Anthropic / kohokoliv.

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, hrát si, rozbít, opravit, naučit se víc, než ti dají hotové cvičení s předem správnou odpovědí.

Mobilní čtení

Většina lekcí jde číst i na telefonu, ale spuštění kódu chce desktop — Pyodide se loaduje ~10 MB a interaktivní vizualizace fungujou líp s myší.

Plán

10 lekcí + 1 bonus, každá staví na předchozí. Jdeme od nejhloupějšího modelu (bigramová tabulka) k funkčnímu transformeru. Mezi tím: tokenizace, embeddings, neuronka, učení gradientním sestupem, self-attention, multi-head, poziční kódování, 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.

Není to GPT-4. Je to GPT-0.001. Ale je to tvoje.

Pravidla hry

  • 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, žádné tenzorové důkazy. Pokud někde zalžu kvůli zjednodušení, řeknu to.
  • 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í. Jestli ti něco nepůjde, je to signál, že jsme něco nevysvětlili dobře — napiš mi.

Co tady NEbude

  • „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é, mimo scope.

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

Jdeme

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

Tam si poprvé napíšeme funkční (byť velmi hloupý) model, který bude generovat švejkovinu. Pyodide se musí poprvé natáhnout — než si dáš čaj, je hotovo.