Connect with us

NLP Rise with Transformer Models | A Comprehensive Analysis of T5, BERT, and GPT

Sztuczna inteligencja

NLP Rise with Transformer Models | A Comprehensive Analysis of T5, BERT, and GPT

mm
Guide on NLP

Przetwarzanie języka naturalnego (NLP) doświadczyło jednych z najbardziej wpływowych przełomów w ostatnich latach, głównie dzięki architekturze transformatora. Te przełomy nie tylko poprawiły możliwości maszyn do zrozumienia i wygenerowania języka ludzkiego, ale również zmieniły krajobraz licznych aplikacji, od wyszukiwarek po sztuczną inteligencję konwersacyjną.

Aby w pełni docenić znaczenie transformatorów, musimy najpierw spojrzeć na poprzedników i elementy, które położyły podwaliny pod tę rewolucyjną architekturę.

Wczesne techniki NLP: Podstawy przed transformatorami

Word Embeddings: Od One-Hot do Word2Vec

W tradycyjnych podejściach do NLP reprezentacja słów była często literalna i pozbawiona jakiejkolwiek formy zrozumienia semantycznego lub składniowego. One-hot encoding jest przykładem tej ograniczenia.

One-hot encoding jest procesem, w którym zmienne kategorialne są przekształcane w wektorową reprezentację binarną, gdzie tylko jeden bit jest “gorący” (ustawiony na 1), a wszystkie pozostałe są “zimne” (ustawione na 0). W kontekście NLP każde słowo w słowniku jest reprezentowane przez wektory one-hot, gdzie każdy wektor ma rozmiar słownika, a każde słowo jest reprezentowane przez wektor z wszystkimi 0 i jedną 1 na indeksie odpowiadającym temu słowu w liście słownika.

Przykład one-hot encodingu

Załóżmy, że mamy mały słownik z tylko pięcioma słowami: [“king”, “queen”, “man”, “woman”, “child”]. Wektory one-hot dla każdego słowa wyglądałyby tak:

  • “king” -> [1, 0, 0, 0, 0]
  • “queen” -> [0, 1, 0, 0, 0]
  • “man” -> [0, 0, 1, 0, 0]
  • “woman” -> [0, 0, 0, 1, 0]
  • “child” -> [0, 0, 0, 0, 1]

Reprezentacja matematyczna

Jeśli oznaczymy V jako rozmiar naszego słownika i wi jako wektor reprezentacji one-hot i-tego słowa w słowniku, matematyczna reprezentacja wi byłaby:

wi=[0,0,,1,,0,0] gdzie pozycja i-te jest 1, a wszystkie pozostałe pozycje są 0.gdzie pozycja i-te jest 1, a wszystkie pozostałe pozycje są 0.

Główną wadą one-hot encodingu jest to, że traktuje każde słowo jako izolowaną jednostkę, bez żadnego związku z innymi słowami. Wynika to w wektorach rzadkich i wysokowymiarowych, które nie przechwytują żadnej informacji semantycznej lub składniowej o słowach.

Wprowadzenie word embeddings, najbardziej znanego jako Word2Vec, było przełomowym momentem w NLP. Opracowany przez zespół w Google pod przewodnictwem Tomasza Mikolova w 2013 roku, Word2Vec reprezentował słowa w gęstym przestrzeni wektorowej, przechwytując relacje składniowe i semantyczne między słowami na podstawie ich kontekstu w dużych korpusach tekstu.

Inaczej niż one-hot encoding, Word2Vec produkuje gęste wektory, zwykle z setkami wymiarów. Słowa, które pojawiają się w podobnych kontekstach, takie jak “king” i “queen”, będą miały reprezentacje wektorowe, które są bliżej siebie w przestrzeni wektorowej.

Dla ilustracji, załóżmy, że przeszkoliliśmy model Word2Vec i teraz reprezentujemy słowa w hipotetycznej 3-wymiarowej przestrzeni. Wektory (które zwykle są więcej niż 3-wymiarowe, ale tutaj zostały zredukowane dla prostoty) mogłyby wyglądać tak:

  • “king” -> [0.2, 0.1, 0.9]
  • “queen” -> [0.21, 0.13, 0.85]
  • “man” -> [0.4, 0.3, 0.2]
  • “woman” -> [0.41, 0.33, 0.27]
  • “child” -> [0.5, 0.5, 0.1]

Chociaż te liczby są fikcyjne, ilustrują one, jak podobne słowa mają podobne wektory.

Reprezentacja matematyczna

Jeśli reprezentujemy wektor Word2Vec jako vw, a nasza przestrzeń wektorowa ma d wymiarów, wtedy vw może być reprezentowany jako:

v1,v2,,vd] gdzie każdyvijest liczbą zmiennoprzecinkową reprezentującą cechę słowa w przestrzeni wektorowej.

Relacje semantyczne

Word2Vec może nawet przechwycić złożone relacje, takie jak analogie. Na przykład, słynna relacja przechwycona przez wektory Word2Vec jest:

wektor(“king”) – wektor(“man”) + wektor(“woman”)≈wektor(“queen”)wektor(“king”) – wektor(“man”) + wektor(“woman”)wektor(“queen”)

To jest możliwe, ponieważ Word2Vec dostosowuje wektory słów podczas treningu, tak aby słowa, które dzielą wspólne konteksty w korpusie, były umiejscowione blisko siebie w przestrzeni wektorowej.

Word2Vec wykorzystuje dwie główne architektury, aby wytworzyć rozproszoną reprezentację słów: Continuous Bag-of-Words (CBOW) i Skip-Gram. CBOW przewiduje słowo docelowe na podstawie jego kontekstu, natomiast Skip-Gram robi odwrotnie, przewidując kontekst na podstawie słowa docelowego. To pozwoliło maszynom zacząć rozumieć użycie słów i ich znaczenie w bardziej nuansowanym sposobie.

Modelowanie sekwencji: RNN i LSTM

W miarę postępu w dziedzinie, uwaga skierowana się ku zrozumieniu sekwencji tekstu, co było kluczowe dla zadań takich jak tłumaczenie maszynowe, podsumowanie tekstu i analiza sentymentu. Sieci neuronowe rekurencyjne (RNN) stały się kamieniem węgielnym tych aplikacji dzięki ich zdolności do radzenia sobie z danymi sekwencyjnymi, utrzymując pewną formę pamięci.

Jednak RNN nie były pozbawione ograniczeń. Miał problemy z długoterminowymi zależnościami z powodu problemu znikającego gradientu, gdzie informacja zostaje utracona na długich sekwencjach, co utrudnia naukę korelacji między odległymi zdarzeniami.

Sieci LSTM (Long Short-Term Memory), wprowadzone przez Seppa Hochreitera i Jürgena Schmidhubera w 1997 roku, rozwiązały ten problem, wprowadzając bardziej zaawansowaną architekturę. Sieci LSTM mają bramki, które kontrolują przepływ informacji: bramkę wejściową, bramkę zapomnienia i bramkę wyjściową. Te bramki decydują, jakie informacje są przechowywane, aktualizowane lub odrzucane, pozwalając sieci na zachowanie długoterminowych zależności i znacznie poprawiając wyniki w szerokim zakresie zadań NLP.

Architektura transformatora

Krajobraz NLP uległ dramatycznej transformacji wraz z wprowadzeniem modelu transformatora w przełomowym artykule “Attention is All You Need” autorstwa Vaswani et al. w 2017 roku. Architektura transformatora odbiega od sekwencyjnego przetwarzania RNN i LSTM, wykorzystując zamiast tego mechanizm zwany “self-attention”, aby ważyć wpływ różnych części danych wejściowych.

Głównym pomysłem transformatora jest to, że może on przetwarzać całe dane wejściowe na raz, zamiast sekwencyjnie. To pozwala na znacznie większą paralelizację i w efekcie znaczne przyspieszenie treningu. Mechanizm self-attention umożliwia modelowi koncentrowanie się na różnych częściach tekstu podczas jego przetwarzania, co jest kluczowe dla zrozumienia kontekstu i relacji między słowami, niezależnie od ich położenia w tekście.

Kodery i dekodery w transformatorach:

W oryginalnym modelu transformatora, opisanym w artykule “Attention is All You Need” autorstwa Vaswani et al., architektura jest podzielona na dwie główne części: koder i dekoder. Obie części składają się z warstw o tej samej ogólnej strukturze, ale służą one różnym celom.

Koder:

  • Rola: Rola kodera polega na przetworzeniu danych wejściowych i utworzeniu reprezentacji, która ujmuje relacje między elementami (takimi jak słowa w zdaniu). Ta część transformatora nie generuje nowych treści; po prostu przekształca dane wejściowe w stan, który dekoder może wykorzystać.
  • Funkcjonalność: Każda warstwa kodera ma mechanizmy self-attention i sieci neuronowe z przekształceniami. Mechanizm self-attention pozwala każdej pozycji w koderze zwrócić uwagę na wszystkie pozycje w poprzedniej warstwie kodera — dzięki temu może nauczyć się kontekstu wokół każdego słowa.
  • Reprezentacje kontekstowe: Wynik kodera jest serią wektorów, które reprezentują sekwencję wejściową w wysokowymiarowej przestrzeni. Wektory te są często nazywane reprezentacjami kontekstowymi, ponieważ nie tylko kodują poszczególne słowa, ale także ich kontekst w zdaniu.

Dekoder:

  • Rola: Rola dekodera polega na generowaniu danych wyjściowych sekwencyjnie, jeden element na raz, na podstawie danych wejściowych otrzymanych z kodera i tego, co zostało dotąd wygenerowane.
  • Funkcjonalność: Warstwy dekodera również zawierają mechanizmy self-attention, ale są one zamaskowane, aby uniemożliwić pozycjom zwrócenie uwagi na późniejsze pozycje. To zapewnia, że przewidywanie dla danej pozycji może zależeć tylko od znanych danych wyjściowych w poprzednich pozycjach. Dodatkowo warstwy dekodera zawierają drugi mechanizm uwagi, który zwraca uwagę na dane wyjściowe kodera, integrując kontekst z danych wejściowych w proces generowania.
  • Możliwości generowania sekwencji: Odnosi się to do zdolności dekodera do generowania sekwencji jeden element na raz, budując na tym, co zostało już wygenerowane. Na przykład podczas generowania tekstu, dekoder przewiduje następne słowo na podstawie kontekstu dostarczonego przez koder i sekwencji słów, które zostały już wygenerowane.

Każda z tych podwarstw w koderze i dekoderze jest kluczowa dla zdolności modelu do radzenia sobie z złożonymi zadaniami NLP. Mechanizm multi-uwagi, w szczególności, pozwala modelowi wybiórczo koncentrować się na różnych częściach sekwencji, zapewniając bogate zrozumienie kontekstu.

Popularne modele wykorzystujące transformator

Po początkowym sukcesie modelu transformatora, nastąpił wybuch nowych modeli zbudowanych na jego architekturze, każdy z własnymi innowacjami i optymalizacjami dla różnych zadań:
BERT (Bidirectional Encoder Representations from Transformers): Wprowadzony przez Google w 2018 roku, BERT rewolucjonizował sposób, w jaki informacje kontekstowe są integrowane z reprezentacjami języka. Przeszkolony na dużym korpusie tekstu z maskowanym modelem języka i przewidywaniem następnego zdania, BERT przechwytuje bogate konteksty dwukierunkowe i osiągnął wyniki na poziomie stanu sztuki w szerokim zakresie zadań NLP.

BERT

BERT

T5 (Text-to-Text Transfer Transformer): Wprowadzony przez Google w 2020 roku, T5 przekształca wszystkie zadania NLP w problem tekst-tekst, wykorzystując ujednolicone formaty tekstowe. To upraszcza proces stosowania modelu do różnych zadań, w tym tłumaczenia, podsumowania i odpowiedzi na pytania.

t5 Architecture

Architektura T5

GPT (Generative Pre-trained Transformer): Opracowany przez OpenAI, seria modeli GPT rozpoczęła się od GPT-1 i osiągnęła GPT-4 w 2023 roku. Modele te są przeszkolone przy użyciu nieprzewodzonego uczenia na ogromnych ilościach danych tekstowych i dostrajane dla różnych zadań. Ich zdolność do generowania spójnych i kontekstowo istotnych tekstów sprawiła, że stały się one bardzo wpływowymi w aplikacjach AI zarówno akademickich, jak i komercyjnych.

GPT

Architektura GPT

Oto bardziej szczegółowe porównanie modeli T5, BERT i GPT w różnych wymiarach:

1. Tokenizacja i słownik

  • BERT: Wykorzystuje tokenizację WordPiece z rozmiarem słownika około 30 000 tokenów.
  • GPT: Wykorzystuje kodowanie BPE (Byte Pair Encoding) z dużym rozmiarem słownika (np. GPT-3 ma rozmiar słownika 175 000).
  • T5: Wykorzystuje tokenizację SentencePiece, która traktuje tekst jako surowy i nie wymaga wstępnie podzielonych słów.

2. Cele przeszkolenia

  • BERT: Model języka z maskowanymi słowami (MLM) i przewidywanie następnego zdania (NSP).
  • GPT: Model języka kauzalnego (CLM), w którym każdy token przewiduje następny token w sekwencji.
  • T5: Wykorzystuje cel denoisingu, w którym losowe fragmenty tekstu są zastępowane tokenem strażnika, a model uczy się odtwarzać oryginalny tekst.

3. Reprezentacja danych wejściowych

  • BERT: Wektory tokenów, segmentów i pozycyjne są łączone, aby reprezentować dane wejściowe.
  • GPT: Wektory tokenów i pozycyjne są łączone (bez wektorów segmentów, ponieważ nie jest przeznaczony do zadań par zdaniowych).
  • T5: Tylko wektory tokenów z dodatkowymi względnymi kodowaniami pozycyjnymi podczas operacji uwagi.

4. Mechanizm uwagi

  • BERT: Wykorzystuje absolutne kodowania pozycyjne i pozwala każdej pozycji zwrócić uwagę na wszystkie pozycje — zarówno w lewo, jak i w prawo (uwaga dwukierunkowa).
  • GPT: Również wykorzystuje absolutne kodowania pozycyjne, ale ogranicza uwagę do poprzednich tokenów (uwaga jednorodna).
  • T5: Implementuje wariant transformatora, który wykorzystuje względne przesunięcia pozycyjne zamiast kodowań pozycyjnych.

5. Architektura modelu

  • BERT: Architektura tylko-kodera z wieloma warstwami bloków transformatora.
  • GPT: Architektura tylko-dekodera, również z wieloma warstwami, ale zaprojektowana dla zadań generatywnych.
  • T5: Architektura koder-dekoder, gdzie zarówno koder, jak i dekoder składają się z warstw transformatora.

6. Podejście do dostrajania

  • BERT: Dostosowuje ostatnie stany ukryte przeszkolonego modelu do zadań downstream z dodatkowymi warstwami wyjściowymi, jeśli jest to konieczne.
  • GPT: Dodaje liniową warstwę na górze transformatora i dostosowuje ją do zadania downstream, wykorzystując ten sam cel modelu języka kauzalnego.
  • T5: Konwertuje wszystkie zadania na format tekst-tekst, gdzie model jest dostosowywany do generowania sekwencji docelowej z sekwencji wejściowej.

7. Dane treningowe i skala

  • BERT: Przeszkolony na BooksCorpus i angielskiej Wikipedii.
  • GPT: GPT-2 i GPT-3 zostały przeszkolone na różnorodnych zbiorach danych wyodrębnionych z internetu, przy czym GPT-3 została przeszkolona na jeszcze większym korpusie zwanym Common Crawl.
  • T5: Przeszkolony na “Colossal Clean Crawled Corpus”, który jest dużym i czystym wariantem Common Crawl.

8. Obsługa kontekstu i dwukierunkowości

  • BERT: Zaprojektowany do zrozumienia kontekstu w obu kierunkach jednocześnie.
  • GPT: Przeszkolony do zrozumienia kontekstu w kierunku do przodu (z lewej do prawej).
  • T5: Może modelować kontekst dwukierunkowy w koderze i jednorodny w dekoderze, odpowiedni dla zadań sekwencja-sekwencja.

9. Dostosowywanie do zadań downstream

  • BERT: Wymaga warstw głowic specyficznych dla zadania i dostosowania do każdego zadania downstream.
  • GPT: Jest generatywny i może być nakierowany na wykonanie zadań z minimalnymi zmianami w swojej strukturze.
  • T5: Traktuje każde zadanie jako problem “tekst-tekst”, co czyni go wewnętrznie elastycznym i dostosowanym do nowych zadań.

10. Interpretowalność i wyjaśnialność

  • BERT: Dwukierunkowa natura zapewnia bogate reprezentacje kontekstowe, ale może być trudniejsza do interpretacji.
  • GPT: Jednorodna uwaga może być prostsza do śledzenia, ale brakuje jej głębi kontekstu dwukierunkowego.
  • T5: Ramy koder-dekoder zapewniają wyraźne rozdzielenie kroków przetwarzania, ale mogą być skomplikowane do analizy z powodu ich generatywnej natury.

Wpływ transformatorów na NLP

Transformatorzy rewolucjonizowały dziedzinę NLP, umożliwiając modelom przetwarzać sekwencje danych równolegle, co dramatycznie zwiększyło szybkość i wydajność szkolenia dużych sieci neuronowych. Wprowadzili mechanizm self-attention, pozwalający modelom ważyć znaczenie każdej części danych wejściowych, niezależnie od odległości w sekwencji. To doprowadziło do bezprecedensowych popraw w szerokim zakresie zadań NLP, w tym tłumaczenia, odpowiedzi na pytania i podsumowania tekstu.

Badania nad granicami tego, co mogą osiągnąć modele oparte na transformatorach, są kontynuowane. GPT-4 i jego współczesne wersje nie tylko są większe, ale także bardziej efektywne i zdolne dzięki postępom w architekturze i metodach treningu. Techniki takie jak few-shot learning, gdzie modele wykonują zadania z minimalnymi przykładami, oraz metody skutecznego transfer learningu są na czele badań.

Modele językowe, takie jak te oparte na transformatorach, uczą się z danych, które mogą zawierać uprzedzenia. Badacze i praktycy aktywnie pracują nad identyfikacją, zrozumieniem i złagodzeniem tych uprzedzeń. Techniki wahają się od starannie wyselekcjonowanych zbiorów danych treningowych po dostosowania po treningu ukierunkowane na sprawiedliwość i neutralność.

Spędziłem ostatnie pięć lat, zanurzając się w fascynującym świecie Machine Learning i Deep Learning. Moja pasja i ekspertyza doprowadziły mnie do udziału w ponad 50 różnych projektach inżynierii oprogramowania, ze szczególnym uwzględnieniem AI/ML. Moja nieustanna ciekawość również skierowała mnie w stronę Natural Language Processing, dziedziny, którą chcę bardziej zbadać.