Transformator Tekst-To-Tekst T5
W ostatnich latach uczenie transferowe wywołało nową falę światowych wyników w przetwarzaniu języka naturalnego (NLP). Skuteczność tego rodzaju uczenia wynika z wstępnego szkolenia modelu na dużej ilości dostępnych, nieoznakowanych tekstowych danych z zadaniem samo-nadzorowanym, takim jak modelowanie języka czy uzupełnianie brakujących słów. Następnie model można dostrajać do mniejszych zbiorów danych z etykietami, co często prowadzi do znacznie lepszych rezultatów niż szkolenie tylko na danych z etykietami.
Ostatni sukces uczenia transferowego rozpoczął się w 2018 roku dzięki GPT, ULMFiT, ELMo i BERT, a w 2019 roku pojawiło się wiele nowych metod, takich jak XLNet, RoBERTa, ALBERT, Reformer i MT-DNN. Szybki postęp w tej dziedzinie utrudnia ocenę, które usprawnienia są najbardziej znaczące i jak skuteczne są w połączeniu.
W „Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer” prezentujemy szerokie empiryczne badanie, aby określić, które techniki uczenia transferowego działają najlepiej, i zastosowaliśmy te spostrzeżenia w skali, tworząc nowy model, który nazywamy Transformator Tekst-To-Tekst T5 (T5). Wprowadzamy również nowy, otwarty zbiór danych do wstępnego szkolenia, zwany Colossal Clean Crawled Corpus (C4). Model T5, wstępnie szkolony na C4, osiąga światowe wyniki w wielu benchmarkach NLP i jest wystarczająco elastyczny, aby można go było dostosować do różnych ważnych zadań końcowych.
Aby nasze wyniki były łatwe do rozszerzenia i powielenia, udostępniamy kod i wstępnie wytrenowane modele wraz z łatwym w użyciu Colab Notebookiem, aby ułatwić rozpoczęcie pracy.
Wspólny framework tekst-do-tekstu
Z T5 proponujemy przeprojektowanie wszystkich zadań NLP w ujednolicony format tekst-do-tekstu, gdzie wejście i wyjście to zawsze ciągi tekstowe, w przeciwieństwie do modeli w stylu BERT, które mogą zwracać tylko etykietę klasy lub zakres wejściowych danych. Nasz framework tekst-do-tekstu pozwala używać tego samego modelu, funkcji straty i hiperparametrów w każdym zadaniu NLP, włączając tłumaczenie maszynowe, podsumowywanie dokumentów, odpowiadanie na pytania i zadania klasyfikacyjne (np. analizę nastrojów). Możemy nawet zastosować T5 do zadań regresji, szkoląc go do przewidywania reprezentacji tekstowej liczby zamiast samej liczby.
Duży zbiór danych do wstępnego szkolenia (C4)
Ważnym składnikiem uczenia transferowego jest zbiór danych bez etykiet używany do wstępnego szkolenia. Aby dokładnie zmierzyć efekt zwiększania ilości wstępnego szkolenia, potrzebujemy zbioru danych, który jest nie tylko wysokiej jakości i zróżnicowany, ale także ogromny. Istniejące zbiory danych do wstępnego szkolenia nie zawsze spełniają wszystkie te kryteria - na przykład tekst z Wikipedii jest wysokiej jakości, ale ma jednolity styl i jest stosunkowo mały dla naszych potrzeb, podczas gdy dane ze skrobów Common Crawl są ogromne i bardzo zróżnicowane, ale często mają niską jakość. Aby spełnić te wymagania, opracowaliśmy Colossal Clean Crawled Corpus (C4), oczyszczoną wersję Common Crawl, która jest dwa rzędy wielkości większa niż Wikipedia. Nasz proces oczyszczania obejmował usuwanie duplikatów, odrzucanie niepełnych zdań oraz usuwanie obraźliwych lub hałaśliwych treści. To filtrowanie doprowadziło do lepszych wyników w zadaniach końcowych, a dodatkowy rozmiar pozwolił zwiększyć rozmiar modelu bez ryzyka przeuczenia podczas wstępnego szkolenia. C4 jest dostępny za pośrednictwem TensorFlow Datasets.
Systematyczne badanie metodologii uczenia transferowego
Z frameworkiem tekst-do-tekstu T5 i nowym zbiorem danych do wstępnego szkolenia (C4) przeprowadziliśmy przegląd szerokiego spektrum idei i metod wprowadzonych w uczeniu transferowym w NLP w ciągu ostatnich kilku lat. Szczegóły tego badania można znaleźć w naszym artykule, w tym eksperymenty dotyczące: architektury modeli, gdzie stwierdziliśmy, że modele z enkoderem i dekoderem zazwyczaj przewyższają „modele z samym dekoderem” jako językowe modele; celów wstępnego szkolenia, gdzie potwierdziliśmy, że cele w stylu wypełniania luk i usuwania szumów (gdzie model jest szkolony do odzyskiwania brakujących słów w danych wejściowych) działają najlepiej, a najważniejszym czynnikiem jest koszt obliczeniowy; zbiorów danych bez etykiet, gdzie pokazaliśmy, że szkolenie na danych z domeny może być korzystne, ale szkolenie na mniejszych zbiorach danych może prowadzić do szkodliwego przeuczenia; strategii szkolenia, gdzie odkryliśmy, że uczenie wielozadaniowe może być bliskie konkurencyjności z podejściem wstępnego szkolenia, a następnie dostrajania, ale wymaga starannego wyboru, jak często model jest szkolony w każdym zadaniu; oraz skalowania, gdzie porównujemy skalowanie rozmiaru modelu, czasu szkolenia i liczby modeli złożonych, aby określić, jak najlepiej wykorzystać stałą moc obliczeniową.
Wnioski + Skalowanie = Światowe wyniki
Aby zbadać aktualne granice uczenia transferowego dla NLP, przeprowadziliśmy końcowy zestaw eksperymentów, w których połączyliśmy wszystkie najlepsze metody z naszego systematycznego badania i zwiększyliśmy nasze podejście za pomocą akceleratorów Google Cloud TPU. Nasz największy model miał 11 miliardów parametrów i osiągnął światowe wyniki w benchmarkach GLUE, SuperGLUE, SQuAD i CNN/Daily Mail. Jednym z szczególnie ekscytujących wyników było osiągnięcie wyniku zbliżonego do ludzkiego w benchmarku SuperGLUE dla rozumienia języka naturalnego, który został specjalnie zaprojektowany, aby być trudnym dla modeli uczenia maszynowego, ale łatwym dla ludzi.
Rozszerzenia
T5 jest wystarczająco elastyczny, aby być łatwo modyfikowanym do zastosowania w wielu zadaniach poza tymi rozważanymi w naszym artykule, często z dużym sukcesem. Poniżej zastosujemy T5 do dwóch nowych zadań: odpowiadania na pytania zamkniętej książki i generowania tekstu z lukami o zmiennym rozmiarze.
Odpowiadanie na pytania zamkniętej książki
Jednym ze sposobów korzystania z frameworku tekst-do-tekstu jest w przypadku problemów zrozumienia czytanego, gdzie model otrzymuje jakiś kontekst wraz z pytaniem i jest szkolony do znalezienia odpowiedzi na pytanie z tego kontekstu. Na przykład można podać modelowi tekst z artykułu Wikipedii o Huraganie Connie wraz z pytaniem „Kiedy wystąpił Huragan Connie?”. Model zostałby wtedy szkolony do znalezienia daty „3 sierpnia 1955 roku” w tym artykule. W rzeczywistości osiągnęliśmy światowe wyniki w Stanford Question Answering Dataset (SQuAD) z tym podejściem. W naszym demonstracyjnym Colab i kolejnym artykule przeszkoliliśmy T5 do odpowiadania na pytania z wiedzy ogólnej w trudniejszym ustawieniu „zamkniętej książki”, bez dostępu do żadnej wiedzy zewnętrznej. Innymi słowy, aby odpowiedzieć na pytanie, T5 może używać tylko wiedzy przechowywanej w jego parametrach, którą zdobył podczas niekontrolowanego wstępnego szkolenia. Można to uważać za ograniczoną formę odpowiadania na pytania z domeny otwartej. Podczas wstępnego szkolenia T5 uczy się wypełniać usunięte fragmenty tekstu (oznaczone jako <M>) z dokumentów w C4. Aby zastosować T5 do odpowiadania na pytania zamkniętej książki, dostrajamy go do odpowiadania na pytania bez wprowadzania żadnych dodatkowych informacji lub kontekstu. To zmusza T5 do odpowiadania na pytania na podstawie „wiedzy”, którą internalizował podczas wstępnego szkolenia. T5 jest zaskakująco dobry w tym zadaniu. Pełny model o 11 miliardach parametrów produkuje dokładny tekst odpowiedzi w 50,1%, 37,4% i 34,5% przypadków odpowiednio w TriviaQA, WebQuestions i Natural Questions. Żeby umieścić te wyniki w perspektywie, zespół T5 zmierzył się z modelem w konkursie wiedzy w pubie i przegrał! Spróbuj sam, klikając animację poniżej.
Generowanie tekstu z lukami o zmiennym rozmiarze
Duże modele językowe takie jak GPT-2 świetnie radzą sobie z generowaniem bardzo realistycznie wyglądającego tekstu, ponieważ są szkolone do przewidywania, jakie słowa pojawią się po wejściowym prompt. Doprowadziło to do wielu kreatywnych aplikacji, takich jak Talk To Transformer i tekstową grę AI Dungeon. Cel wstępnego szkolenia używany przez T5 jest bardziej zbliżony do zadania wypełniania luk, gdzie model przewiduje brakujące słowa w uszkodzonym fragmencie tekstu. Ten cel jest uogólnieniem zadania kontynuacji, ponieważ „luki” mogą pojawić się również na końcu tekstu. Aby wykorzystać ten cel, stworzyliśmy nowe zadanie końcowe o nazwie sized fill-in-the-blank, gdzie model jest proszony o zastąpienie luki określoną liczbą słów. Na przykład, jeśli damy modelowi wejście „Lubię jeść masło orzechowe i 4 kanapki”, przeszkolimy go, aby wypełnił lukę około 4 słowami. Dostrajaliśmy T5 do tego zadania przy użyciu C4 i stwierdziliśmy, że otrzymane wyniki są dość realistyczne. Szczególnie interesujące jest zobaczyć, jak model dostosowuje swoje przewidywania na podstawie żądanej wielkości dla brakującego tekstu. Na przykład, przy wejściu „Kocham masło orzechowe i N kanapki”, wyniki wyglądają tak:
N = 1 Kocham masło orzechowe i dżemowe kanapki. N = 2 N = 4 N = 8 N = 16 N = 32 N = 64 N = 512
Wnioski
Jesteśmy podekscytowani, aby zobaczyć, jak ludzie wykorzystują nasze wyniki, kod i wstępnie wytrenowane modele do rozpoczęcia swoich projektów. Sprawdź Colab Notebook, aby rozpocząć, i podziel się z nami, jak go używasz na Twitterze!
Podziękowania
Ta praca była wspólnym wysiłkiem obejmującym Colina Raffela, Noama Shazeera, Adama Robertsa, Katherine Lee, Sharan Narang, Michaela Matenę, Yanqi Zhou, Wei Li, Petera J. Liu, Karishmę Malkana, Noaha Fiedela i Monikę Dinculescu.