Wstęp
Poniżej znajduje się podsumowanie mojego obecnego rozumienia dużych modeli językowych (LLM, Large Language Model) potocznie nazywanych sztuczną inteligencją (SI) lub AI (artificial intelligence).
O dużych modelach językowych
Czym są i jak działają LLM
Tworzenie AI zaczynamy od dużego zbioru danych, np. wikipedia, będącego zbiorem danych treningowych (training dataset).
System
rozłoży dane wejściowe na tokeny, tzn. niepodzielne cząstki
(głoski, litery, wyrazy, fonemy czy cokolwiek tam mu będzie pasować). Na potrzeby uproszczenia opisu poniżej zakładam, że token odpowiada słowu. W rzeczywistości słowo skłąda sie zazwyczaj z dwóch lub więcej tokenów.
Szukamy połączenia (korelacji) między
danymi. Przykładowo między słowami i ich umiejscowieniem w zdaniu dzięki czemu
potrafimy przewidzieć, że przykładowo po wyrazie "kurka" najczęściej
występuje "wodna" ale może też wystąpić "grzyb". Określamy też jak prawdopodobne jest
wystąpienie każdego z wyrazów i wyznaczamy prawdopodobieństwo dla wszystkich.
Rzeczywisty system jest bardziej skomplikowany. Dane wejściowe zamieniamy na dane
numeryczne. Matematycznie są to jakieś pozycje w przestrzeni tokenów, a
podobne tokeny znajdują się w niej niedaleko siebie. Przestrzeń nie jest
płaska, ani nawet trójwymiarowa - wymiarów jest dużo więcej.
Pozycje
w przestrzeni określamy z jakąś dokładnością. Dla uproszczenia zakłóżmy dwa
wymiary i współrzędne (x, y). Słowo "niebieski" może mieć pozycję
(100.51, 35.33) a "turkusowy" pozycję (101.02, 34.51), ponieważ te słowa mają zbliżone znaczenie.
Pozycje
określamy ze skończoną dokładnością, np. (100.5, 35.3) i (101.0, 34.5) lub
(100, 35) i (101, 35). Warto zauważyć, że przy małej dokładności słowa
mogą dostać tę samą pozycję. W rzeczywistości wymiarów mamy więcej niż dwa i nawet przy niskiej precyzji modele osiągają stosunkowo dobre wyniki.
W powyższy sposób możemy przewidzieć jakie słowo nastąpi po innym.
Tokeny
zbieramy w grupy i powtarzamy z szerszą perspektywą. Dzięki temu możemy
rozróżnić "zamek do drzwi" i "zamek u spodni". Tokeny są takie same, lecz
ich znaczenie jest zupełnie inne. Token "zamek" powinien posiadać przynajmniej dwa różne
położenia w zależności od kontekstu. Jeśli dobrze zrozumiałem LLM to
wielowarstwowe przetwarzanie stanowi częściowe obejście tego problemu. Być może dało by się to rozwiązać poprzez przypisanie jednemu tokenowi zestawu pozycji, tzn. zestawu wektorów. Z drugiej strony przetwarzanie na wielu warstwach jest zbliżonym działaniem.
Na koniec system przewiduje jaki token nastąpi po innym tokenie na wejściu oraz po zestawie tokenów.
Praca z problemami wcześniej nie spotykanymi
Chcemy aby AI potrafiło pracować z danymi, które nie są takie same jak zbiór danych treningowych.
- Rzeczywisty model chcieli byśmy "douczyć" w czasie rzeczywistym poprzez podanie skomplikowanego zestawu danych wejściowych, np. stron internetowych. Niestety to jest proces powolny i trzeba szukać alternatywnego rozwiązania.
- Jeśli ilość tokenów na wejściu jest zbyt duża - model ma problem aby określić dobrze kolejne tokeny. Jest to związane z brakiem dobrych dużych danych wejściowych do szkolenia modelu jak i skomplikowanym procesem przetwarzania (i oszczędnościami w obliczeniach).
- Aby zweryfikować czy nasz model radzi sobie dobrze z nieznanymi wcześniej danymi zwykle zbiór danych wejściowych dzielimy na dane treningowe i inne, np. walidacyjne.
- Temperature. Jest to współczynnik który pozwala na wybór niekoniecznie dokładnych korelacji między tokenami (ich odzwierciedleniem w przestrzeniach wielowymiarowych). Wartość 0% (0.00) oznacza dokładny wynik, wartość 20% (0.20) oznacza potencjalnie nieszablonowe rozwiązania (kreatywność).
Wyzwania, problemy i zagrożenia związane z LLM
- Czasem model ma tzw. halucynacje, tzn. wykrył powiązanie między jakimiś miejscami w danych wejściowych a bzdurą, np. ktoś często popełnia literówkę w wikipedii to model przyjmie to za poprawną wartość. Może to być też powiązanie między teoretycznie niepowiązanymi danymi wejściowymi. W zasadzie to nie kontrolujemy tego, co model powiąże ani w jaki sposób. Jedynie nadajemy kierunek tworzeniu tych powiązań. W ten sposób szkolimy model ale nie kontrolujemy go podobnie jak uczymy dziecko (ale dziecko i tak może wyrosnąć na psychopatę).
- Bezgraniczne zdawanie się na modele stanowi niebezpieczny trend. Inwestorzy często nie znają kontekstu swojej inwestycji, w który inwestują pieniądze. Inwestorzy oczekują jedynie zysków a firmy kierują się zyskiem jako słownym wyznacznikiem swoich działań. Przepisy oraz moralność są naginane do granic ryzyka (oraz konsekwencji ich złamania i wykrycia). Takie podejście powoduje skłonności do nadmiernego ryzyka.
- Powierzając AI wykonanie jakiegoś zadania całościowo powinniśmy pamiętać o jego ułomnościach i ograniczeniach.
- Model nie ma emocji i polega jedynie na matrycy prawdopodobieństwa wygenerowanej z danych wejściowych.
- Model jest cyniczny i ślepo wykonuje polecenia.
- Model jest skażony wszelkimi nieprawidłowościami w danych wejściowych i ma tendencje do halucynacji.
- Model nie jest kreatywny a zwiększając "temperaturę" zwiększamy możliwość halucynacji.
- Obecnie powierzamy modelom wykonianie jakiegoś zadania. Następnie dajemy mu kontrolę nad narzędziami do wykonania zadania.
- Wejściowe
zadanie zazwyczaj podamy nieprecyzyjnie - nie jesteśmy w stanie
przewidzieć wielu komplikacji przed ich wystąpieniem. Degeneracja pierwsza.
- Akcje przewidziane przez AI są wydane na powstawie nieprecyzyjnych danych obraczonych cynizmem i halucynacjami. Degeneracja druga.
- Akcje wykonane przez AI przy użyciu narzędzi nie są kontrolowane. Mogą one prowadzić do kolejnych zwyrodnień. Degeneracja trzecia.
- Efekt końcowy jest efektem danych wejściowych i funkcji na nich wykonanej razem z degeneracją na każdym poziomie, tzn. wynik końcowy zawiera iloczyn degeneracji.
- Im większej kreatywności oczekujemy, tym większe degeneracje i halucynacje. To troszkę jak z schizofrenią. Im większe degeneracje, tym większy błąd wyniku na wyjściu.
- Aby
kontrolować potencjalnie niepoprawne (niebezpieczne) wyniki nakłada sie
kolejne warstwy AI walidujące wyniki tej pierwszej warstwy. Kreatywne
AI jest w stanie (celowo bądź przypadkowo) wygenerować wyniki, które nie
zostaną zaklasyfikowane przez warstwę kontroli jako nieprawidłowe (tym
bardziej jeśli jest ona zimna i cyniczna, tzn. posiada niską
temperaturę).