AI / LLM9 min czytania
Jak się piecze model językowy
Cały trening LLM za jednym posiedzeniem, z minimum matmy i maksimum bezczelności
NOTA AUTORSKA
To przewodnik dla ludzi, którzy chcą wiedzieć, co się w tej maszynie dzieje, ale nie chcą w tym celu zaliczać trzech semestrów algebry liniowej. Przy każdym kroku jest jedna analogia, jedna linijka matmy (naprawdę tylko jedna) i jeden odnośnik, dokąd iść, gdy was to wciągnie.
Kolejność jest taka sama jak w prawdziwej produkcji: od tekstu przez maszynę aż po gotowego asystenta.
1. TOKENIZACJA — POCIĘCIE TEKSTU NA LEGO
Model nie czyta liter ani słów. Czyta tokeny, czyli kawałki tekstu, które powstały tak, że algorytm przeszedł przez ogromną stertę tekstu i stopniowo sklejał najczęstsze pary znaków w większe całości. Częste słowo "the" to jeden token. Słowo "Vrchlabí" to spokojnie cztery, bo maszyna musi je sobie poskładać z klocków, które miała pod ręką.
Analogia: to Lego. Macie ograniczony zestaw klocków (typowo 30 do 150 tysięcy rodzajów) i każdy tekst da się z nich poskładać. Dlatego model umie „przeczytać” słowo, którego nigdy nie widział — po prostu buduje je z kawałków.
Matma: tekst → ciąg liczb całkowitych , każda z przedziału , gdzie V to rozmiar słownika. GPT-2 ma .
Dokąd dalej: Sennrich, Haddow & Birch (2016), "Neural Machine Translation of Rare Words with Subword Units" — oryginalny paper o BPE. A potem spróbujcie wpisać kilka zdań na https://platform.openai.com/tokenizer, bo gdy zobaczycie, ile tokenów zjada czeska diakrytyka, zrozumiecie, dlaczego modele umieją po angielsku taniej.
2. EMBEDDINGI — KAŻDEMU KLOCKOWI DAJEMY WSPÓŁRZĘDNE
Liczba 4 731 sama w sobie nic nie znaczy. Więc każdemu tokenowi przydzielamy długą listę liczb (wektor), a te wektory w trakcie treningu przesuwają się tak, żeby tokeny o podobnym znaczeniu leżały blisko siebie. „Król” i „królowa” wylądują obok siebie. „Król” i „śrubokręt” nie.
Analogia: każde słowo dostaje współrzędne GPS w świecie, który zamiast dwóch wymiarów ma na przykład 4 096. Nikt tych współrzędnych nie wpisuje ręcznie. Słowo wprowadza się tam samo, według tego, w jakim towarzystwie występuje w tekstach.
Matma: , wiersz to wektor tokenu t. Dla Llamy 2 70B .
Dokąd dalej: Mikolov et al. (2013), "Efficient Estimation of Word Representations in Vector Space" — word2vec, to słynne .
3. ATTENTION, KAŻDY TOKEN ROZGLĄDA SIĘ PO POKOJU
Tu jest ten trik, dzięki któremu transformer wygrał. Każdy token patrzy na wszystkie tokeny przed sobą i pyta: „Kto z was jest teraz dla mnie ważny?” Zaimek „ona” obejrzy się za najbliższym żeńskim imieniem. Czasownik „zapłacił” obejrzy się za tym, kto i co.
Analogia: przyjęcie. Każdy gość ma na szyi karteczkę z tym, co oferuje (klucz), a w głowie to, czego szuka (zapytanie). Dla każdej pary liczy się, jak do siebie pasują, a każdy gość miesza sobie potem koktajl z tego, co mówią ci naj-pasujący (wartości). Słowo "attention" znaczy dokładnie to: komu poświęcam uwagę i w jakich proporcjach.
Matma (ta jedyna linijka, którą warto zapamiętać):
Dzielenie przez jest po to, żeby przy dużych wektorach iloczyny skalarne nie były ogromne i softmax nie zaciął się na jednym gościu. Detal, ale taki, bez którego to się nie trenuje.
A ponieważ jedno spojrzenie po pokoju nie wystarczy (jeden zwraca uwagę na gramatykę, drugi na znaczenie, trzeci na to, co jest w cudzysłowie), robi się to równolegle wiele razy: multi-head. Kilku gości na jednym przyjęciu, każdy zauważa co innego.
Dokąd dalej: Vaswani et al. (2017), "Attention Is All You Need". Ale najpierw przeczytajcie Jay Alammar, "The Illustrated Transformer" — tam są do tego obrazki, których w oryginalnym paperze brakuje.
4. STRUMIEŃ REZYDUALNY, CZYLI AUTOSTRADA, NA KTÓREJ KAŻDA WARSTWA TYLKO DOPISUJE
Model ma dziesiątki warstw (Llama 70B ma 80). Gdyby każda warstwa swoje wejście nadpisywała, po trzydziestu warstwach z pierwotnego słowa nie zostałoby nic. Więc robi się to sprytniej: wejście kopiuje się dalej bez zmian, a warstwa tylko dodaje do niego swoją notatkę.
Analogia: współdzielony dokument, przez który przechodzi 80 redaktorów. Nikt nie kasuje, każdy tylko dokleja komentarz na marginesie. Kto chce, może przeczytać pierwotny tekst nawet po osiemdziesięciu rundach.
Matma: . To wszystko. Ta prostota to ficzer: gradient ma zawsze prostą drogę powrotną, bo pochodna x po x wynosi 1.
Po attention następuje w każdej warstwie jeszcze mała sieć feed-forward (MLP), która pracuje z każdym tokenem osobno... coś jak „teraz, gdy już wiesz, komu poświęciłeś uwagę, przemyśl to sobie”. Większość parametrów modelu siedzi właśnie tutaj.
Dokąd dalej: He et al. (2015), "Deep Residual Learning for Image Recognition" — stąd transformery to odziedziczyły. A z twojego folderu Xie et al. (DeepSeek, 2026), "mHC: Manifold-Constrained Hyper-Connections" — co się stanie, gdy ktoś spróbuje tę autostradę poszerzyć o więcej pasów i odkryje, że stabilność się rozpada, dopóki tej „pochodnej równej jeden” nie przywróci z powrotem.
5. CEL, NIE "ZGADNIJ SŁOWO", ALE "ROZDAJ ZAKŁADY"
Teraz to ważne, co w popularnych wyjaśnieniach psuje się najczęściej. Nie trenujemy modelu, żeby zgadł następne słowo. Trenujemy go, żeby dla każdego słowa ze słownika powiedział, z jakim prawdopodobieństwem nadejdzie. Po „Dobry” da wysoką wagę na „dzień”, przyzwoitą na „wieczór”, małą na „pomysł” i mikroskopijną na „śrubokręt”.
Analogia: bukmacher. Nie chcemy, żeby wytypował zwycięzcę. Chcemy, żeby wypisał kursy na wszystkie konie, i karzemy go w zależności od tego, jak niski kurs dał temu, który ostatecznie dobiegł. Bukmacher, który daje 99% jednemu koniowi, wyjdzie na tym w dłuższej perspektywie gorzej niż ten, kto uczciwie rozłoży zakłady tam, gdzie naprawdę jest niepewność.
Matma: dla poprawnego następnego tokenu strata wynosi
Zsumowane przez miliardy pozycji w tekście. Gdy model dał poprawnemu tokenowi p = 0,5, płaci 0,69. Gdy dał mu 0,01, płaci 4,6. Gdy dał mu 0,99, płaci 0,01. To się nazywa cross-entropy i to jedyne, czego model podczas pre-treningu „chce”.
Z tego wynika rzecz, którą kalomaze ładnie opisuje: model, który ma niską stratę, musi umieć reprezentować niepewność. Musi wiedzieć, gdzie tekst jest przewidywalny (kod, matematyka), a gdzie swobodny (poezja, czat). To nie jest zapamiętywanie. To wyuczona mapa tego, gdzie język jest sztywny, a gdzie płynny.
Dokąd dalej: kalomaze, "Understanding Transformers... (beyond the Math)" (2025) — zwłaszcza rozdział o warstwie wyjściowej. I Karpathy, "Let's build GPT: from scratch, in code, spelled out" (YouTube, 2023) — dwie godziny, po których napiszecie to wszystko w 300 linijkach Pythona.
6. GRADIENT DESCENT, ZEJŚCIE Z GÓRY Z ZAWIĄZANYMI OCZAMI
Mamy stratę. Mamy miliardy liczb (parametrów), które na nią wpływają. Jak je ustawić? Dla każdej liczby liczymy, o ile zmieniłaby się strata, gdybyśmy nią trochę poruszyli (to jest gradient), i ruszamy nią w przeciwnym kierunku. Wielokrotnie. Rzędu milionów kroków.
Analogia: stoicie we mgle na wzgórzu i chcecie zejść. Nie widzicie nic, ale czujecie nachylenie pod nogami. Robicie krok w dół. Znów obmacujecie grunt. Krok. Zmiennych jest 70 miliardów, ale zasada jest wciąż ta sama — poczuć nachylenie, krok, poczuć nachylenie.
Matma: . Litera to długość kroku (learning rate). Za duży krok i przeskoczycie dolinę. Za mały i będziecie schodzić do świąt.
Dokąd dalej: 3Blue1Brown, seria "Neural networks" (YouTube) — rozdziały o gradient descencie i backpropagation mają najlepsze wizualizacje, jakie znam.
7. SKALOWANIE, CZYLI PRZEPIS, KTÓRY DZIAŁA ZASKAKUJĄCO DOKŁADNIE
Ile danych, ile parametrów, ile obliczeń? Okazało się, że to nie wróżenie. Strata spada wraz z rozmiarem modelu i objętością danych według gładkich krzywych, z których da się przewidzieć, jak dobry będzie model, którego jeszcze nie uruchomiliście.
Analogia: pieczecie chleb i odkrywacie, że proporcja mąki i wody działa tak samo dla bochenka i dla pieca przemysłowego. To nie jest oczywistość — w większości rzeczy na świecie tak nie jest.
Matma: Chinchilla (2022) podaje jako obliczeniowo optymalny stosunek około 20 tokenów treningowych na jeden parametr. Model o 70 mld parametrów chce ~1,4 biliona tokenów. (Dzisiejsze modele trenują na wielokrotnościach tego stosunku, bo taniej jest mieć mniejszy model, który potem tanio się utrzymuje.)
Dokąd dalej: Hoffmann et al. (2022), "Training Compute-Optimal Large Language Models". I Kaplan et al. (2020), "Scaling Laws for Neural Language Models" — starsza wersja, która to wszystko zapoczątkowała.
8. POST-TRENING, JAK Z PAPUGI INTERNETU ZROBIĆ ASYSTENTA
Model po pre-treningu to dokańczacz tekstu. Dajecie mu pytanie, a on spokojnie wygeneruje kolejnych dziesięć pytań, bo tak wyglądają fora. Żeby zrobił się z niego asystent, przychodzą trzy kroki:
SFT (supervised fine-tuning). Pokazujecie mu kilkadziesiąt tysięcy przykładów „pytanie → dobra odpowiedź”. Uczy się formatu. Wciąż ta sama cross-entropy, tylko na ręcznie pisanych danych.
Preferencje (RLHF / DPO). Ludzie porównują dwie odpowiedzi i mówią, która jest lepsza. Z tego model uczy się, co się podoba, a nie tylko co jest prawdopodobne. RLHF buduje do tego osobny „model nagrody” i używa uczenia ze wzmocnieniem; DPO skraca to i uczy się wprost z par.
RL na rozumowanie (2024–25). Model dostaje zadania z weryfikowalną odpowiedzią (matma, kod), pozwala mu się myśleć, a nagrodę dostaje tylko za poprawny wynik. Bez ludzi. Z tego powstały modele rozumujące typu o1 i DeepSeek-R1.
Analogia: pre-trening to przeczytanie biblioteki. SFT to staż, na którym pokazują wam, jak się pisze maila. Preferencje to szef, który odsyła wam maile z dopiskiem „tak nie”. RL na rozumowanie to egzamin, na którym nikogo nie obchodzi, jak na to wpadliście, tylko czy wynik się zgadza.
Matma (DPO, jedna linijka): zwiększaj log p(preferowana) − log p(odrzucona) względem modelu wyjściowego. Formalnie
gdzie to odpowiedź wygrywająca, a przegrywająca.
Dokąd dalej: Ouyang et al. (2022), "Training language models to follow instructions with human feedback" (InstructGPT). Rafailov et al. (2023), "Direct Preference Optimization". DeepSeek-AI (2025), "DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning".
9. PRÓBKOWANIE, A TEMPERATURA TO NIE LOSOWOŚĆ
Gotowy model daje wam na każdej pozycji rozkład. Coś z niego trzeba wyciągnąć. „Temperatura” to parametr, którym ten rozkład wyostrzacie albo spłaszczacie, zanim z niego ciągniecie.
Analogia: macie koło fortuny z polami różnej wielkości. Temperatura 1 = koło takie, jak narysował je model. Temperatura niska = duże pole jeszcze powiększycie, małe prawie znikną. Temperatura wysoka = wszystkie pola zbliżą się do tej samej wielkości. Potem kręcicie. Żadnej losowości nigdzie się „nie dodaje”; zmienia się tylko kształt koła.
Matma: . Przy zawsze wygrywa najwyższe (greedy). Przy to dokładnie to, co model wytrenował.
Dokąd dalej: Holtzman et al. (2019), "The Curious Case of Neural Text Degeneration" — dlaczego dekodowanie greedy zapętli nawet świetny model i skąd wziął się nucleus sampling.
CAŁY PRZEPIS NA JEDNEJ KARTECZCE
tekst → tokeny → wektory → [attention + MLP, dodać do strumienia] × warstw → kursy na każdy token → cross-entropy → gradient → powtórzyć bilion razy → SFT → preferencje → RL na wynik → gotowe, ustawcie temperaturę.
Nic z tego nie jest z osobna trudne. Trudne jest to, że działa dopiero wtedy, gdy jest tego niewiarygodnie dużo — i że nikt dokładnie nie wie, dlaczego akurat ten miks. Większość elementów jest tam dlatego, że się sprawdziły, a nie dlatego, że ktoś je wyprowadził. Co jest dobrą wiadomością: znaczy to, że sporo z nich da się jeszcze ulepszyć.




















