Nowsza technologia, duże modele językowe (LLM), przewidują token lub sekwencję tokenów, czasami wiele akapitów przewidywanych tokenów. Pamiętaj, że tokenem może być słowo, podsłowo (podzbiór słowa) lub nawet pojedyncza litera. Duże modele językowe generują znacznie lepsze prognozy niż modele językowe N-gramów czy rekurencyjne sieci neuronowe, ponieważ:
- Modele LLM zawierają znacznie więcej parametrów niż modele rekurencyjne.
- Modele LLM zbierają znacznie więcej kontekstu.
W tej sekcji przedstawiamy najbardziej skuteczną i powszechnie stosowaną architekturę do tworzenia dużych modeli językowych: Transformer.
Co to jest Transformer?
Transformery to najnowocześniejsza architektura, która umożliwia tworzenie różnych aplikacji wykorzystujących modele językowe, np. do tłumaczenia:
![Rysunek 1. Dane wejściowe: I am a good dog. Na podstawie modelu Transformer translator przekształca dane wejściowe w dane wyjściowe: Je suis un bon chien, czyli to samo zdanie przetłumaczone na francuski.](https://developers.google.cn/static/machine-learning/crash-course/images/Iamagooddog.png?authuser=19&hl=pl)
Pełne przetworniki składają się z enkodera i dekodera:
- Kodowanie polega na konwertowaniu tekstu wejściowego na pośrednią reprezentację. Koder to ogromna sieć neuronowa.
- Dekodery przekształcają ten pośredni format w przydatny tekst. Dekoder to również ogromna sieć neuronowa.
Na przykład w tłumaczu:
- Koder przetwarza tekst wejściowy (np. zdanie w języku angielskim) w jakiś pośredni format.
- Dekoder przekształca tę pośrednią reprezentację w tekst wyjściowy (np. zdanie w języku francuskim).
![Rysunek 2. Tłumacz oparty na sieci Transformer zaczyna pracę od enkodera, który generuje pośrednią reprezentację zdania w języku angielskim. Dekoder konwertuje tę pośrednią reprezentację na zdanie wyjściowe w języku francuskim.](https://developers.google.cn/static/machine-learning/crash-course/images/TransformerBasedTranslator.png?authuser=19&hl=pl)
Co to jest samoobserwacja?
Aby wzbogacać kontekst, modele Transformer w dużej mierze opierają się na koncepcji samouczenia. W zasadzie w imieniu każdego tokena danych wejściowych funkcja self-attention zadaje takie pytanie:
„W jakim stopniu każdy inny token wejściowy wpływa na interpretację tego tokena?”
„Self” w „self-attention” odnosi się do sekwencji wejściowej. Niektóre mechanizmy uwagi nadają większą wagę relacjom między tokenami wejściowymi a tokenami w sekwencji wyjściowej, np. tłumaczeniu lub tokenom w innej sekwencji. Jednak samo zwracanie uwagi uwzględnia tylko wagę relacji między tokenami w sekwencji wejściowej.
Dla uproszczenia przyjmijmy, że każdy token to słowo, a cały kontekst to tylko jedno zdanie. Rozważ zdanie:
The animal didn't cross the street because it was too tired.
Poprzednie zdanie zawiera 11 słów. Każde z 11 słów zwraca uwagę na pozostałe 10 i zastanawia się, jak bardzo każde z nich jest ważne dla siebie. Zwróć uwagę, że zdanie zawiera zaimka to. Zaimki są często niejednoznaczne. Zaimek to zwykle odnosi się do rzeczownika lub wyrażenia rzeczownikowego, ale w przypadku tego zdania do którego rzeczownika odnosi się zaimek to – do zwierzęcia czy ulicy?
Mechanizm samouczenia określa trafność każdego słowa znajdującego się w pobliżu zaimka it. Rysunek 3 przedstawia wyniki – im ciemniejszy niebieski kolor linii, tym ważniejsze jest słowo w odniesieniu do zaimka it. Oznacza to, że zwierzę jest ważniejsze niż ulica w przypadku zaimka to.
![Rysunek 3. trafność każdego z 11 słów w zdarzeniu „Zwierzę nie mogło przejść przez ulicę, ponieważ było zbyt zmęczone” w odniesieniu do zaimka „to”. Słowo „zwierzę” jest najbardziej odpowiednie do zaimka „to”.](https://developers.google.cn/static/machine-learning/crash-course/images/Theanimaldidntcrossthestreet.png?authuser=19&hl=pl)
Załóżmy, że ostatnie słowo w zdarzeniu zmienia się w ten sposób:
The animal didn't cross the street because it was too wide.
W poprawionym zdaniu funkcja samouczenia powinna uznać ulicę za bardziej odpowiednią niż zwierzę do zaimka to.
Niektóre mechanizmy samouczenia są dwukierunkowe, co oznacza, że obliczają wyniki trafności dla tokenów poprzedzających i następujących słowo, na którym skupia się uwaga. Na przykład na rysunku 3 widać, że słowa po obu stronach it są badane. Dzięki temu dwukierunkowy mechanizm samouwagi może zebrać kontekst ze słów po obu stronach analizowanego słowa. Z kolei jednokierunkowy mechanizm samouczenia może zbierać kontekst tylko z słów po jednej stronie słowa, na które jest nakierowany. Dwukierunkowa samouwaga jest szczególnie przydatna do generowania reprezentacji całych sekwencji, podczas gdy aplikacje, które generują sekwencje pojedynczo, wymagają jednokierunkowej samouwagi. Z tego powodu kodery używają dwukierunkowej samouczenia, a dekodery – jednokierunkowej.
Czym jest samouwaga wieloczęściowa?
Każda warstwa samouczenia składa się zwykle z kilku głów samouczenia. Wyjście warstwy to operacja matematyczna (np. średnia ważona lub iloczyn skalarny) wyjść różnych głów.
Każda warstwa samouczenia jest inicjowana losowymi wartościami, więc różne głowy mogą uczyć się różnych relacji między każdym słowem, na którym skupia się uwaga, a słowami w pobliżu. Na przykład warstwa samouczenia opisana w poprzedniej sekcji skupiała się na określeniu, do którego rzeczownika odnosi się zaimka it. Inne warstwy samouczenia mogą jednak uczyć się gramatycznego związku każdego słowa z każdym innym słowem lub innych interakcji.
Dlaczego Transformers są tak duże?
Transformatory zawierają setki miliardów, a czasem nawet bilionów parametrów. W tym kursie zalecaliśmy tworzenie modeli z mniejszą liczbą parametrów niż z większą liczbą parametrów. Model z mniejszą liczbą parametrów zużywa mniej zasobów na prognozowanie niż model z większą liczbą parametrów. Badania pokazują jednak, że modele Transformer z większą liczbą parametrów wykazują się wyższą skutecznością niż modele Transformer z mniejszą liczbą parametrów.
Ale jak LLM generuje tekst?
Widziałeś/widziałaś, jak badacze trenują duże modele językowe do przewidywania brakujących słów, i możesz być niezadowolony/a. Przewidywanie 1–2 słów to w podstawie funkcja autouzupełniania wbudowana w różne programy do tworzenia tekstów, e-maili i programy do tworzenia treści. Możesz się zastanawiać, jak modele LLM mogą generować zdania, akapity czy haiku o arbitrażu.
W istocie są to mechanizmy autouzupełniania, które mogą automatycznie przewidywać (uzupełniać) tysiące tokenów. Weź pod uwagę na przykład zdanie, które jest poprzedzone zamaskowanym zdaniem:
My dog, Max, knows how to perform many traditional dog tricks. ___ (masked sentence)
LLM może generować prawdopodobieństwa dla zamaskowanego zdania, w tym:
Probability, | Słowa |
---|---|
3,1% | Może na przykład siadać, zostawać w miejscu i przewracać się na bok. |
2,9% | Na przykład wie, jak siadać, zostawać w miejscu i przewracać się na bok. |
Wystarczająco duży model LLM może generować prawdopodobieństwa dla akapitów i całych esejów. Pytania użytkownika kierowane do LLM można traktować jako „dane” zdania, po których następuje wyobrażona maska. Na przykład:
User's question: What is the easiest trick to teach a dog? LLM's response: ___
Model LLM generuje prawdopodobieństwa dla różnych możliwych odpowiedzi.
Innym przykładem jest duży model językowy trenowany na podstawie ogromnej liczby „zadań tekstowych” z matematyki. Może on sprawiać wrażenie, że wykonuje zaawansowane rozumowanie matematyczne. Jednak te LLM w podstawie tylko automatycznie wypełniają prompt zadania słownego.
Zalety LLM
Modele LLM mogą generować przejrzyste i łatwe do zrozumienia teksty dla wielu różnych odbiorców. Modele LLM mogą przewidywać wyniki zadań, do których zostały specjalnie wytrenowane. Niektórzy badacze twierdzą, że duże modele językowe mogą też dokonywać prognoz na podstawie danych, na których nie zostały one ściśle wytrenowane, ale inni badacze zaprzeczyli temu twierdzeniu.
Problemy z dużymi modelami językowymi
Trenowanie LLM wiąże się z wielu problemami, w tym:
- zebranie ogromnego zbioru treningowego,
- wymagające wielu miesięcy, ogromnych zasobów obliczeniowych i energii elektrycznej;
- Rozwiązywanie problemów z równoległością.
Korzystanie z LLM do wyciągania prognoz powoduje te problemy:
- LLM halucynują, co oznacza, że ich przewidywania często zawierają błędy.
- Modele LLM zużywają ogromne ilości zasobów obliczeniowych i energii elektrycznej. Trenowanie modeli LLM na większych zbiorach danych zazwyczaj zmniejsza ilość zasobów wymaganych do wnioskowania, ale większe zbiory danych treningowych wymagają więcej zasobów do trenowania.
- Podobnie jak wszystkie modele ML, modele LLM mogą wykazywać różnego rodzaju uprzedzenia.