08 · LLM · 4 min czytania · Interaktywne · aktualizacja
Czym jest duży model językowy (LLM) i jak działa?
W skrócie
LLM to sieć neuronowa typu transformer trenowana na ogromnym zbiorze tekstu do przewidywania kolejnego tokenu. Z tej prostej zasady biorą się jego umiejętności.
Co to jest
Duży model językowy (ang. large language model, LLM) to sieć neuronowa, zwykle o architekturze transformera, która dla danego fragmentu tekstu oblicza rozkład prawdopodobieństwa następnego tokenu (kawałka słowa). Ma od kilku miliardów do setek miliardów parametrów i jest trenowana na bilionach tokenów tekstu. Generuje odpowiedź, wielokrotnie losując kolejny token i dopisując go do wejścia.
Intuicja: wyobraź sobie autouzupełnianie w telefonie, które przeczytało znaczną część publicznego internetu, książek i kodu. Żeby dobrze zgadywać dalszy ciąg zdania „Stolicą Francji jest…”, „def fibonacci(n):” albo „Wniosek z tych przesłanek brzmi…”, model musi nauczyć się gramatyki, faktów, konwencji programowania i typowych wzorców rozumowania. Nikt mu tych rzeczy nie podaje osobno — wyłaniają się, bo pomagają przewidywać tekst.
Słowo „duży” jest umowne. W praktyce oznacza modele na tyle wielkie, że robią rzeczy, których nie trenowano wprost: tłumaczą, streszczają, piszą kod, rozwiązują zadania z kilku przykładów w poleceniu.
Mechanizm — dlaczego tak działa
Od tekstu do liczb. Tekst jest najpierw dzielony na tokeny (zob. tokenizacja BPE), a każdy token zamieniany na wektor — embedding. Dalej przechodzi przez stos identycznych bloków transformera. W każdym bloku mechanizm samouwagi (self-attention) pozwala każdej pozycji „spojrzeć” na wcześniejsze pozycje i pobrać z nich potrzebną informację, a warstwa w pełni połączona (MLP) przetwarza każdą pozycję osobno. Na końcu wektor ostatniej pozycji jest rzutowany na wektor wyników (logitów), po jednym na każdy token słownika, i zamieniany funkcją softmax na prawdopodobieństwa.
Cel uczenia jest jeden. W pretreningu model widzi fragment tekstu i ma przewidzieć każdy kolejny token. Funkcją straty jest entropia krzyżowa: kara równa −log prawdopodobieństwa, jakie model dał prawdziwemu następnemu tokenowi. Spadek gradientowy przesuwa miliardy wag tak, by ta kara średnio malała. Ponieważ etykietą jest po prostu dalszy ciąg tekstu, nie trzeba ręcznego oznaczania danych — to uczenie samonadzorowane.
Dlaczego z przewidywania wyrasta „rozumienie”. Dobre przewidywanie wymaga kompresji: model, który zna regułę, potrzebuje mniej „pamięci” niż model, który zapamiętuje przypadki. Najtańszym sposobem na niską stratę na zróżnicowanym tekście okazuje się wewnętrzna reprezentacja składni, znaczeń i zależności przyczynowych opisanych w tekście. Kaplan i in. (2020) pokazali, że strata spada przewidywalnie, jak funkcja potęgowa, wraz z liczbą parametrów, danych i obliczeń — stąd wyścig na skalę.
Model bazowy a asystent. Model po samym pretreningu kontynuuje tekst, ale nie wykonuje poleceń: na pytanie potrafi odpowiedzieć kolejnym pytaniem. Asystenta czatowego uzyskuje się przez dostrajanie na przykładach instrukcji i odpowiedzi oraz uczenie z ludzkich preferencji (RLHF, DPO).
Ograniczenia wynikające z konstrukcji. LLM modeluje statystykę tekstu, a nie świat bezpośrednio. Nie ma wbudowanego sprawdzania prawdy, więc płynnie generuje także zdania fałszywe (halucynacje). Wiedza jest zamrożona w chwili zakończenia treningu. Model nie ma pamięci między rozmowami — widzi tylko to, co mieści się w oknie kontekstu. Generuje token po tokenie, bez możliwości cofnięcia już napisanego słowa.
Na przykładzie
Skąd bierze się liczba „175 miliardów parametrów” w GPT-3? Model ma 96 bloków o szerokości d = 12 288 (Brown i in., 2020). Jeden blok transformera ma około 12·d² wag: 4·d² w samouwadze (macierze zapytań, kluczy, wartości i wyjścia, każda d×d) oraz 8·d² w warstwie MLP (dwie macierze d×4d). Daje to 12 · 96 · 12 288² ≈ 173,9 mld. Tablica embeddingów dla słownika 50 257 tokenów dokłada 50 257 · 12 288 ≈ 0,62 mld. Razem około 174,6 mld, czyli deklarowane 175 mld (resztę stanowią drobne wektory przesunięć i normalizacji).
Same wagi zapisane w 16-bitowej precyzji (2 bajty na parametr) zajmują 175 mld · 2 B = 350 GB. To dlatego największych modeli nie da się uruchomić na jednej karcie graficznej i dlatego kwantyzacja oraz destylacja mają tak duże znaczenie praktyczne.
W praktyce
- Modele otwarte uruchamia się zwykle przez bibliotekę
transformers(AutoModelForCausalLM,AutoTokenizer,model.generate) albo lżejsze silniki inferencji z kwantyzacją. - Rozmiar modelu dobiera się do zadania: modele 1–8 mld parametrów wystarczają do klasyfikacji, ekstrakcji i prostych rozmów; trudne rozumowanie i kod zyskują na większych.
- Przed dostrajaniem spróbuj dobrego promptu i RAG — są tańsze i łatwiejsze do zmiany.
- Koszt i opóźnienie liczy się w tokenach (wejściowych i wyjściowych), nie w znakach ani słowach.
- Typowy błąd: traktowanie odpowiedzi jak wyniku z bazy danych. Fakty, liczby i cytaty trzeba weryfikować.
Najczęstsze pytania
- Czy LLM rozumie, co pisze?
- Model ma wewnętrzne reprezentacje, które pozwalają mu poprawnie używać pojęć w nowych kontekstach, więc w sensie funkcjonalnym coś „rozumie”. Nie ma jednak dostępu do świata poza tekstem ani mechanizmu odróżniania prawdy od wiarygodnie brzmiącego fałszu. Spór filozoficzny trwa; praktycznie ważne jest to, że bywa pewny siebie także wtedy, gdy się myli.
- Czym LLM różni się od zwykłej sieci neuronowej?
- Zasada jest ta sama: warstwy, wagi, spadek gradientowy. Różnią się skala, architektura (transformer z samouwagą) i cel uczenia (przewidywanie następnego tokenu na tekście bez etykiet). Ta kombinacja daje model ogólnego przeznaczenia zamiast modelu do jednego zadania.
- Skąd LLM wie rzeczy, których nie było w danych?
- Zwykle nie wie — łączy wzorce, które w danych były. Potrafi poprawnie zastosować regułę do nowego przypadku, ale nowe fakty po dacie zakończenia treningu musi dostać w kontekście, na przykład przez RAG lub narzędzia.
Źródła
- Vaswani A. i in., 2017, „Attention Is All You Need”, NeurIPS 2017.
- Radford A. i in., 2019, „Language Models are Unsupervised Multitask Learners”, raport techniczny OpenAI.
- Brown T. i in., 2020, „Language Models are Few-Shot Learners”, NeurIPS 2020.
- Kaplan J. i in., 2020, „Scaling Laws for Neural Language Models”, arXiv:2001.08361.
- Jurafsky D., Martin J. H., „Speech and Language Processing”, 3rd ed. (wersja robocza online), rozdz. o dużych modelach językowych i transformerach.