Powrót do strony głównej

Jak właściwie działa ChatGPT?

ChatGPT to chatbot oparty na dużym modelu językowym (GPT-3.5 lub GPT-4). Pod maską ChatGPT znajduje się wstępnie wytrenowana sieć neuronowa, która została wytrenowana na imponującej ilości publicznie dostępnych danych tekstowych z Internetu.

Ta ogromna ilość danych umożliwia modelowi uczenie się wzorców, gramatyki, kontekstu, a nawet pewnej zdroworozsądkowej wiedzy, co pozwala mu generować znaczące i spójne odpowiedzi na zapytania użytkowników. ChatGPT ma unikalną zdolność do angażowania się w interaktywne i dynamiczne konwersacje z użytkownikami, co czyni go obiecującym narzędziem do szerokiego zakresu zastosowań.

Czym jest duży model językowy?

Duże modele językowe to algorytmy sztucznej inteligencji, które wykorzystują techniki głębokiego uczenia się znane jako przetwarzanie języka naturalnego w celu czytania, rozumienia, generowania i przewidywania tekstu.

Po wpisaniu pytania model nie szuka odpowiedzi w Internecie, ale podaje ją z głowy (choć nie ma żadnej głowy). Generuje odpowiedź po jednym słowie na raz, określając każde następne słowo na podstawie prawdopodobieństw pochodzących z danych tekstowych, na których został przeszkolony i tekstu, który wygenerował do tej pory.

11 miliardów parametrów: odpowiadanie na pytania, arytmetyka, rozumienie języka

11 miliardów parametrów: odpowiadanie na pytania, arytmetyka, rozumienie języka

Jak to możliwe? Cóż, ChatGPT nie musi przeszukiwać Internetu w poszukiwaniu informacji, ponieważ już wie wszystko (no, prawie). Cała wiedza dostępna w Internecie jest włączona do ChatGPT poprzez jego 175 miliardów parametrów.

62 miliardy parametrów: tłumaczenie, rozumowanie zdroworozsądkowe, uzupełnianie kodu

62 miliardy parametrów: tłumaczenie, rozumowanie zdroworozsądkowe, uzupełnianie kodu

Wraz ze wzrostem liczby parametrów w modelu pojawiają się nowe zdolności, które nie zostały celowo zaprojektowane przez nikogo.

540 miliardów parametrów: logiczne łańcuchy wnioskowania, rozpoznawanie wzorców, czytanie ze zrozumieniem

540 miliardów parametrów: logiczne łańcuchy wnioskowania, rozpoznawanie wzorców, czytanie ze zrozumieniem

Jak ChatGPT został przeszkolony

ChatGPT został przeszkolony na setkach tysięcy książek, artykułów, dialogów, w tym:

  • WebText2 (duża biblioteka zawierająca ponad 45 terabajtów danych tekstowych)
  • Cornell Movie Dialogs Corpus (zbiór danych zawierający ponad 200 000 rozmów między 10 000 postaci filmowych w scenariuszach filmowych)
  • Ubuntu Dialogue Corpus (zbiór 1 000 000 wieloobrotowych dialogów między użytkownikami Ubuntu a zespołem wsparcia społeczności)
  • miliardy linii kodu z serwisu GitHub.

Po pierwsze, GPT mógł przetwarzać wszystkie dane, do których miał dostęp, bez żadnych ludzkich wskazówek, umożliwiając mu niezależne uchwycenie przepisów i powiązań, które dyktują sferę tekstu (jest to tak zwane "uczenie się bez nadzoru").

Następnie, w celu dostrojenia modelu językowego, zastosowano technikę zwaną uczeniem wzmacniającym z ludzką informacją zwrotną (RLHF):

  • Trenerzy prowadzili rozmowy, w których wcielali się w obie strony - użytkownika i asystenta AI. Mieli oni dostęp do napisanych przez model sugestii, aby pomóc w tworzeniu odpowiedzi. Model został wytrenowany przy użyciu nadzorowanego dostrajania, aby przewidzieć następną wiadomość asystenta, biorąc pod uwagę historię dialogu.
  • Aby stworzyć model nagrody dla uczenia ze wzmocnieniem, zebrano dane porównawcze. Trenerzy AI uszeregowali wiele odpowiedzi modelu według jakości, biorąc pod uwagę takie kwestie, jak to, czy odpowiedź miała sens i czy była pomocna. Wybrane odpowiedzi stały się zbiorem danych dialogowych z nowymi wiadomościami napisanymi przez model.
  • Model nagrody został utworzony przy użyciu techniki zwanej modelowaniem nagrody, w której model został przeszkolony do przewidywania jakości odpowiedzi na podstawie danych porównawczych zebranych w poprzednim kroku.

Ostatecznie ChatGPT nauczył się, jak reagować w każdej sytuacji, udzielać precyzyjnych i trafnych odpowiedzi oraz unikać potencjalnie szkodliwych tematów.

Architektura Transformer

Proces uczenia ChatGPT polega na przewidywaniu następnego słowa w zdaniu na podstawie poprzednich słów. Aby to osiągnąć, stosowana jest architektura Transformer (nawiasem mówiąc, T w ChatGPT oznacza Transformer), która składa się z warstw mechanizmów samo-uwagi. Samoobserwacja pozwala modelowi ważyć różne słowa w zdaniu w oparciu o ich znaczenie i trafność, aby dokładnie przewidzieć następne słowo.

Starsze rekurencyjne sieci neuronowe (RNN) czytają tekst od lewej do prawej. Chociaż działa to dobrze, gdy powiązane słowa sąsiadują ze sobą, staje się wyzwaniem, gdy znajdują się na przeciwległych końcach zdania.

Dlatego też, gdy RNN pracuje z jednostronicowym tekstem, w połowie trzeciego akapitu "zapomina" już o tym, co było na samym początku.

W przeciwieństwie do nich, transformery są w stanie jednocześnie przetwarzać każde słowo w zdaniu i porównywać je ze wszystkimi innymi. Umożliwia im to skupienie swojej "uwagi" na najbardziej istotnych słowach, niezależnie od ich pozycji w sekwencji wejściowej.

Tokenizacja

Należy zauważyć, że transformery nie działają na pojedynczych słowach (nie potrafią czytać jak ludzie). Zamiast tego tekst wejściowy jest dzielony na pojedyncze tokeny, w tym słowa, znaki interpunkcyjne i tokeny specjalne. Tokeny w ChatGPT są fragmentami tekstu reprezentowanymi jako wektory (liczby z kierunkiem i pozycją).

Bliskość wektorów tokenów w przestrzeni określa ich poziom powiązania: im są bliżej, tym bardziej są powiązane. Co więcej, uwaga jest zakodowana jako wektor, umożliwiając sieciom neuronowym opartym na transformatorach zachowanie kluczowych informacji z poprzednich części akapitu.

Gdy użytkownik wchodzi w interakcję z ChatGPT, model otrzymuje historię konwersacji jako dane wejściowe, w tym zarówno podpowiedzi użytkownika, jak i odpowiedzi generowane przez model. Dane wejściowe są tokenizowane, a następnie wprowadzane do sieci neuronowej. Każdy token jest powiązany z osadzeniem, które reprezentuje jego znaczenie w kontekście rozmowy.

GPT-3 został wytrenowany na około 500 miliardach tokenów, co pozwala jego modelom językowym na łatwiejsze przypisywanie znaczenia i przewidywanie prawdopodobnego dalszego tekstu poprzez mapowanie ich w przestrzeni wektorowej. Wiele słów jest mapowanych na pojedyncze tokeny, choć dłuższe lub bardziej złożone słowa często dzielą się na wiele tokenów. Średnio tokeny mają około czterech znaków długości.

Podczas etapu wnioskowania, w którym model generuje odpowiedzi, wykorzystywany jest proces znany jako autoregresja. Oznacza to, że model przewiduje jedno słowo na raz, jednocześnie warunkując je historią konwersacji i wcześniej wygenerowanymi słowami. Aby upewnić się, że wygenerowana odpowiedź jest spójna i istotna, wykorzystywane są techniki takie jak próbkowanie top-p i skalowanie temperatury.

W skrócie, parametr top-p daje modelowi pulę opcji (tokenów) do wyboru, podczas gdy temperatura określa prawdopodobieństwo wyboru określonego tokena. Gdy temperatura jest ustawiona na 0, model wybierze tylko najbardziej "popularne" tokeny (słowa, które najczęściej występują razem w danych tekstowych ChatGPT):

Nie zawsze jest to dobre rozwiązanie. Wyższe temperatury sprawiają, że wyniki są bardziej zróżnicowane:

Więcej na temat parametrów ChatGPT: https://talkai.info/pl/blog/understanding_chatgpt_settings/