Kurs uczenia maszynowego od zera · Lekcja 7.2 · 33 z 33 gotowych lekcji · 12 min
Od sieci neuronowych do dużych modeli językowych
W skrócie
Duży model językowy uczy się zgadywać następny token. Lekcja buduje tę ideę od modelu liczącego słowa i pokazuje, jak temperatura zmienia to, co model pisze.
Rozgrzewka Dwa pytania z wcześniejszych lekcji. Minuta, a lekcji nie blokuje.
Klawiatura w telefonie podpowiada następne słowo, kiedy piszesz. Czatbot pisze całe wypracowania, odpowiada na pytania i tłumaczy wiersze. Czy to ten sam rodzaj maszyny? W sercu obu leży jedno zaskakująco skromne zadanie: mając dotychczasowy tekst, zgadnij, co będzie dalej. Ta ostatnia lekcja pokazuje, jak daleko może zaprowadzić to jedno pytanie i gdzie leżą jego granice.
Wybierz odpowiedź i pewność.
Odpowiedz, żeby odblokować lab.
Eksperyment
Ten interaktywny eksperyment działa w przeglądarce z włączonym JavaScriptem. Tekst wokół opisuje, co w nim widać.
Pokaż odpowiedź
Poprawna odpowiedź: Około 97%
Przy temperaturze 1 „ogrodzie” ma 21%, przy 0,5 37%, a przy 0,1 aż 97%, choć w tekście stanowi tylko 3 z 14 wystąpień. Niska temperatura wyostrza rozkład: najczęstsze słowo zabiera prawie wszystko. Wysoka (3) spłaszcza go do 13%.
Spróbuj
- Wpisz w pole tekstowe częste słowo i przeczytaj listę prawdopodobnych następnych słów z ich prawdopodobieństwami. Czy mają sens przy tym, co wiesz o tekście?
- Przesuń suwak temperatury w lewo i patrz, jak najczęstsze słowo zgarnia prawie całe prawdopodobieństwo. Potem przesuń go w prawo i zobacz, jak prawdopodobieństwa się wyrównują.
- Spróbuj słowa, które w krótkim tekście jest pewnie rzadkie. Skoro jest tak mało przykładów do policzenia, na ile można ufać pokazanym prawdopodobieństwom?
- Przejdź łańcuch ręcznie: wpisz najbardziej prawdopodobne następne słowo, potem najbardziej prawdopodobne po nim i tak dalej. Czy powstałe zdanie brzmi płynnie? Czy dokądś prowadzi?
Gdy już sprawdzisz to w labie, zobaczmy, co się tam właściwie działo.
Pomysł w prostych słowach
Model językowy przypisuje prawdopodobieństwa temu, co pojawi się dalej w tekście. Po „Poproszę filiżankę” prawdopodobna jest „herbaty”, „kawy” też, „żwiru” raczej nie. Mając takie prawdopodobieństwa, można generować tekst: wybrać następne słowo, dopisać je i zapytać znowu.
Najprostszy możliwy model językowy to model bigramowy. Czyta zbiór tekstów (korpus) i po prostu liczy, jakie słowo pojawia się po jakim. W tej lekcji przyglądamy się takiemu modelowi, zbudowanemu na krótkim tekście napisanym specjalnie dla tego kursu. Dla każdego słowa model zna słowa, które pojawiały się po nim w korpusie, razem z ich prawdopodobieństwami.
Pomyśl o kimś, kto przeczytał w życiu tylko jedną książkę, za to wiele razy, i którego jedyną umiejętnością jest pamiętanie, jakie słowo szło po jakim. Poproś go o dokończenie zdania, a wyprodukuje coś, co brzmi trochę jak ta książka — płynnie na krótkim odcinku, bez celu w całości. Ta osoba to model bigramowy.
Dlaczego to działa
Model bigramowy szacuje prawdopodobieństwo następnego słowa b po słowie a z liczności:
P(następne = b | bieżące = a) = liczba(a b) / liczba(a)
Jeśli słowo „filiżankę” występuje w korpusie dziesięć razy, a siedem razy idzie po niej „herbaty”, model daje słowu „herbaty” prawdopodobieństwo 0,7 po „filiżankę”. To wszystko — liczenie i dzielenie. Uczenie znów oznacza dopasowanie modelu do przykładów, a ocena to to, jak dobrze przewiduje następne słowo prawdziwego tekstu.
Żeby generować tekst, model musi wybrać spośród kandydatów i tu wkracza temperatura. Niska temperatura wyostrza rozkład: najbardziej prawdopodobne słowo wygrywa prawie zawsze, a tekst robi się powtarzalny i bezpieczny. Wysoka temperatura go spłaszcza: rzadsze słowa dostają realną szansę, a tekst staje się bardziej różnorodny i bardziej chaotyczny. Temperatura nie zmienia tego, co model wie, tylko to, jak śmiało losuje.
Duży model językowy (LLM) robi to samo zadanie z trzema wielkimi ulepszeniami. Po pierwsze, przewiduje tokeny — kawałki słów — więc poradzi sobie z każdym słowem, nawet takim, którego nigdy nie widział w całości. Po drugie, zamiast patrzeć tylko na poprzednie słowo, jest siecią neuronową, zwykle transformerem (zaproponowanym w 2017 roku), którego mechanizm uwagi pozwala każdej pozycji spojrzeć wstecz na tysiące poprzednich tokenów i zdecydować, które są ważne. Po trzecie, jego prawdopodobieństwa to nie liczności, tylko wyjścia sieci z miliardami wag, trenowanej dokładnie narzędziami z tego kursu: stratą logarytmiczną z lekcji 5 na następnym tokenie, minimalizowaną spadkiem gradientu z lekcji 4, z propagacją wsteczną z lekcji 11. Przy treningu na ogromnej ilości tekstu zadanie zgadywania zmusza sieć do przyswojenia gramatyki, faktów i schematów rozumowania, bo wszystko to pomaga przewidzieć, co będzie dalej.
Częsty błąd
Największe nieporozumienie wokół modeli językowych to myślenie, że wyszukują odpowiedzi. Nie zaglądają do bazy danych; produkują ciąg dalszy, który ich trening uczynił prawdopodobnym. Najczęściej jest on też prawdziwy, ale nie zawsze — gdy prawdopodobne i prawdziwe się rozchodzą, model płynnie wygłasza nieprawdę, co nazywamy halucynacją. Drugi błąd to traktowanie temperatury jak pokrętła jakości. Niska temperatura nie jest „bardziej poprawna”, tylko bardziej przewidywalna; pasuje do odpowiedzi rzeczowych, a wyższa do burzy mózgów.
To cała podróż: od jednego progu na jednym pomiarze guza do sieci przewidującej następne słowo wszystkiego, co kiedykolwiek napisano. Przepis się nie zmienił — rodzina modeli, ocena, poszukiwanie i uczciwy test na danych, których model nie widział. Hasła z Atlasu poniżej to miejsce, gdzie można zgłębić każdy krok.
Złap błąd AI
Tak odpowiedział chatbot. Jedno zdanie jest merytorycznie błędne. Które?
Pytanie: Skąd taki czatbot jak ty zna odpowiedź na moje pytanie?
Pokaż błędne zdanie
Błędne zdanie: Gdy zadajesz pytanie, model wyszukuje odpowiedź w swojej bazie sprawdzonych faktów, a potem płynnie ją formułuje.
Model językowy nie zagląda do bazy danych; produkuje ciąg dalszy, który jego trening uczynił prawdopodobnym, tak jak model z laba wie tylko, że po „w” stoi „ogrodzie” w 3 z 14 miejsc. Gdy prawdopodobne i prawdziwe się rozchodzą, model płynnie wygłasza nieprawdę: to halucynacja.
Quiz
Trzy pytania na sprawdzenie się. Wybierz odpowiedź albo rozwiń odpowiedź pod pytaniem. Z klawiatury: strzałki wybierają, Enter albo spacja zatwierdza.
Najważniejsze wnioski
- Model językowy daje prawdopodobieństwa następnego tokenu; generowanie tekstu to wielokrotne losowanie z nich.
- Model bigramowy liczy, które słowo idzie po którym; LLM zastępuje liczności transformerem patrzącym na długi kontekst.
- Temperatura steruje tym, jak śmiało model losuje, a nie tym, ile wie.
- LLM trenuje się tym samym przepisem co resztę kursu: strata logarytmiczna, spadek gradientu, propagacja wsteczna.
- Prawdopodobne to nie to samo co prawdziwe i dlatego modele językowe mogą halucynować.
Co dalej?
To ostatnia lekcja kursu. Kilka spokojnych następnych kroków — wybierz jeden.
- Powtórki pytania z ukończonych lekcji wracają po 1, 7 i 30 dniach; kilka minut dziennie i wiedza zostaje
- Dzienne ML jedna krótka zagadka dziennie
- Kaggle w październiku: od czego zacząć pierwszy konkurs i plan pierwszego tygodnia
- Ścieżka „Jak działa AI, której używasz” 6 krótkich lekcji o czacie AI: tokeny, temperatura, okno kontekstu, halucynacje i jak sprawdzić odpowiedź
- Ścieżka „Jak uczciwie ocenić model” hasła Atlasu po kolei, krok dalej niż kurs
- Kurs „Sieci neuronowe od środka” jeśli lekcje o sieci i modelu językowym Cię wciągnęły: od jednego neuronu do transformera
- Atlas haseł encyklopedia: działy, hasła od A do Z, dane i ścieżki; każde pojęcie z mechanizmem i przykładem
- Przebranżowienie na ML: uczciwe liczby ile to trwa, czego chcą pracodawcy i czego nie wiemy; każda liczba ze źródłem
Głębiej: wzór, kod, praktyka
Matematyka
W modelu bigramowym prawdopodobieństwo następnego słowa b po słowie a to iloraz liczników: P(b | a) = count(a b) / count(a). Temperatura t zmienia kształt tych prawdopodobieństw, nie ruszając liczników:
P_t(b | a) = count(a b)^(1/t) / Σ_c count(a c)^(1/t), gdzie suma biegnie po wszystkich słowachc, które następowały poa.- Dla
t = 1to zwykły iloraz. Gdytdąży do 0, najczęstsze słowo zabiera wszystko. Gdytrośnie, rozkład spłaszcza się ku równym szansom. - Duży model językowy stosuje ten sam pomysł do logitów
z:P_t(b) = exp(z_b / t) / Σ_c exp(z_c / t). Powyższe liczniki to szczególny przypadekz = log count. - Trening minimalizuje stratę logarytmiczną prawdziwego następnego tokenu,
−log P(prawdziwy token | kontekst), uśrednioną po tekście.
W kodzie (Python)
Kod czyta angielskie zdania laba, liczy, co następuje po „the”, i stosuje wzór z temperaturą. Działa więc na ANGIELSKICH zdaniach, a jego liczby to liczby angielskiej wersji lekcji (polski lab ma własny, polski tekst, w którym po „w” najczęściej następuje „ogrodzie”). Notebook podlinkowany pod wynikiem sam pobierze dane.
import re
from collections import Counter
src = open("site-src/course/labs/next-token.corpus.js", encoding="utf-8").read()
text = re.search(r"en: `(.*?)`", src, re.S).group(1) # angielskie zdania laba
words = re.findall(r"[a-z']+", text.lower())
after_the = Counter(b for a, b in zip(words, words[1:]) if a == "the")
counts = after_the.most_common()
print(f'"the" seen {sum(after_the.values())} times, {len(after_the)} different next words, top: {counts[:3]}')
for t in (1, 0.5, 0.1, 3):
w = {b: c ** (1 / t) for b, c in counts}
print(f"temperature {t}: P(morning | the) = {w['morning'] / sum(w.values()):.1%}")
Wynik
"the" seen 42 times, 26 different next words, top: [('morning', 4), ('cup', 3), ('garden', 3)]
temperature 1: P(morning | the) = 9.5%
temperature 0.5: P(morning | the) = 18.6%
temperature 0.1: P(morning | the) = 85.0%
temperature 3: P(morning | the) = 5.3%
To liczby angielskiej lekcji: po „the” następuje 26 różnych słów w 42 miejscach, a najczęstsze z nich, „morning”, ma 4 z 42, czyli 9,5% przy temperaturze 1. Przy temperaturze 0,1 dostaje 85,0%, a przy 3 tylko 5,3%.
Pobierz notebook (.ipynb). Otwórz go w Jupyterze albo wgraj do Google Colab; brakujące dane pobierze sam.
Dla praktyka
- Liczniki z małego tekstu są zaszumione. Słowo widziane trzy razy to trzy przykłady, a nie wiarygodny rozkład. Dlatego prawdziwe modele uczy się na ogromnych korpusach.
- Wybór zachłanny (zawsze najbardziej prawdopodobne słowo) daje powtarzalny tekst. Losowanie przy temperaturze bliskiej 1 albo tylko spośród kilku najlepszych słów daje większą różnorodność.
- Niską temperaturę stosuj tam, gdzie odpowiedź ma być stabilna i sprawdzalna, a wyższą do burzy mózgów. Żadna nie czyni odpowiedzi prawdziwszą.
- Płynne nie znaczy poprawne. Sprawdzaj fakty, liczby i cytaty w źródle, bo model tylko kontynuuje to, co prawdopodobne.
- Prawdziwe modele czytają tokeny, nie słowa. Rzadkie słowo jest dzielone na kawałki, więc liczenie całych słów, jak tu, to uproszczenie.
Czy to było pomocne?
Dzięki! To pomaga nam poprawiać Atlas.
Więcej w Atlasie
Hasła encyklopedii o pojęciach z tej lekcji: