Przyspiesz z BERT: Modele optymalizacji NLP
Opublikowany: 2022-03-11Przyspieszenie NLP z BERT: światowej klasy wyniki przy 100x mniejszej ilości danych
Podczas budowania modeli klasyfikacji przetwarzania języka naturalnego (NLP) uczenia głębokiego występują dwie podstawowe trudności.
- Zbieranie danych (uzyskanie tysięcy lub milionów sklasyfikowanych punktów danych)
- Architektura i szkolenia głębokiego uczenia
Nasza zdolność do budowania złożonych modeli głębokiego uczenia, które są w stanie zrozumieć złożoność języka, wymagała zwykle lat doświadczenia w tych dziedzinach. Im trudniejszy jest twój problem, im bardziej zróżnicowane są twoje wyniki, tym więcej czasu musisz poświęcić na każdy z tych kroków.
Zbieranie danych jest uciążliwe, czasochłonne, drogie i jest najważniejszym czynnikiem ograniczającym udane projekty NLP. Przygotowywanie danych, budowanie odpornych potoków, dokonywanie wyborów spośród setek potencjalnych opcji przygotowania i „gotowanie modelu” może z łatwością zająć miesiące wysiłku, nawet w przypadku utalentowanych inżynierów zajmujących się uczeniem maszynowym. Wreszcie, szkolenie i optymalizacja modeli głębokiego uczenia wymaga połączenia intuicyjnego zrozumienia, wiedzy technicznej i umiejętności radzenia sobie z problemem.
W tym artykule omówimy
- Trendy w głębokim uczeniu dla NLP: W jaki sposób uczenie transferowe sprawia, że światowej klasy modele stają się open source
- Wprowadzenie do BERT: Wprowadzenie do najpotężniejszego dotychczas „narzędzia” NLP — dwukierunkowych reprezentacji enkoderów z transformatorów (BERT)
- Jak działa BERT i dlaczego zmieni sposób, w jaki firmy realizują projekty NLP
Trendy w uczeniu głębokim
Oczywiście optymalizacja tego procesu rozpoczęła się z coraz większą dokładnością. Sieci LSTM (długo-krótkotrwała pamięć) zrewolucjonizowały wiele zadań NLP, ale były (i są) niesamowicie głodne danych. Optymalizacja i szkolenie tych modeli może zająć dni lub tygodnie na dużych i drogich maszynach. Wreszcie wdrożenie tych dużych modeli do produkcji jest kosztowne i kłopotliwe.
Aby zredukować te czynniki tworzące złożoność, dziedzina widzenia komputerowego od dawna wykorzystuje uczenie transferowe. Transfer learning to możliwość wykorzystania modelu wytrenowanego do innego, ale podobnego zadania w celu przyspieszenia rozwiązania na nowym. Ponowne nauczenie modelu, który potrafi już kategoryzować drzewa, wymaga znacznie mniej wysiłku niż nauczenie nowego modelu, aby rozpoznawał krzewy od zera.
Wyobraź sobie scenariusz, w którym ktoś nigdy nie widział krzaka, ale widział w swoim życiu wiele drzew. O wiele łatwiej byłoby im wyjaśnić, jak wygląda krzak, biorąc pod uwagę to, co wiedzą o drzewach, niż opisywać krzew od podstaw. Transfer learning to bardzo ludzki sposób uczenia się, więc intuicyjnie wydaje się, że zadziała to w zadaniach głębokiego uczenia się.
BERT oznacza, że potrzebujesz mniej danych, mniej czasu na szkolenie i zyskujesz większą wartość biznesową. Jakość produktów NLP, które może zbudować każda firma, stała się światowej klasy.
Wchodzi BERT
BERT korzysta z tak zwanych transformatorów i jest przeznaczony do tworzenia kodowań zdań. Zasadniczo BERT jest modelem językowym opartym na określonym modelu głębokiego uczenia się. Jest specjalnie skonstruowany, aby dać kontekstową, liczbową reprezentację zdania lub ciągu zdań. Ta cyfrowa reprezentacja jest wkładem do płytkiego i nieskomplikowanego modelu. Nie tylko to, ale wyniki są ogólnie lepsze i wymagają ułamka danych wejściowych do zadania, które nie zostało jeszcze rozwiązane.
Wyobraź sobie, że możesz spędzić dzień na zbieraniu danych zamiast roku i być w stanie budować modele na podstawie zestawów danych, których w innym przypadku nigdy nie byłoby wystarczająco dużo, aby stworzyć model LSTM. Liczba zadań NLP, które zostałyby otwarte dla firmy, która wcześniej nie mogła sobie pozwolić na czas potrzebny na rozwój i wymaganą wiedzę, jest oszałamiająca.
Jak działa BERT
W tradycyjnym NLP punktem wyjścia do uczenia modeli są wektory słów. Wektory słów to lista liczb [0,55, 0,24, 0,90, …], które próbują liczbowo przedstawić, co oznacza to słowo. Dzięki reprezentacji numerycznej możemy używać tych słów do trenowania złożonych modeli, a przy dużych wektorach słów możemy osadzić informacje o słowach w naszych modelach.
BERT robi coś podobnego (w rzeczywistości jego punktem wyjścia są wektory słów), ale tworzy numeryczną reprezentację całego zdania wejściowego (lub zdań).
W porównaniu do modeli LSTM, BERT robi wiele rzeczy inaczej.
- Czyta wszystkie słowa na raz, a nie od lewej do prawej lub od prawej do lewej
- 15% słów jest losowo wybieranych do „zamaskowania” (dosłownie zastąpionych przez żeton [MASKA]) w czasie treningu
- 10% losowo wybranych słów pozostaje bez zmian
- 10% zamaskowanych słów jest zastępowanych losowymi słowami
- (a) i (b) współpracują ze sobą, aby zmusić model do przewidywania każdego słowa w zdaniu (modele są leniwe)
- BERT następnie próbuje przewidzieć wszystkie słowa w zdaniu, a tylko zamaskowane słowa przyczyniają się do funkcji utraty - łącznie z niezmienionymi i losowo zastępowanymi słowami
- Model dopracowany pod kątem przewidywania następnego zdania. W tym kroku model próbuje określić, czy dane zdanie jest kolejnym zdaniem w tekście
Konwergencja jest powolna, a szkolenie BERT zajmuje dużo czasu. Jednak znacznie lepiej uczy się relacji kontekstowych w tekście. Wektory słów są bardzo płytkimi reprezentacjami, które ograniczają złożoność, jaką mogą modelować — BERT nie ma tego ograniczenia.

Większość firm może korzystać ze wstępnie wytrenowanych modeli, które wykorzystywały wiele procesorów graficznych, a przeszkolenie ich aplikacji zajęło kilka dni. Istnieje kilka przypadków, w których istniejące modele BERT nie mogą być używane w miejscu lub dostosowywane do konkretnego przypadku użycia. BERT umożliwia zespołowi dziesięciokrotne przyspieszenie rozwiązań. Można przejść do identyfikacji rozwiązania biznesowego, do zbudowania dowodu koncepcji, a ostatecznie do przeniesienia tej koncepcji na produkcję w ułamku czasu.
Wdrażanie BERT i porównywanie wartości biznesowej
Ponieważ ten artykuł koncentruje się na biznesowym i inżynieryjnym zastosowaniu budowania prawdziwego produktu, stworzymy i przeszkolimy dwa modele, aby lepiej zrozumieć wartość porównawczą.
- BERT: Najprostszy potok BERT. Przetwarzamy tekst w standardowy sposób, tworzymy kodowania zdań BERT i wprowadzamy te kodowania zdań do płytkiej sieci neuronowej
- LSTM: Standardowe osadzanie - kodowanie - uczestnictwo - przewidywanie architektury (na zdjęciu powyżej)
Zadanie? Przewidywanie pochodzenia filmów na podstawie ich fabuły z IMDB. Nasz zbiór danych obejmuje filmy z amerykańskich, australijskich, brytyjskich, kanadyjskich, japońskich, chińskich, południowokoreańskich i rosyjskich, a także szesnaście innych filmów o łącznie 24 pochodzeniu. Mamy łącznie prawie 35 000 przykładów szkoleń.
Oto przykładowy fragment z fabuły.
Tysiące lat temu Steppenwolf i jego legiony Parademonów próbują przejąć Ziemię za pomocą połączonych energii trzech Mother Boxów. Są udaremniani przez zjednoczoną armię, w skład której wchodzą bogowie olimpijscy, Amazonki, Atlantydzi, ludzkość i Korpus Zielonej Latarni. Po odparciu armii Steppenwolfa, Mother Boxy zostają oddzielone i ukryte w miejscach na planecie. W teraźniejszości ludzkość opłakuje Supermana, którego śmierć powoduje reaktywację Mother Boxes i powrót Steppenwolfa na Ziemię, aby odzyskać łaskę swojego pana, Darkseida. Steppenwolf ma na celu zebranie artefaktów w celu utworzenia „Jedności”, która zniszczy ekologię Ziemi i terraformuje ją na wzór…
Jeśli nie zgadłeś, to jest fabuła Ligi Sprawiedliwości — amerykańskiego filmu.
Wyniki
Przeszkoliliśmy różnorodny zestaw parametrów, aby zrozumieć, w jaki sposób wyniki reagują na różne ilości danych i rozmiary modeli. Jak powiedzieliśmy, najważniejszą wartością dodaną BERT jest potrzeba znacznie mniejszej ilości danych.
W przypadku modelu LSTM wytrenowaliśmy największy model, jaki mogliśmy na naszym GPU, i zmieniliśmy rozmiar słownictwa oraz długość słowa, aby znaleźć model o najlepszej wydajności. W przypadku modelu BERT nie mieliśmy nic więcej niż pojedynczą warstwę.
Poprawiliśmy nasz zestaw testowy we wszystkich tych próbkach, więc konsekwentnie oceniamy ten sam zestaw treningowy.
W tym zadaniu model wytrenowany przy użyciu kodowania zdań BERT osiąga imponujący wynik F1 wynoszący 0,84 po zaledwie 1000 próbkach. Sieć LSTM nigdy nie przekracza 0,60. Jeszcze bardziej imponujące, szkolenie modeli BERT zajęło średnio 1/20 czasu niż przygotowanie modeli LSTM.
Wniosek
Według dowolnej metryki wyniki te wskazują na rewolucję w NLP. Wykorzystując 100x mniej danych i 20x mniej czasu treningu osiągnęliśmy wyniki na światowym poziomie. Możliwość trenowania wysokiej jakości modeli w ciągu sekund lub minut zamiast godzin lub dni otwiera NLP w obszarach, w których wcześniej nie było na to stać.
BERT ma o wiele więcej zastosowań niż ten w tym poście. Istnieją modele wielojęzyczne. Może być używany do rozwiązywania wielu różnych zadań NLP, indywidualnie, jak w tym poście, lub jednocześnie przy użyciu wielu wyjść. Kodowanie zdań BERT ma stać się podstawą wielu przyszłych projektów NLP.
Kod tego posta jest dostępny na Github. Zachęcam również czytelników do sprawdzenia Bert-as-a-service, który był podstawą budowania kodowania zdań BERT dla tego postu.