Od tokenów do odpowiedzi
Kiedy wpisujemy do ChatGPT pytanie o to, dlaczego jesienią liście zmieniają kolor, odpowiedź potrafi pojawić się niemal natychmiast. Model pisze o chlorofilu, świetle słonecznym i pigmentach, układając informacje w kilka płynnych akapitów. Z zewnątrz wygląda to tak, jakby wewnątrz programu znajdowała się ogromna encyklopedia, z której wystarczy odczytać właściwe hasło.
Duże modele językowe nie działają jednak jak zwykłe wyszukiwarki ani uporządkowane bazy gotowych odpowiedzi. Ich podstawowy trening przez długi czas opierał się na zadaniu z pozoru banalnym: na podstawie wcześniejszego fragmentu tekstu przewidzieć, jaki element powinien pojawić się dalej. Dopiero skala tego zadania i sposób, w jaki je realizują, pozwalają zrozumieć, skąd bierze się ich niezwykła elastyczność.
Gdy ktoś zaczyna zdanie „Wczoraj padał deszcz, więc zabrałem z domu…”, bez większego wysiłku można odgadnąć parasol. Podobnie łatwo dokończyć zdanie o stolicy Francji. Człowiek używa do tego znajomości języka i świata, zdobytej w niezliczonych sytuacjach. Model dostaje ogromną liczbę przykładów i uczy się przewidywać kolejne fragmenty tekstu, dostosowując parametry sieci neuronowej, gdy jego przewidywania nie zgadzają się z materiałem treningowym.
Parametr można rozumieć jako jedną z ogromnej liczby wartości matematycznych wpływających na działanie systemu. W dużych modelach są ich miliardy. Nie odpowiadają one pojedynczym fiszkom z wiedzą o świecie. Informacje i wzorce zostają rozłożone po całej sieci, w sposób znacznie trudniejszy do odczytania niż hasło encyklopedyczne. System może dobrze posługiwać się regułą gramatyczną, nie mając w swoich parametrach osobnego zdania wyjaśniającego tę regułę.
Zanim tekst trafi do sieci, dzielony jest na tokeny. Token może odpowiadać krótkiemu słowu, części dłuższego wyrazu, znakowi interpunkcyjnemu lub innemu fragmentowi. Następnie otrzymuje reprezentację liczbową, którą kolejne warstwy modelu mogą przetwarzać. Podczas uczenia system zaczyna wykrywać relacje między takimi reprezentacjami. Wyrazy pojawiające się w podobnych kontekstach mogą zyskiwać zbliżone właściwości matematyczne, nawet jeśli nikt nie zaprogramował dla nich klasycznej definicji.
To, co początkowo wyglądało jak ćwiczenie w uzupełnianiu zdań, zaczyna więc wymagać coraz bogatszych zależności. Aby trafnie przewidywać opisy awarii samochodów, warto uchwycić pewne regularności działania akumulatorów. Aby kontynuować program komputerowy, trzeba rozpoznawać składnię i strukturę kodu. Aby przewidzieć dalszy ciąg dialogu, trzeba śledzić, kto co powiedział i jakie wydarzenia miały wcześniej miejsce. Model nie musi doświadczać świata jak człowiek, żeby nauczyć się użytecznych reprezentacji jego fragmentów.
Uwaga i kontekst
Ważnym etapem rozwoju takich systemów było wprowadzenie architektury transformera. W 2017 roku zespół badaczy opublikował pracę „Attention Is All You Need”, opisując mechanizmy pozwalające sieci uwzględniać relacje między różnymi fragmentami sekwencji. Słowo attention, czyli uwaga, nie oznacza tu ludzkiego skupienia ani świadomego zainteresowania. Jest nazwą matematycznej operacji, dzięki której model może przypisywać różne znaczenie poszczególnym elementom kontekstu.
Wyobraźmy sobie zdanie: „Kasia włożyła książkę do torby, bo chciała przeczytać ją w pociągu”. Żeby poprawnie interpretować zaimek „ją”, trzeba uwzględnić wcześniejszą „książkę”, a nie jedynie najbliższe słowo. Mechanizm uwagi pozwala tworzyć takie powiązania. W rozbudowanych modelach wiele podobnych operacji zachodzi równolegle, a informacje przechodzą przez kolejne warstwy przetwarzania.
Kiedy użytkownik wpisuje pytanie, model tworzy na jego podstawie wewnętrzne reprezentacje i wyznacza prawdopodobieństwa możliwych kolejnych tokenów. Wybiera następny fragment tekstu zgodnie z przyjętą metodą generowania, dołącza go do dotychczasowej odpowiedzi i powtarza operację. W ten sposób zdanie powstaje krok po kroku. Nie musi istnieć wcześniej w postaci gotowego akapitu ukrytego w pamięci systemu.
Skąd biorą się pomyłki
Właśnie ta konstrukcja pomaga zrozumieć zjawisko halucynacji. Kiedy pytamy o mało znaną książkę, model może wygenerować nazwisko autora, które znakomicie pasuje do kontekstu, choć jest nieprawdziwe. Płynność językowa nie gwarantuje poprawności faktów. Podstawowy mechanizm generowania nie polega przecież na automatycznym sprawdzaniu każdego twierdzenia w zewnętrznym rejestrze.
Współczesne systemy ograniczają ten problem na kilka sposobów. Modele przechodzą dodatkowe etapy uczenia, w których premiuje się między innymi użyteczność odpowiedzi, zachowania zgodne z instrukcjami i przyznawanie się do niepewności. Mogą również korzystać z narzędzi zewnętrznych, takich jak wyszukiwarki, bazy danych, kalkulatory czy środowiska uruchamiania kodu. Różnica między samym modelem a całym systemem AI staje się przez to szczególnie ważna. Model może nie posiadać wiarygodnej informacji w swoich parametrach, ale system wyposażony w odpowiednie narzędzia potrafi ją sprawdzić.
Nie oznacza to, że wszystkie odpowiedzi zostają w ten sposób zweryfikowane. Model może błędnie ocenić źródło, źle wykonać obliczenie lub zbyt pewnie sformułować wniosek. Dlatego w zadaniach wymagających wysokiej dokładności potrzebna jest kontrola — zwłaszcza gdy chodzi o medycynę, prawo, finanse czy decyzje o dużych konsekwencjach.
Pozostaje pytanie, które znacznie trudniej rozstrzygnąć: czy model naprawdę rozumie, o czym mówi? Odpowiedź zależy w dużej mierze od tego, co rozumiemy przez samo „rozumienie”. Człowiek zna ogień nie tylko ze słów. Kojarzy go z ciepłem, światłem, bólem oparzenia i konkretnymi wspomnieniami. Model językowy uczy się przede wszystkim poprzez wzorce zapisane w danych, a część współczesnych systemów dodatkowo przez obrazy, dźwięki i inne sygnały.
Z drugiej strony system, który potrafi zastosować pojęcie w nowej sytuacji, napisać program wykorzystujący daną zasadę lub poprawnie wyjaśnić skomplikowaną analogię, wykazuje zdolności trudne do opisania jako zwykłe kopiowanie zdań. Spór o naturę takiego rozumienia pozostaje otwarty, szczególnie gdy zaczynamy pytać o jego podobieństwo do ludzkiego doświadczenia i świadomości.
W codziennym korzystaniu z AI bardziej użyteczne od rozstrzygnięcia tego sporu jest zrozumienie granic narzędzia. Model nie jest człowiekiem siedzącym po drugiej stronie ekranu, ale nie przypomina też prostego autouzupełniania wiadomości. Nauczył się niezwykle rozbudowanych zależności i dlatego potrafi tłumaczyć tekst, wyjaśniać kod, analizować dokumenty, porządkować informacje i podpowiadać rozwiązania.
Ta sama elastyczność, dzięki której system potrafi poruszać się między tak różnymi zadaniami, jest źródłem jego słabości. Może znakomicie wytłumaczyć zasadę działania silnika, po czym podać błędny szczegół techniczny. Może wygenerować działający program, a później wymyślić funkcję biblioteki, której nigdy nie było. Najlepsze rezultaty osiąga się wtedy, gdy traktujemy go jako narzędzie wymagające dobrych pytań i rozsądnej weryfikacji.
Jedno z największych osiągnięć współczesnej informatyki zaczęło się od zadania przypominającego dziecięcą zabawę w dokańczanie zdań. Skala danych, mocy obliczeniowej i architektury sieci sprawiła jednak, że pod powierzchnią tej zabawy pojawiły się umiejętności, których wcześniejsze programy nie potrafiły łączyć w tak elastyczny sposób. Właśnie ta droga — od przewidywania fragmentu tekstu do systemów pomagających w pracy i nauce — jest jedną z najbardziej niezwykłych historii technologii ostatnich lat.