plenLiteracka Sp. z o.o.    |   Olsztyn, Wilczyńskiego 25e/216
+48 883 00 88 22

Generowanie tekstu na podstawie kategorii literackiej oraz słów kluczowych z wykorzystaniem modelu GPT-2

W części pierwszej wpisu (tutaj link) przedstawiliśmy pokrótce model Transformer – jego architekturę oraz ideę związaną z działaniem. Jak wspomnieliśmy stanowił on rewolucję w NLP, zaś jego elementy wykorzystywane są we współczesnych modelach językowych takich jak GPT oraz BERT. W tej części zajmiemy się już konkretnym modelem językowym, jakim jest GPT-2 oraz przedstawimy, w jaki sposób wykorzystujemy go w Literackiej do generowania tekstów.

GPT-2 jest kolejnym po BERT-cie opisywanym przez nas modelem językowym. Został opracowany przez zespół badaczy z OpenAI. Jako ciekawostkę warto wspomnieć, że jednym z założycieli tej organizacji jest nie kto inny jak Elon Musk, współzałożyciel przedsiębiorstw PayPal, SpaceX, Tesla, Neuralink i Boring Company. Jest to model generatywny dla języka naturalnego. Jego nazwa pochodzi od ‘Genarative Pre-Training for Language Understanding’. Podobnie jak BERT jego architektura oparta jest na elementach modelu Transformer. Poniżej przypomnienie uproszczonego schematu działania Transformera:

Architektura BERT opierała się na połączonych szeregowo encoderach  modelu Transformer. W przypadku GPT są to szeregowo połączone decodery. Ilustruje to poniższy rysunek:

W zależności od liczby warstw decoderowych wyróżniamy cztery warianty modelu GPT-2. I tak model “Small” składa się z 12 warstw, a co za tym idzie zawiera 117 milionów trenowalnych parametrów. “Extra Large” zaś to model 48 warstwowy posiadający ponad 1,5 miliarda parametrów do wytrenowania. W przypadku rozpatrywanego przez nas zagadnienia wystarczający okazał się model 12-to warstwowy. Warianty poszczególnych modeli w zależności od ich wielkości są widoczne poniżej:

Zasadniczą różnicą względem modelu BERT jest przyjmowanie przez model GPT pojedynczych tokenów, nie zaś całych sekwencji w jednym czasie. Pre-trening modelu opiera się również na uczeniu nienadzorowanym i wymaga do tego dużych korpusów tekstowych. Finalnie model wykorzystywany jest do generowania tekstu.

“Surowy” model GPT generuje dalszy tekst na podstawie otrzymanych na wejściu zdań. W naszym przypadku założeniem było generowanie notek opisujących książkę na podstawie jej kategorii literackiej oraz słów kluczowych. Takie podejście w znacznym stopniu zwiększa kontrolę nad otrzymanym na wyjściu wynikiem. Słowa kluczowe stanowią w naszym przypadku wyselekcjonowane z utworu NER-y. Aby osiągnąć taki cel należało wykonać fine-tuning pre-trenowanego modelu GPT-2 dla języka polskiego, czyli dostroić model do tak sprecyzowanego zadania. Z dostrajaniem łączy się oczywiście przygotowanie odpowiedniego datasetu. W naszym przypadku było to ponad 500 tys. fragmentów książek zawierających od 400 do 600 słów wraz z przypisanymi im kategoriami literackimi (biografia, fantastyka, historyczna, horror, kryminał, obyczajowa, podróżnicza, reportaż, romans) oraz wyodrębnionymi z nich NER-ami. Z 12 warstw pre-trenowanego modelu 6 dolnych zamroziliśmy i na przygotowanym datasecie trenowaliśmy pozostałe 6 warstw. Pre-trenowany model sam w sobie ma już dużo wiedzy o języku, a trenowanie jedynie połowy parametrów znacznie zredukowało czas treningu. Po otrzymaniu takiej dawki danych model jest w stanie generować tekst na podstawie słów kluczowych oraz kategorii utworu

Trochę się pobawiliśmy, próbując z tekstów wygenerowanych przez sztuczną inteligencję wyczytać przyszłość. W październiku będziemy na Targach Książki we Frankfurcie i w związku z tym daliśmy AI następujące słowa kluczowe: targi, książki, Frankfurt, prezentacja, naukowiec, gość, badania, pasje, stoisko, hotel, pokój, droga, recepcjonista, ludzie. Poprosiliśmy o tekst z kategorii “reportaż”. I oto, co sztuczna inteligencja na tej podstawie wygenerowała:

  • „Jeśli chodzi o targi książki we Frankfurcie nad Menem, mogę śmiało powiedzieć, że po raz pierwszy miałem okazję zetknąć się z czymś tak odmiennym od wszystkiego, co do tej pory znałem. Jestem przekonany, że moja prezentacja spotka się z bardzo pozytywnym odbiorem zarówno wśród zagranicznych gości, jak i wśród polskich czytelników. To wszystko sprawia, że czuję się spełniony jako naukowiec zajmujący się badaniami literaturoznawczymi”.
  • „Na szczęście okazało się, że można tam spotkać wielu ciekawych ludzi – takich, którzy chętnie dzielą się swoimi pasjami czy zainteresowaniami. W związku z tym postanowiłem skorzystać z okazji i podzielić się ze światem moimi ulubionymi tematami książkowymi”.
  • „Okazało się, że na stoisku z książkami nie było nikogo oprócz mnie. Wstałem i ruszyłem w dalszą drogę. Gdy dotarłem do hotelu, okazało się, że hotel jest już zamknięty. Poprosiłem recepcjonistę, żeby dał mi znać, kiedy będę miał wolny pokój”. 

Autor tekstu: Sebastian Jankowski

BIBLIOGRAFIA:

[1] Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, Ilya Sutskever. Language Models are Unsupervised Multitask Learners, (2019).

[2] Jay Alammar. The Illustrated GPT-2 (Visualizing Transformer Language Models), http://jalammar.github.io/illustrated-transformer/, (2019).

[3] Ivan Lai. Conditional Text Generation by Fine Tuning GPT-2, https://towardsdatascience.com/conditional-text-generation-by-fine-tuning-gpt-2-11c1a9fc639d, (2021).

Related Posts

Leave a Reply