W dzisiejszym (kolejnym z serii) artykule dotyczącym dużych modeli językowych przedstawimy wam ich historię. Jest ona istotna z tego powodu, że pozwala lepiej zrozumieć, dlaczego dzisiejsze modele językowe działają tak, a nie inaczej. Warto w tym miejscu zaznaczyć, że za sukcesem teraźniejszych modeli stoją dziesiątki lat badań i nie byłyby one dostępne teraz, gdyby nie ich poprzednicy przedstawieni na poniższej osi czasu:

N-gramy
Początki idei modeli językowych sięgają lat 40. ubiegłego wieku – wtedy powstały N-gramy. Ich działanie polega na tym, że mając duży zbiór tekstów, można policzyć występowanie poszczególnych słów w danym kontekście – przy czym w tym przypadku kontekst to słowo (lub słowa) występujące przed innym słowem. Przykładowo, można policzyć, ile razy w danym zbiorze tekstów słowo “sałatkę” występuje po słowie “jem”. Następnie oblicza się prawdopodobieństwo wystąpienia tego słowa w kontekście poprzez podzielenie ilości wystąpień całej frazy przez ilość wystąpień słowa:
Prawdopodobieństwo = ilość wystąpień “jem sałatkę” / ilość wystąpień “sałatkę”
Tak można postąpić z każdą parą wyrazów w zbiorze tekstów. Podany przykład to 2-gram, ponieważ w danej frazie wystąpiły dwa słowa. N-gram jest to zatem fraza składająca się z n słów. Chcąc rozszerzyć kontekst, aby uzyskać lepsze wyniki, należy użyć 3-gramów, 4-gramów, i tak dalej. Jednak dla języka polskiego już 3-gramy były wyzwaniem w tamtych czasach, ponieważ żeby stworzyć wiarygodny model na ich podstawie potrzebne były duże zasoby. Zatem zaletą N-gramów jest ich prostota, ale wadą jest ich skuteczność – N-gramy nie dawały zadowalających wyników w zadaniach związanych z przetwarzaniem języka naturalnego.
Ukryte Modele Markowa
Kolejnym zagadnieniem, który miał wpływ na dzisiejsze modele językowe, są Ukryte Modele Markowa. Zaczęły być one wykorzystywane w przetwarzaniu języka w latach 80.-90. XX wieku. Są to modele statystyczne używane do analizy danych sekwencyjnych, nic więc dziwnego, że znajdują zastosowanie w analizie tekstów.
Podstawą Ukrytych Modeli Markowa jest własność Markowa. To teoria zakładająca, że prawdopodobieństwa wystąpienia przyszłych stanów danego procesu są zależne tylko od jego aktualnego stanu. Ściśle powiązane z tą teorią są łańcuchy Markowa.
Łańcuch Markowa to model, który pokazuje proces przejścia z jednego stanu w drugi zgodnie z wyżej opisaną własnością.

Powyższy diagram pokazuje, jak może wyglądać łańcuch Markowa. “P” oznacza prawdopodobieństwo, a S1, S2, …, S6 oznaczają kolejne stany.
Zastosowanie łańcucha Markowa w przetwarzaniu języka naturalnego polega na tym, że zakładamy, że każde słowo w zdaniu to stan, a prawdopodobieństwo występowania słów po sobie może być obliczone na podstawie korpusu.
Przykładowo, prawdopodobieństwo wystąpienia wyrazu (stanu) “Sącz” po wyrazie (stanie) “Nowy” jest wyższe, niż prawdopodobieństwo wystąpienia wyrazu (stanu) “Kraków” po wyrazie (stanie) “Nowy”.
Ukryte Modele Markowa to rozszerzenie łańcucha Markowa, gdzie stany są ukryte, a dane są analizowane przez obserwację. W przetwarzaniu języka naturalnego Ukryte Modele Markowa mają zastosowanie przykładowo w przetwarzaniu mowy na tekst, gdzie w danym nagraniu model szuka fonemów (najmniejszych jednostek mowy) i porównuje je z innymi fonemami w nagraniach w swojej bazie danych.
Rekurencyjne sieci neuronowe (RNNs – Recurrent Neural Networks)
Kolejnym pojęciem stosowanym w przetwarzaniu języka naturalnego od lat 90. XX wieku są rekurencyjne sieci neuronowe (RNN, RNNs). Jest to struktura używana w przetwarzaniu danych sekwencyjnych. Głównym założeniem jest to, że wcześniejsze dane mają wpływ na późniejsze dane.
Rekurencyjne sieci neuronowe są odpowiednie dla przetwarzania danych sekwencyjnych dzięki temu, że są one zapętlane – pojedyncze przejście danych przez sieć z wykorzystaniem jednego tokenu może używać wyników z poprzedniego przejścia.
Przypomnijmy, czym różnią się rekurencyjne sieci neuronowe od stosowanych w ostatnich latach transformerów (poniższy diagram pochodzi z artykułu “Jak działają duże modele językowe?”):

Jak widać, główną różnicą jest to, że transformer analizuje od razu całe zdanie, a rekurencyjne sieci neuronowe analizują słowo po słowie, w związku z czym transformery są dużo szybsze w przetwarzaniu danych.
“Attention is all you need” – dzisiejsze modele językowe
Punktem zwrotnym w rozwoju modeli językowych była praca zespołu Google “Attention is all you need” z 2017 roku i ich rodzina modeli BERT. Wprowadzili oni pojęcie transformerów składających się z enkoderów i dekoderów (przy czym dzisiejsze modele wykorzystują zazwyczaj jedynie blok dekodera). Głównymi elementami dekoderów są atencje i sieci neuronowe.

Powyższy diagram pochodzi ze wspomnianej pracy “Attention is all you need” i przedstawia architekturę transformera. Działanie modeli opartych na tej teorii przedstawiliśmy już w tym artykule, więc jeśli chcecie o tym poczytać, to zapraszamy.
Rozwój modeli językowych na przestrzeni ostatnich 5 lat
Można powiedzieć, że po publikacji pracy “Attention is all you need” nastąpiła wręcz eksplozja nowych modeli opartych na architekturze tranformerowej. Poniższy diagram może wam przybliżyć skalę rozwoju tej dziedziny (“Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond”):

Podsumowując, dziedzina modeli językowych przez ostatnie 5 lat gwałtownie się rozwinęła, lecz jej początki sięgają już lat 40. zeszłego wieku. Poprzednie osiągnięcia w dziedzinie przetwarzania języka naturalnego niewątpliwie miały wpływ na to, jak dzisiaj działają modele, dlatego warto znać ich historię, żeby rozumieć działanie poszczególnych komponentów.
Nadal chcecie się dowiedzieć więcej o modelach językowych? Zapraszamy do zapoznania się z innymi artykułami z naszej serii i do obejrzenia wykładu na ten temat przeprowadzonego przez naszego specjalistę!
Opublikowaliśmy też własny model językowy – wszystkie informacje na jego temat dostępne są tutaj.
Jeśli chcielibyście stworzyć swój własny, dedykowany model językowy, możecie się zgłosić do nas, z przyjemnością wam pomożemy!
Post a Comment