Krótka historia sztucznej inteligencji: od Turinga do modeli językowych
Test Turinga, seminarium w Dartmouth, złote lata, dwie zimy AI i systemy ekspertowe, uczenie statystyczne, uczenie głębokie i modele językowe — oś czasu z odnośnikami do części serii i gorzka lekcja siedemdziesięciu lat badań.
Seria Podstawy AI Część 2 z 52
- Mapa sztucznej inteligencji: co jest czym i jak to do siebie pasuje
- Krótka historia sztucznej inteligencji: od Turinga do modeli językowych
- Dane, model, trening, inferencja: podstawowe pojęcia na jednym przykładzie
- Jak czytać zapis matematyczny: symbole, indeksy, sumy i kwantyfikatory
- Zbiory i relacje: klocki, z których składają się definicje w AI
- Funkcje i odwzorowania: dlaczego każdy model AI jest funkcją
- Logika i dowody: reguły, według których rozumuje AI
- Grafy i drzewa: struktura, na której opierają się przeszukiwanie i sieci neuronowe
- Algebra liniowa dla uczenia maszynowego: wektory, macierze i dlaczego AI głównie mnoży
- Pochodne, gradient i reguła łańcuchowa: jak model ustala, w którą stronę się uczyć
- Spadek gradientu: jak uczy się model
- Czym jest prawdopodobieństwo: od rzutu kostką do aksjomatów Kołmogorowa
- Prawdopodobieństwo warunkowe i twierdzenie Bayesa: jak zmienić ocenę, gdy dowiesz się czegoś nowego
- Zmienna losowa i dystrybuanta: jedna funkcja, która mówi o rozkładzie wszystko
- Funkcja gęstości i funkcja prawdopodobieństwa: dlaczego zmienna ciągła ma w punkcie prawdopodobieństwo zero
- Wartość oczekiwana, wariancja i kowariancja: gdzie leży rozkład, jak jest szeroki i co z czym się wiąże
- Przegląd rozkładów prawdopodobieństwa: Bernoulliego, dwumianowy, Poissona, jednostajny, normalny i wykładniczy
- Prawo wielkich liczb i centralne twierdzenie graniczne: dlaczego średnie zachowują się tak przewidywalnie
- Statystyka i estymacja parametrów: największa wiarygodność, MAP i przedziały ufności
- Teoria informacji: entropia, entropia krzyżowa i dywergencja KL — skąd się biorą funkcje straty
- Przeszukiwanie przestrzeni stanów: BFS, DFS, UCS i A* z animacjami
- Gry i przeciwnik: minimax, przycinanie alfa-beta i Monte Carlo tree search
- Spełnianie ograniczeń: backtracking, propagacja ograniczeń i AC-3 na sudoku i mapie czeskich krajów
- Logika i systemy z bazą wiedzy: wnioskowanie w przód i wstecz, rezolucja i systemy ekspertowe
- Planowanie: STRIPS, świat klocków, heurystyki z relaksacji i planowanie w agentach AI
- Przeszukiwanie lokalne i symulowane wyżarzanie: komiwojażer przez czeskie miasta wojewódzkie
- Algorytmy genetyczne: populacja, krzyżowanie, mutacja i selekcja na plecaku na wycieczkę
- Strategie ewolucyjne i programowanie genetyczne: od reguły jednej piątej do prawa Keplera
- Optymalizacja kolonią mrówek: jak ślad feromonowy znajduje krótką drogę
- Optymalizacja rojem cząstek: bezwładność, własne doświadczenie i doświadczenie roju
- Neuroewolucja: ewolucja wag i kształtu sieci neuronowych oraz algorytm NEAT
- Zbiory rozmyte i funkcje przynależności: jak zapisać „trochę ciepło”
- Logika rozmyta a prawdopodobieństwo: dlaczego „trochę ciepło” nie znaczy „prawdopodobnie ciepło”
- Logika rozmyta: t-normy, implikacje i reguły JEŻELI–TO
- Sterowanie rozmyte: Mamdani i Sugeno od wentylatora po wahadło na wózku
- Klasteryzacja rozmyta: algorytm fuzzy c-means i punkty między skupieniami
- Systemy neuro-rozmyte (ANFIS): reguły rozmyte, które uczą się z danych
- Łańcuchy Markowa: macierz przejścia, rozkład stacjonarny i PageRank
- Ukryte modele Markowa: algorytm Viterbiego i nieuczciwe kasyno
- Sieci bayesowskie: dlaczego trawa jest mokra i co z tego wynika dla zraszacza
- Filtr Kalmana: jak z niedokładnych pomiarów oszacować, gdzie jest samochód i jak szybko jedzie
- Rodzaje uczenia maszynowego: nadzorowane, nienadzorowane, półnadzorowane i inne
- Prompty, kontekst i RAG: jak dać modelowi właściwe informacje
- Wariacyjne autoenkodery (VAE): nowe obrazki z ciągłej przestrzeni latentnej
- Generatywne sieci przeciwstawne (GAN): fałszerz kontra detektyw
- Modele dyfuzyjne: jak z czystego szumu powstaje obraz
- Procesy decyzyjne Markowa: stany, akcje, nagrody i równania Bellmana
- Q-learning i DQN: uczenie się wartości akcji od tabeli po sieć neuronową
- Policy gradient i PPO: uczenie się bezpośrednio polityki
- Jak działa agent AI: model językowy w pętli z narzędziami
- Programowanie z agentami AI: zadanie, testy i kontrola
- Ocena i bezpieczeństwo systemów AI: jak mierzyć i jak pilnować
Pełny program serii Gotowe: 52 z 83 tematów
- Jak rozwijała się AI i dlaczego entuzjazm przeplatał się z zimami.
- Skąd pochodzą idee, na których opierają się dzisiejsze modele.
- Czym jest gorzka lekcja i dlaczego wygrywają ogólne metody z dużymi obliczeniami.
Warto wiedzieć wcześniej: Mapa sztucznej inteligencji: co jest czym i jak to do siebie pasuje
Sztuczna inteligencja nie jest nowa. Jej dzieje są starsze niż komputery osobiste i przypominają kolejkę górską: okresy entuzjazmu i wielkich obietnic, po nich otrzeźwienie i odpływ pieniędzy — „zimy” — a potem znowu wzlot, gdy okazało się, że stara idea nagle działa. Większość pomysłów, na których opierają się dzisiejsze modele językowe, wymyślono dziesiątki lat temu. W tej części przejdziemy przez nie w kolejności, w jakiej się pojawiały, a przy każdym, który objaśniamy w serii, znajdziesz odnośnik do odpowiedniej części.
Nawiązuje do części Mapa sztucznej inteligencji.
1. Początki: czy maszyna może myśleć?
Definicja — test Turinga
Alan Turing w 1950 roku zastąpił niejasne pytanie „czy maszyny mogą myśleć?” sprawdzianem: sędzia koresponduje z dwoma ukrytymi rozmówcami, człowiekiem i maszyną, i ma rozpoznać, kto jest kim. Jeśli maszyna potrafi się zamaskować równie dobrze jak człowiek, to według Turinga nie mamy powodu odmawiać jej inteligencji. Sam Turing mówił o „grze w naśladowanie”.
Zamiast filozoficznej debaty praktyczny sprawdzian: jeśli z kimś piszesz i nie rozpoznasz, czy to człowiek, czy program, to jest to dla ciebie inteligencja. Dzisiejsze modele językowe w krótkiej rozmowie często taki sprawdzian przechodzą — i okazuje się, że mówi to o inteligencji mniej, niż się spodziewano.
Definicja — test Turinga jako test statystyczny
Sędzia prowadzi n niezależnych rozmów i w każdej wskazuje, który rozmówca jest maszyną. Niech S będzie liczbą trafnych wskazań. Jeśli maszyny nie da się odróżnić od człowieka, sędzia tylko zgaduje i S ~ Bin(n, ½), zatem ES = n/2, a odchylenie standardowe σ = √n / 2. Maszyna zdaje test, jeśli wynik nie różni się statystycznie od zgadywania: |z| < 1,96 (test dwustronny na poziomie 5 %, przybliżenie normalne rozkładu dwumianowego).
Uwaga. To dzisiejsza formalizacja, nie Turinga. Turing opisał test w 1950 roku słownie i zamiast progu podał przewidywanie: około roku 2000 przeciętny sędzia po pięciu minutach rozmowy miałby rozpoznawać maszynę trafnie z prawdopodobieństwem nie większym niż 70 %.
Jedna rozmowa niczego nie dowodzi — sędzia może trafić przypadkiem. Dlatego prowadzi się wiele rozmów i pytamy, czy sędzia rozpoznaje maszynę częściej, niż gdyby rzucał monetą. Jeśli nie, maszyna zdała.
z = (S − n/2) / √n / 2
- S
- ile razy sędzia rozpoznał maszynę — jedyne, co się w teście mierzy
- n/2
- ile razy trafiłby czystym zgadywaniem; odejmujemy to, bo interesujące jest tylko to, co jest ponad przypadkiem
- √n / 2
- typowy rozrzut zgadywania; dzieląc przez niego, porównujemy nadwyżkę ze zwykłym szumem — 6 więcej na 100 rozmów to coś innego niż 6 więcej na 10 000
Przykład — 100 rozmów
Sędzia rozpoznał maszynę w 56 rozmowach na 100. Zgadując, spodziewałby się 100/2 = 50, odchylenie wynosi √100 / 2 = 5, więc z = (56 − 50) / 5 = 1,2. To mniej niż 1,96 — nie różni się to od zgadywania i maszyna zdała. Nie zdałaby, gdyby sędzia trafił co najmniej 50 + 1,96 · 5 = 59,8, czyli 60 razy.
- 1943 Sztuczny neuron. Warren McCulloch i Walter Pitts opisali neuron jako element logiczny z progiem. → część serii
- 1950 Test Turinga. Alan Turing w artykule Computing Machinery and Intelligence zaproponował zamiast pytania „czy maszyny myślą?” grę w naśladowanie.
- 1950 Szachy przez przeszukiwanie. Claude Shannon opisał, jak komputer grałby w szachy: przeszukiwać ruchy do określonej głębokości i oceniać pozycje funkcją. → część serii
2. Złote lata (1956–1974)
Na seminarium w Dartmouth latem 1956 roku spotkali się ludzie, którzy wierzyli, że „każdy aspekt uczenia się lub jakąkolwiek inną cechę inteligencji można w zasadzie opisać tak dokładnie, że maszyna zdoła ją naśladować”. Nastąpiły dwie dekady optymizmu. Programy dowodziły twierdzeń, rozwiązywały zadania tekstowe, grały w warcaby i rozmawiały o klockach na stole. Herbert Simon w 1965 roku przewidział, że w ciągu dwudziestu lat maszyny poradzą sobie z każdą pracą, którą wykonuje człowiek.
- 1956 Seminarium w Dartmouth. John McCarthy, Marvin Minsky, Nathaniel Rochester i Claude Shannon zwołali letnie seminarium; nazwa „artificial intelligence” się przyjęła.
- 1956 Logic Theorist. Allen Newell i Herbert Simon: program, który dowodził twierdzeń matematycznych przez przeszukiwanie. → część serii
- 1958 Perceptron. Frank Rosenblatt zbudował uczący się neuron; gazety pisały o maszynie, która będzie chodzić i mówić. → część serii
- 1959 Uczenie maszynowe. Arthur Samuel: program do warcabów, który poprawiał się, grając sam ze sobą. Od niego pochodzi wyrażenie machine learning. → część serii
- 1960 Filtr Kalmana. Rudolf Kálmán: szacowanie stanu z zaszumionych pomiarów; latał z nim Apollo. → część serii
- 1965 Zbiory rozmyte. Lotfi Zadeh wprowadził przynależność do zbioru jako liczbę między 0 a 1. → część serii
- 1966 ELIZA. Joseph Weizenbaum napisał program, który kilkoma regułami naśladował psychoterapeutę — a ludzie zwierzali mu się z tajemnic.
- 1969 Książka Perceptrons. Marvin Minsky i Seymour Papert pokazali, czego jeden neuron nie potrafi (XOR); zainteresowanie sieciami neuronowymi osłabło. → część serii
- 1971 Shakey i STRIPS. Robot Shakey ze Stanfordu planował kroki w języku STRIPS. → część serii
- 1973 Raport Lighthilla. Rząd brytyjski zlecił ocenę wyników AI; raport był krytyczny i finansowanie ograniczono.
Perceptron: pierwszy neuron, który się uczy
Definicja — perceptron
Perceptron z wagami w ∈ ℝd i przesunięciem b ∈ ℝ przypisuje wejście x ∈ ℝd do klasy +1, gdy w · x + b > 0, w przeciwnym razie do klasy −1 (w · x = w1x1 + … + wdxd to iloczyn skalarny). Na przykładzie (x, y) z poprawną klasą y ∈ {−1, +1} myli się, gdy y · (w · x + b) ≤ 0. Granica w · x + b = 0 jest prostą (ogólnie hiperpłaszczyzną).
Każde wejście dostaje wagę według tego, jak mocno przemawia za „tak”. Neuron sumuje wejścia z wagami i jeśli suma wyjdzie dodatnia, mówi „tak”. Uczenie się to dostrajanie wag tak, żeby „tak” mówił poprawnie.
Reguła Rosenblatta poprawia wagi tylko wtedy, gdy perceptron się pomyli:
w ← w + η · y · x
- w
- wagi — jedyne, czego się uczy; nowa wartość to stara plus poprawka, więc uczy się stopniowo, przykład po przykładzie
- η
- współczynnik uczenia — jak duży krok; u perceptronu startującego od zer tylko powiększa wszystkie wagi jednakowo, więc granicy nie zmienia
- y
- poprawna klasa ±1 — wyznacza kierunek: przykład dodatni przyciąga wagi do siebie, ujemny je odpycha
- x
- wejście, na którym się pomylił — poprawka celuje właśnie tam; wejście o wartości 0 nie przyczyniło się do błędu, więc jego waga się nie zmienia
perceptron(data, η):
w ← (0, …, 0); b ← 0
powtarzaj:
chyb ← 0
dla każdego przykładu (x, y) w data:
jeśli y · (w · x + b) ≤ 0: # pomylił się (albo stoi na granicy)
w ← w + η · y · x
b ← b + η · y
chyb ← chyb + 1
dopóki chyb > 0 # cała epoka bez błędu: gotowe
zwróć w, b
Przykład — perceptron uczy się AND
Dane: (0, 0) → −1, (0, 1) → −1, (1, 0) → −1, (1, 1) → +1; η = 1, start w = (0, 0), b = 0.
- (0, 0), y = −1: −1 · (0 + 0) = 0 ≤ 0, błąd. w = (0, 0) + (−1) · (0, 0) = (0, 0), b = 0 − 1 = −1.
- (0, 1) i (1, 0): −1 · (0 − 1) = 1 > 0, poprawnie, nic się nie zmienia.
- (1, 1), y = +1: 1 · (0 + 0 − 1) = −1 ≤ 0, błąd. w = (0, 0) + (1, 1) = (1, 1), b = −1 + 1 = 0.
I tak dalej: łącznie 18 poprawek, ostatnia w 8. epoce, a wynik to w = (3, 2), b = −4. Sprawdzenie: 3 · 1 + 2 · 1 − 4 = 1 > 0, a dla pozostałych wejść −4, −2, −1 < 0.
Twierdzenie — perceptron nie poradzi sobie z XOR (Minsky i Papert, 1969)
Nie istnieją w1, w2, b takie, żeby perceptron poprawnie przypisał (0, 0) → −1, (1, 1) → −1, (0, 1) → +1, (1, 0) → +1.
Dowód. Poprawne przypisanie oznaczałoby b ≤ 0, w1 + w2 + b ≤ 0, w2 + b > 0 i w1 + b > 0. Dodając dwie ostatnie nierówności, dostajemy w1 + w2 + 2b > 0, czyli w1 + w2 + b > −b ≥ 0 — sprzeczność z drugą nierównością. ∎
Punkty XOR leżą jak na szachownicy: dodatnie na jednej przekątnej, ujemne na drugiej. Jedna prosta nie zdoła ich rozdzielić. Dwie warstwy neuronów sobie z tym poradzą — tyle że w 1969 roku nie wiedziano, jak je uczyć. Więcej w części Perceptron.
3. Dwie zimy i systemy ekspertowe (1974–1993)
Definicja — zima sztucznej inteligencji
Zima AI to okres, w którym po niespełnionych obietnicach gwałtownie spada finansowanie i zainteresowanie dziedziną. Zwykle mówi się o dwóch: mniej więcej 1974–1980 (po raporcie Lighthilla w Wielkiej Brytanii i cięciach amerykańskiej agencji grantowej DARPA) oraz 1987–1993 (po załamaniu rynku specjalizowanych komputerów dla języka Lisp i rozczarowaniu systemami ekspertowymi).
Programy, które opanowały zabawkowe światy klocków, zderzyły się z prawdziwym światem: zbyt wiele możliwości, zbyt wiele wyjątków, zbyt wolne komputery. Kto obiecywał maszynę, która „za dziesięć lat będzie myśleć”, musiał tłumaczyć, dlaczego nie myśli. Pieniądze poszły gdzie indziej.
Między zimami przyszła fala systemów ekspertowych: zamiast ogólnej inteligencji wąska dziedzina i setki reguł spisanych z ekspertami („jeśli temperatura > 38 i … to …”). Działały i zarabiały. Tyle że reguły trudno było utrzymywać, systemy nie umiały niczego poza swoją dziedziną i nie potrafiły się uczyć. W cieniu tamtych czasów po cichu wróciły jednak sieci neuronowe: propagacja wsteczna (1986) pokazała, jak uczyć sieci o wielu warstwach.
- 1975 Algorytmy genetyczne. John Holland podsumował ewolucję populacji rozwiązań z krzyżowaniem i mutacją. → część serii
- 1980 Systemy ekspertowe. XCON (R1) konfigurował komputery firmy DEC regułami od ekspertów i oszczędzał miliony dolarów rocznie. → część serii
- 1986 Propagacja wsteczna. David Rumelhart, Geoffrey Hinton i Ronald Williams pokazali, jak uczyć sieci wielowarstwowe. → część serii
- 1988 Sieci bayesowskie. Judea Pearl: probabilistyczne wnioskowanie na grafie zależności. → część serii
- 1989 Sieci konwolucyjne. Yann LeCun nauczył sieć konwolucyjną czytać ręcznie pisane kody pocztowe. → część serii
- 1989 Q-learning. Christopher Watkins: uczenie się wartości akcji bez znajomości reguł świata. → część serii
Propagacja wsteczna: jak uczyć wiele warstw
Definicja — propagacja wsteczna (backpropagation)
Propagacja wsteczna to algorytm, który dla sieci złożonej z warstw hl = φ(Wlhl−1 + bl) oblicza gradient straty L względem wszystkich wag. Pochodne liczy od wyjścia do wejścia według reguły różniczkowania funkcji złożonej (reguły łańcuchowej) i każdy wynik pośredni wykorzystuje ponownie, więc cały gradient kosztuje rzędu tyle samo co jedno przejście przez sieć do przodu.
Sieć się pomyliła. Ile z tego błędu idzie na konto której wagi? Propagacja wsteczna to rozlicza: zaczyna przy wyjściu i przesyła winę do tyłu, warstwa po warstwie, według tego, jak mocno która waga wpłynęła na wynik.
Dla jednego neuronu ŷ = σ(z), z = wx + b ze stratą L = ½(ŷ − y)² łańcuch wygląda tak:
∂L/∂w = ∂L/∂ŷ · ∂ŷ/∂z · ∂z/∂w
- ∂L/∂w
- czego chcemy: jak zmieni się błąd, gdy poruszymy wagą — znak mówi, w którą stronę wagę przesunąć
- ∂L/∂ŷ
- = ŷ − y: jak mocno błąd zależy od wyjścia; tu zaczyna się przejście wsteczne
- ∂ŷ/∂z
- = ŷ(1 − ŷ) dla sigmoidy: jak czuła jest aktywacja; dla nasyconego neuronu prawie 0 i uczenie staje
- ∂z/∂w
- = x: ile waga wniosła do sumy; w sieci wielowarstwowej stoi tu wyjście poprzedniej warstwy, a łańcuch biegnie dalej do tyłu
Przykład — jeden krok uczenia
x = 1, w = 0,5, b = 0, poprawnie y = 1. Do przodu: z = 0,5, ŷ = σ(0,5) = 1 / (1 + e−0,5) = 0,6225, L = ½ · (0,6225 − 1)² = 0,0713.
Do tyłu: ∂L/∂ŷ = −0,3775, ∂ŷ/∂z = 0,6225 · 0,3775 = 0,2350, ∂z/∂w = 1. Iloczyn: ∂L/∂w = −0,0887.
Krok z η = 1: w ← 0,5 − 1 · (−0,0887) = 0,5887. Gradient jest ujemny, więc waga rośnie, a wyjście zbliża się do 1.
zpětné_šíření(x, y):
h₀ ← x # do przodu: zapamiętaj wyniki pośrednie
dla l = 1 … L:
zₗ ← Wₗ · hₗ₋₁ + bₗ
hₗ ← φ(zₗ)
δ ← ∂Ztráta/∂h_L # do tyłu: zacznij od błędu wyjścia
dla l = L … 1:
δ ← δ ⊙ φ′(zₗ) # przez aktywację (po składowych)
∂Ztráta/∂Wₗ ← δ · hₗ₋₁ᵀ # gradient wag tej warstwy
∂Ztráta/∂bₗ ← δ
δ ← Wₗᵀ · δ # przekaż winę o warstwę niżej
zwróć wszystkie ∂Ztráta/∂Wₗ, ∂Ztráta/∂bₗ
W głąb: Sieć neuronowa od zera.
4. Uczenie statystyczne (1993–2012)
Dziedzina się zmieniła. Zamiast „zaprogramujmy inteligencję” przyszło „nauczmy się tego z danych” — a wraz z tym prawdopodobieństwo, statystyka i staranne pomiary. Rozpoznawanie mowy, filtry spamu, rekomendacje i wyszukiwanie działały dzięki ukrytym modelom Markowa, metodom bayesowskim, SVM i zespołom drzew. Określenia „sztuczna inteligencja” używano wtedy rzadko — mówiło się o uczeniu maszynowym. Deep Blue pokonał Kasparowa w 1997 roku, ale nie uczeniem: brutalną siłą przeszukiwania i ręcznie dostrojoną funkcją oceny.
- 1995 SVM. Corinna Cortes i Vladimir Vapnik: klasyfikacja z największym marginesem i sztuczka z jądrem. → część serii
- 1997 Deep Blue. Komputer IBM pokonał mistrza świata w szachach Garriego Kasparowa — przeszukiwaniem, nie uczeniem. → część serii
- 1997 LSTM. Sepp Hochreiter i Jürgen Schmidhuber: sieć rekurencyjna z bramkami, która długo pamięta. → część serii
- 2001 Las losowy. Leo Breiman: zespół drzew decyzyjnych głosuje. → część serii
5. Uczenie głębokie (2012–2018)
W 2012 roku konkurs rozpoznawania obrazów ImageNet wygrała głęboka sieć konwolucyjna AlexNet (Alex Krizhevsky, Ilya Sutskever i Geoffrey Hinton) z taką przewagą, że w ciągu kilku lat dziedzina przeniosła się do sieci neuronowych. Nie był to nowy pomysł — sieci konwolucyjne istniały od końca lat 80. Nowe były trzy rzeczy: duże oznaczone dane (ImageNet miał ponad milion obrazów), karty graficzne, które mnożą macierze tysiąc razy szybciej, i kilka drobnych sztuczek (ReLU, dropout). Potem przyszła lawina: mowa, tłumaczenie, gry, generowanie.
- 2012 AlexNet. Głęboka sieć konwolucyjna uczona na kartach graficznych wygrała konkurs ImageNet z dużą przewagą. → część serii
- 2013 word2vec. Tomáš Mikolov i in.: słowa jako wektory, na których można liczyć analogie. → część serii
- 2014 GAN. Ian Goodfellow: dwie sieci przeciwko sobie generują obrazy. → część serii
- 2014 Uwaga. Dzmitry Bahdanau i in.: sieć tłumacząca patrzy na ważne słowa zdania. → część serii
- 2015 DQN. DeepMind nauczył jedną sieć grać w dziesiątki gier na Atari z ekranu. → część serii
- 2016 AlphaGo. Program DeepMind pokonał Lee Se-dola w go 4 : 1; grę uważano za domenę ludzkiej intuicji.
- 2017 Transformer. Artykuł „Attention Is All You Need” (Vaswani i in., Google) — architektura dzisiejszych modeli językowych. → część serii
- 2017 PPO. John Schulman i in. (OpenAI): stabilne uczenie strategii. → część serii
Przykład — dlaczego pomogła ReLU
Pochodna sigmoidy to σ′(z) = σ(z)(1 − σ(z)) ≤ ¼ (maksimum w z = 0). W propagacji wstecznej te pochodne mnożą się przez wszystkie warstwy, więc po dziesięciu warstwach sigmoidalnych gradient wynosi co najwyżej (¼)10 = 9,5 · 10-7 pierwotnej wielkości (wagi mogą go zwiększyć lub zmniejszyć, ale ten czynnik pozostaje). ReLU(z) = max(0, z) ma pochodną 1 dla z > 0 — gradient przechodzi przez aktywne neurony niepomniejszony, dzięki czemu głębokie sieci da się uczyć.
6. Modele językowe (od 2018)
Transformer z 2017 roku dało się skalować lepiej niż cokolwiek wcześniej. Modele GPT wstępnie wytrenowane na dużej części internetu pokazały, że większy model i więcej danych przynoszą przewidywalną poprawę. GPT-3 w 2020 roku radził sobie z zadaniami, do których nikt go nie uczył, tylko na podstawie kilku przykładów w prompcie. Dostrojenie go według ludzkich preferencji dało ChatGPT (listopad 2022) — pierwszy model językowy, który wypróbowały setki milionów ludzi. Dziś modele stają się agentami, którzy samodzielnie pracują na komputerze.
- 2020 GPT-3. Model językowy ze 175 miliardami parametrów radzi sobie z nowymi zadaniami tylko na podstawie przykładów w prompcie. → część serii
- 2020 Modele dyfuzyjne. Jonathan Ho i in.: obraz wyłania się z szumu krok po kroku. → część serii
- 2020 AlphaFold 2. DeepMind przewiduje trójwymiarowy kształt białek z dokładnością bliską eksperymentowi.
- 2022 ChatGPT. Model językowy dostrojony według ludzkich preferencji; w ciągu dwóch miesięcy według szacunków używało go 100 milionów ludzi. → część serii
- 2024 Nagrody Nobla. Z fizyki John Hopfield i Geoffrey Hinton (sieci neuronowe), z chemii Demis Hassabis i John Jumper (AlphaFold) wraz z Davidem Bakerem.
- 2024 Agenci. Modele językowe z narzędziami samodzielnie programują, wyszukują i pracują na komputerze. → część serii
Uwaga: wzór, na którym stoi transformer
Uwaga(Q, K, V) = softmax(QKT / √dk) V
- QKT
- iloczyny skalarne każdego zapytania z każdym kluczem — duże, gdy wektory wskazują ten sam kierunek; tak słowo „szuka” słów, które go dotyczą
- √dk
- iloczyn skalarny dk losowych składowych ma wariancję proporcjonalną do dk; bez dzielenia softmax wraz ze wzrostem wymiaru uczepiłby się jednego słowa, a gradienty by zanikły
- softmax
- z dowolnych wyników robi dodatnie wagi o sumie 1 — i w odróżnieniu od „wybierz maksimum” da się go różniczkować, więc można go uczyć
- V
- wartości — informacja, która jest faktycznie przekazywana; wyjście to ich średnia ważona
Przykład — jedno zapytanie, dwa klucze
q = (1, 0), k1 = (1, 0), k2 = (0, 1), v1 = (10, 0), v2 = (0, 10), dk = 2.
Wyniki: q · k1 / √2 = 0,707 i q · k2 / √2 = 0. Softmax: e0,707 / (e0,707 + e0) = 0,670 i 0,330. Wyjście: 0,670 · (10, 0) + 0,330 · (0, 10) = (6,70; 3,30). Zapytanie bardziej „spojrzało” na pierwsze słowo, bo jego klucz jest mu podobny — ale drugiego też nie zignorowało.
W głąb: Uwaga i Transformery.
Prawo skalowania: dlaczego „więcej” działa przewidywalnie
L(N, D) = E + A / Nα + B / Dβ
- E
- nieprzekraczalna strata: sam tekst jest niepewny i nawet nieskończony model nie zna następnego słowa na pewno
- A / Nα
- podatek za mały model (N parametrów); maleje potęgowo — dwa razy więcej parametrów obniża go tylko o 21 %, i dlatego modele rosną o rzędy wielkości
- B / Dβ
- podatek za mało danych (D tokenów); stoi osobno, bo ogromny model na małych danych natrafi na ten składnik
Przykład — Gopher kontra Chinchilla
Stałe dopasowane na setkach modeli (Hoffmann i in., 2022): E = 1,69, A = 406,4, B = 410,7, α = 0,34, β = 0,28.
- Gopher: N = 280 mld, D = 300 mld: L = 1,69 + 0,052 + 0,251 = 1,993; obliczenia 5,0 · 1023.
- Chinchilla: N = 70 mld, D = 1 400 mld: L = 1,69 + 0,083 + 0,163 = 1,937; obliczenia 5,9 · 1023.
Przy porównywalnych obliczeniach czterokrotnie mniejsza Chinchilla jest lepsza: u Gophera składnik danych wyraźnie przeważał nad składnikiem parametrów (0,251 wobec 0,052), więc opłaciło się ująć parametrów i dodać danych.
7. Czego uczy historia
Definicja — gorzka lekcja (the bitter lesson)
Richard Sutton w eseju z 2019 roku podsumował siedemdziesiąt lat badań: na dłuższą metę wygrywają ogólne metody, które potrafią wykorzystać rosnącą moc obliczeniową — przeszukiwanie i uczenie — z metodami, w które ludzie ręcznie wkładają swoją wiedzę o zadaniu. Ręczna wiedza pomaga krótkoterminowo, ale w końcu wyprzedza ją metoda, która nauczy się jej sama z danych i obliczeń.
Szachy wygrało przeszukiwanie, nie reguły od arcymistrzów. Obrazy wygrała sieć, która sama nauczyła się, czym jest krawędź, a nie ręcznie zaprojektowane detektory krawędzi. Język wygrał model, który przeczytał internet, a nie gramatyka spisana przez językoznawców. „Gorzka” jest dlatego, że ludzie za każdym razem znów próbują włożyć w maszyny swoje sprytne pomysły — i za każdym razem wyprzedza je brutalna siła z dobrą ogólną metodą.
I jeszcze jedno widać, gdy przyjrzymy się, skąd pochodzą idee, które objaśniamy w serii. Spośród 37 kamieni milowych na osi 30 ma własną część:
Najwięcej (7) pochodzi z dekady 2010 — ale niemal równie ważne są lata 50. i 80. Perceptron, propagacja wsteczna, sieci konwolucyjne, LSTM i Q-learning mają po kilkadziesiąt lat; czekały na dane i moc obliczeniową. Większość tego, co dziś wygląda jak cud, to sprytne połączenie starych pomysłów w dużej skali. A każda fala entuzjazmu kończyła się dotąd otrzeźwieniem — pytanie tylko, jak głębokim.
8. Podsumowanie
- 1950 test Turinga, 1956 Dartmouth (nazwa „sztuczna inteligencja” pochodzi z wniosku o seminarium z 1955 roku), 1958 perceptron.
- Po złotych latach przyszły dwie zimy (mniej więcej 1974–1980 i 1987–1993), a między nimi systemy ekspertowe.
- Od lat 90. uczenie statystyczne: z danych zamiast reguł, z pomiarem i prawdopodobieństwem.
- 2012 AlexNet i uczenie głębokie; 2017 transformer; 2022 ChatGPT; dziś agenci.
- Gorzka lekcja: na dłuższą metę wygrywają ogólne metody, które wykorzystują obliczenia — przeszukiwanie i uczenie.
- Większość dzisiejszych idei jest stara; nowe są dane, obliczenia i skala.
Chcesz spróbować sam? Poproś agenta AI, żeby napisał ci program ELIZA z dwudziestoma regułami, i porozmawiaj z nim. Potem porównaj tę samą rozmowę z dzisiejszym modelem językowym — i zastanów się, co z tej różnicy jest „inteligencją”.
Masz inne zdanie? Napisz na support@coden-app.com.