Rozmowy online są wszechobecne we współczesnym życiu, obejmując branże od gier wideo po telekomunikację. Doprowadziło to do wykładniczego wzrostu ilości danych dotyczących rozmów online, co pomogło w opracowaniu najnowocześniejszych systemów przetwarzania języka naturalnego (NLP), takich jak chatboty i modele generowania języka naturalnego (NLG). Z biegiem czasu ewoluowały również różne techniki NLP do analizy tekstu. Wymaga to posiadania w pełni zarządzanej usługi, którą można zintegrować z aplikacjami za pomocą wywołań interfejsu API bez konieczności posiadania rozległej wiedzy na temat uczenia maszynowego (ML). AWS oferuje przeszkolone usługi AWS AI, takie jak Amazon Comprehend, który może skutecznie obsługiwać przypadki użycia NLP obejmujące klasyfikację, podsumowywanie tekstu, rozpoznawanie jednostek i nie tylko, aby uzyskać szczegółowe informacje z tekstu.
Ponadto rozmowy online doprowadziły do rozpowszechnionego zjawiska nietradycyjnego używania języka. Tradycyjne techniki NLP często słabo radzą sobie z tymi danymi tekstowymi ze względu na stale ewoluujące i specyficzne dla domeny słownictwo, które istnieją na różnych platformach, a także znaczne odchylenia leksykalne słów od poprawnego języka angielskiego, przypadkowo lub celowo jako forma ataku przeciwnika .
W tym poście opisujemy wiele podejść ML do klasyfikacji tekstu rozmów online za pomocą narzędzi i usług dostępnych w AWS.
Wymagania wstępne
Zanim zagłębisz się w ten przypadek użycia, spełnij następujące wymagania wstępne:
- Skonfiguruj Konto AWS i utworzyć użytkownika uprawnień.
- Skonfiguruj AWS CLI . i Pakiety SDK AWS.
- (Opcjonalnie) Skonfiguruj swój Środowisko Cloud9 IDE.
Dataset
Do tego postu używamy Jigsaw niezamierzone odchylenie w zbiorze danych klasyfikacji toksyczności, wzorzec dla specyficznego problemu klasyfikacji toksyczności w rozmowach online. Zestaw danych zawiera etykiety toksyczności, a także kilka atrybutów podgrup, takich jak nieprzyzwoitość, atak na tożsamość, zniewaga, groźba i jawność seksualna. Etykiety są podawane jako wartości ułamkowe, które reprezentują odsetek ludzkich adnotatorów, którzy uwierzyli, że atrybut został zastosowany do danego fragmentu tekstu, co rzadko jest jednomyślne. Aby wygenerować etykiety binarne (na przykład toksyczne lub nietoksyczne), do wartości ułamkowych stosowany jest próg 0.5, a komentarze z wartościami większymi niż próg są traktowane jako klasa pozytywna dla tej etykiety.
Umieszczanie podsłów i RNN
W naszym pierwszym podejściu do modelowania używamy kombinacji osadzania podsłów i rekurencyjnych sieci neuronowych (RNN) do uczenia modeli klasyfikacji tekstu. Osadzanie podsłów zostało wprowadzone przez Bojanowski i in. w 2017 jako ulepszenie poprzednich metod osadzania na poziomie słowa. Tradycyjne modele przeskoków Word2Vec są wytrenowane w celu uczenia się statycznej reprezentacji wektorowej słowa docelowego, które optymalnie przewiduje kontekst tego słowa. Z drugiej strony modele podsłów przedstawiają każde słowo docelowe jako worek n-gramów znaków, które składają się na słowo, gdzie n-gram składa się z zestawu n kolejnych znaków. Ta metoda pozwala modelowi osadzania lepiej reprezentować podstawową morfologię słów pokrewnych w korpusie, a także obliczanie osadzeń dla nowych słów spoza słownika (OOV). Jest to szczególnie ważne w kontekście rozmów online, przestrzeni problemowej, w której użytkownicy często błędnie zapisują słowa (czasem celowo, aby uniknąć wykrycia), a także używają unikalnego, stale ewoluującego słownictwa, które może nie zostać uchwycone przez ogólny korpus szkoleniowy.
Amazon Sage Maker ułatwia trenowanie i optymalizację nienadzorowanego modelu osadzania podwyrazów na własnym korpusie danych tekstowych specyficznych dla domeny z wbudowanym Algorytm BlazingText. Możemy również pobrać istniejące modele ogólnego przeznaczenia wytrenowane na dużych zbiorach danych tekstu online, takie jak: Modele w języku angielskim dostępne bezpośrednio z fastText. Z instancji notatnika SageMaker po prostu uruchom następujące polecenie, aby pobrać wstępnie wytrenowany model fastText:
Niezależnie od tego, czy wyszkoliłeś własne osadzania za pomocą BlazingText, czy pobrałeś wstępnie wytrenowany model, wynikiem jest spakowany plik binarny modelu, którego możesz użyć z biblioteką gensim, aby osadzić dane słowo docelowe jako wektor na podstawie jego składowych podsłów:
Po wstępnym przetworzeniu danego segmentu tekstu możemy użyć tego podejścia do wygenerowania reprezentacji wektorowej dla każdego ze słów składowych (oddzielonej spacjami). Następnie wykorzystujemy SageMaker i platformę głębokiego uczenia, taką jak PyTorch, do trenowania dostosowanej RNN z binarnym lub wieloetykietowym celem klasyfikacji, aby przewidzieć, czy tekst jest toksyczny, czy nie, oraz konkretny podtyp toksyczności na podstawie oznaczonych przykładów szkoleniowych.
Aby przesłać wstępnie przetworzony tekst do Usługa Amazon Simple Storage (Amazon S3), użyj następującego kodu:
Aby zainicjować skalowalne, wieloprocesorowe uczenie modeli za pomocą programu SageMaker, wprowadź następujący kod:
W ciągu , definiujemy zestaw danych PyTorch, który jest używany przez train.py
przygotowanie danych tekstowych do treningu i oceny modelu:
Zauważ, że ten kod przewiduje, że vectors.zip
plik zawierający osadzenia fastText lub BlazingText będzie przechowywany w .
Dodatkowo można łatwo wdrożyć wstępnie wytrenowane modele fastText na punktach końcowych programu SageMaker na żywo, aby na bieżąco obliczać wektory osadzania do wykorzystania w odpowiednich zadaniach na poziomie słów. Zobacz następujące Przykład GitHub by uzyskać więcej szczegółów.
Transformatory z przytuloną twarzą
W naszym drugim podejściu do modelowania przechodzimy do wykorzystania transformatorów, przedstawionych w artykule Uwaga jest wszystkim, czego potrzebujesz. Transformatory to modele uczenia głębokiego zaprojektowane w celu celowego unikania pułapek RNN, polegając na mechanizmie samouważności, który rysuje globalne zależności między wejściem a wyjściem. Architektura modelu Transformer pozwala na znacznie lepszą równoległość i może osiągnąć wysoką wydajność w stosunkowo krótkim czasie uczenia.
Zbudowany na sukcesie firmy Transformers, BERT, wprowadzonej w gazecie BERT: Wstępne szkolenie z głębokich transformatorów dwukierunkowych do zrozumienia języka, dodano dwukierunkowe szkolenie wstępne dotyczące reprezentacji języka. Zainspirowany zadaniem Cloze, BERT jest wstępnie przeszkolony w zakresie modelowania języka maskowanego (MLM), w którym model uczy się odzyskiwać oryginalne słowa dla losowo zamaskowanych tokenów. Model BERT jest również wstępnie wytrenowany w zadaniu przewidywania następnego zdania (NSP), aby przewidzieć, czy dwa zdania są w prawidłowej kolejności czytania. Od czasu pojawienia się w 2018 r. BERT i jego odmiany są szeroko stosowane w zadaniach klasyfikacji tekstu.
Nasze rozwiązanie wykorzystuje wariant BERT znany jako RoBERTa, który został przedstawiony w artykule RoBERTa: Solidnie zoptymalizowane podejście BERT do szkolenia wstępnego. RoBERTa dodatkowo poprawia wydajność BERT w różnych zadaniach języka naturalnego poprzez zoptymalizowane uczenie modeli, w tym uczenie modeli dłuższych na 10 razy większym korpusie, przy użyciu zoptymalizowanych hiperparametrów, dynamicznego losowego maskowania, usuwania zadania NSP i innych.
Nasze modele oparte na RoBERTA wykorzystują Przytulanie transformatorów twarzy biblioteka, która jest popularnym frameworkiem Pythona o otwartym kodzie źródłowym, który zapewnia wysokiej jakości implementacje wszelkiego rodzaju najnowocześniejszych modeli Transformera dla różnych zadań NLP. Hugging Face nawiązał współpracę z AWS aby umożliwić łatwe trenowanie i wdrażanie modeli Transformer w SageMaker. Ta funkcjonalność jest dostępna przez Przytulanie twarzy AWS Deep Learning Container obrazy, które obejmują biblioteki Transformers, Tokenizers i Datasets oraz zoptymalizowaną integrację z programem SageMaker na potrzeby uczenia modeli i wnioskowania.
W naszej implementacji dziedziczymy szkielet architektury RoBERTA z frameworka Hugging Face Transformers i używamy SageMaker do trenowania i wdrażania własnego modelu klasyfikacji tekstu, który nazywamy RoBERTox. RoBERTox wykorzystuje kodowanie pary bajtów (BPE), wprowadzone w Neuronowe tłumaczenie maszynowe rzadkich słów z jednostkami podsłów, aby podzielić tekst wejściowy na reprezentacje słów podrzędnych. Następnie możemy trenować nasze modele i tokenizatory na danych Jigsaw lub dowolnym dużym korpusie specyficznym dla domeny (takim jak logi czatu z określonej gry) i używać ich do niestandardowej klasyfikacji tekstu. Definiujemy naszą niestandardową klasę modelu klasyfikacji w następującym kodzie:
Przed szkoleniem przygotowujemy nasze dane tekstowe i etykiety za pomocą biblioteki zestawów danych Hugging Face i przesyłamy wynik do Amazon S3:
Inicjujemy szkolenie modelu w podobny sposób jak RNN:
Na koniec poniższy fragment kodu Pythona ilustruje proces obsługi RoBERTox za pośrednictwem działającego punktu końcowego SageMaker do klasyfikacji tekstu w czasie rzeczywistym dla żądania JSON:
Ocena wydajności modelu: zestaw danych Jigsaw niezamierzonego uprzedzenia
Poniższa tabela zawiera metryki wydajności dla modeli wytrenowanych i ocenionych na podstawie danych z konkursu Jigsaw Uninttended Bias in Toxicity Detection Kaggle. Wyszkoliliśmy modele do trzech różnych, ale powiązanych ze sobą zadań:
- Przypadek binarny – Model został przeszkolony na pełnym uczącym zbiorze danych, aby przewidzieć
toxicity
tylko etykieta - Sprawa drobnoziarnista – Podzbiór danych treningowych, dla których
toxicity>=0.5
został wykorzystany do przewidywania innych etykiet podtypów toksyczności (obscene
,threat
,insult
,identity_attack
,sexual_explicit
) - Sprawa wielozadaniowa – Pełen zestaw danych treningowych został wykorzystany do jednoczesnego przewidywania wszystkich sześciu etykiet
Wytrenowaliśmy modele RNN i RoBERTa dla każdego z tych trzech zadań, używając etykiet ułamkowych dostarczonych przez układ Jigsaw, które odpowiadają proporcji adnotatorów, którzy uważali, że etykieta jest odpowiednia dla tekstu, a także etykiet binarnych połączonych z wagami klas w sieci funkcja straty. W binarnym schemacie etykietowania proporcje zostały obliczone na poziomie 0.5 dla każdej dostępnej etykiety (1, jeśli etykieta>=0.5, 0 w przeciwnym razie), a funkcje utraty modelu były ważone na podstawie względnych proporcji każdej etykiety binarnej w uczącym zestawie danych. We wszystkich przypadkach stwierdziliśmy, że użycie etykiet ułamkowych bezpośrednio skutkowało najlepszą wydajnością, wskazując na wartość dodaną informacji nieodłącznie związaną ze stopniem zgodności między adnotatorami.
Wyświetlamy dwie metryki modelowe: średnią precyzję (AP), która stanowi podsumowanie krzywej precyzja-odwołanie poprzez obliczenie średniej ważonej wartości precyzji uzyskanych na każdym progu klasyfikacji oraz obszar pod krzywą charakterystyki pracy odbiornika (AUC) , który agreguje wyniki modelu w ramach progów klasyfikacji w odniesieniu do współczynnika wyników prawdziwie pozytywnych i współczynnika wyników fałszywie pozytywnych. Należy zauważyć, że prawdziwa klasa dla danego wystąpienia tekstu w zestawie testowym odpowiada temu, czy prawdziwa proporcja jest większa lub równa 0.5 (1, jeśli etykieta>=0.5, 0 w przeciwnym razie).
. | Osadzanie podsłów + RNN | Roberta | ||
. | Etykiety ułamkowe | Etykiety binarne + ważenie klas | Etykiety ułamkowe | Etykiety binarne + ważenie klas |
Binarna | AP=0.746, AUC=0.966 | AP=0.730, AUC=0.963 | AP=0.758, AUC=0.966 | AP=0.747, AUC=0.963 |
Drobnoziarnisty | AP=0.906, AUC=0.909 | AP=0.850, AUC=0.851 | AP=0.913, AUC=0.913 | AP=0.911, AUC=0.912 |
Wielozadaniowość | AP=0.721, AUC=0.972 | AP=0.535, AUC=0.907 | AP=0.740, AUC=0.972 | AP=0.711, AUC=0.961 |
Wnioski
W tym poście przedstawiliśmy dwa podejścia do klasyfikacji tekstu dla konwersacji online z wykorzystaniem usług AWS ML. Możesz uogólnić te rozwiązania na platformach komunikacji online, przy czym branże, takie jak gry, szczególnie mogą skorzystać na poprawionej zdolności wykrywania szkodliwych treści. W przyszłych postach planujemy dalsze omówienie kompleksowej architektury w celu bezproblemowego wdrażania modeli na koncie AWS.
Jeśli potrzebujesz pomocy w przyspieszeniu wykorzystania ML w swoich produktach i procesach, skontaktuj się z Laboratorium rozwiązań Amazon ML.
O autorach
Marka Ryana jest analitykiem danych w Amazon Machine Learning Solutions Lab. Ma szczególne doświadczenie w stosowaniu uczenia maszynowego do problemów w opiece zdrowotnej i naukach przyrodniczych, aw wolnym czasie lubi czytać historię i science fiction.
Sourav Bhabesh jest analitykiem danych w laboratorium Amazon ML Solutions Lab. Tworzy rozwiązania AI/ML dla klientów AWS z różnych branż. Jego specjalnością jest przetwarzanie języka naturalnego (NLP) i jest pasjonatem uczenia głębokiego. Poza pracą lubi czytać książki i podróżować.
Liutong Zhou jest naukowcem stosowanym w laboratorium Amazon ML Solutions Lab. Buduje dedykowane rozwiązania AI/ML dla klientów AWS z różnych branż. Specjalizuje się w przetwarzaniu języka naturalnego (NLP) i jest pasjonatem multimodalnego uczenia głębokiego. Jest tenorem lirycznym i lubi śpiewać opery poza pracą.
Sia Gholami jest starszym analitykiem danych w Amazon ML Solutions Lab, gdzie buduje rozwiązania AI/ML dla klientów z różnych branż. Pasjonuje się przetwarzaniem języka naturalnego (NLP) i głębokim uczeniem się. Poza pracą Sia lubi spędzać czas na łonie natury i grać w tenisa.
Daniela Horowitza jest menedżerem Applied AI Science. Kieruje zespołem naukowców w laboratorium Amazon ML Solutions Lab, którzy pracują nad rozwiązywaniem problemów klientów i wdrażaniem chmury za pomocą ML.
- Coinsmart. Najlepsza w Europie giełda bitcoinów i kryptowalut.
- Platoblockchain. Web3 Inteligencja Metaverse. Wzmocniona wiedza. DARMOWY DOSTĘP.
- CryptoJastrząb. Radar Altcoin. Bezpłatna wersja próbna.
- Źródło: https://aws.amazon.com/blogs/machine-learning/text-classification-for-online-conversations-with-machine-learning-on-aws/
- '
- "
- 10
- 100
- 7
- a
- zdolność
- O nas
- przyspieszenie
- Konto
- Osiągać
- osiągnięty
- w poprzek
- w dodatku
- Przyjęcie
- Umowa
- AI
- Usługi AI
- Wszystkie kategorie
- pozwala
- Amazonka
- ilość
- analiza
- api
- aplikacje
- stosowany
- Aplikuj
- Stosowanie
- podejście
- awanse
- właściwy
- architektura
- POWIERZCHNIA
- atrybuty
- dostępny
- średni
- AWS
- torba
- Benchmark
- korzyści
- BEST
- Ulepsz Swój
- pomiędzy
- większe
- Książki
- Buduje
- wbudowany
- wezwanie
- walizka
- Etui
- znaków
- klasa
- klasyfikacja
- Chmura
- kod
- połączenie
- połączony
- komentarze
- Komunikacja
- konkurencja
- kompletny
- w składzie
- obliczenia
- obliczać
- computing
- kolejny
- stale
- skontaktuj się
- Pojemnik
- zawiera
- zawartość
- Rozmowa
- rozmowy
- Stwórz
- krzywa
- zwyczaj
- klient
- Klientów
- dane
- naukowiec danych
- głęboko
- rozwijać
- Wdrożenie
- opisać
- zaprojektowany
- detale
- Wykrywanie
- Ustalać
- oprogramowania
- różne
- Wymiary
- bezpośrednio
- dyskutować
- Wyświetlacz
- pobieranie
- napęd
- podczas
- dynamiczny
- każdy
- z łatwością
- faktycznie
- umożliwiać
- koniec końców
- Punkt końcowy
- Angielski
- Wchodzę
- jednostka
- ewaluację
- ewoluuje
- przykład
- przykłady
- Przede wszystkim system został opracowany
- doświadczenie
- ekspertyza
- rozległy
- Twarz
- Moda
- Fikcja
- i terminów, a
- następujący
- Nasz formularz
- Naprzód
- znaleziono
- frakcyjny
- Framework
- Darmowy
- od
- pełny
- funkcjonować
- Funkcjonalność
- Funkcje
- dalej
- przyszłość
- gra
- Games
- gier
- Ogólne
- ogólny cel
- Generować
- generacja
- Globalne
- większy
- Wzrost
- uchwyt
- głowa
- opieki zdrowotnej
- pomoc
- pomógł
- Wysoki
- wysokiej jakości
- historia
- HTTPS
- człowiek
- tożsamość
- realizacja
- ważny
- ulepszony
- poprawa
- zawierać
- Włącznie z
- przemysłowa
- Informacja
- nieodłączny
- wkład
- spostrzeżenia
- inspirowane
- przykład
- Zniewaga
- zintegrowany
- integracja
- IT
- jigsaw
- Praca
- Klawisze
- znany
- laboratorium
- Etykieta
- etykietowanie
- Etykiety
- język
- duży
- większe
- warstwa
- Wyprowadzenia
- UCZYĆ SIĘ
- nauka
- Doprowadziło
- Biblioteka
- Life Sciences
- Prawdopodobnie
- relacja na żywo
- załadować
- maszyna
- uczenie maszynowe
- robić
- WYKONUJE
- zarządzane
- kierownik
- maska
- Maski
- Mecz
- Matrix
- mechanizm
- Pamięć
- metody
- Metryka
- może
- ML
- model
- modele
- jeszcze
- wielokrotność
- Naturalny
- Natura
- sieć
- sieci
- Następny
- notatnik
- numer
- Oferty
- Online
- operacyjny
- Optymalizacja
- zoptymalizowane
- zamówienie
- oryginalny
- Inne
- Inaczej
- własny
- Papier
- szczególnie
- partner
- namiętny
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- kawałek
- Platformy
- gra
- Proszę
- Popularny
- pozytywny
- Wiadomości
- przewidzieć
- przepowiednia
- Przygotować
- poprzedni
- Problem
- problemy
- wygląda tak
- procesów
- przetwarzanie
- Produkty
- Projekcja
- pod warunkiem,
- zapewnia
- Czytający
- w czasie rzeczywistym
- Recover
- usuwanie
- reprezentować
- reprezentacja
- reprezentowanie
- zażądać
- powrót
- powraca
- Rola
- run
- skalowalny
- schemat
- nauka
- NAUKI
- Naukowiec
- Naukowcy
- bezszwowy
- segment
- usługa
- Usługi
- służąc
- zestaw
- kilka
- Short
- znaczący
- podobny
- Prosty
- ponieważ
- SIX
- Rozmiar
- rozwiązanie
- Rozwiązania
- ROZWIĄZANIA
- Typ przestrzeni
- obowiązuje
- specjalizuje się
- Specjalność
- specyficzny
- Spędzanie
- state-of-the-art
- Zjednoczone
- przechowywanie
- sukces
- systemy
- cel
- zadania
- zespół
- Techniki
- telekomunikacja
- test
- Połączenia
- trzy
- próg
- Przez
- czas
- czasy
- Żetony
- narzędzia
- pochodnia
- tradycyjny
- Pociąg
- Trening
- przejście
- Tłumaczenie
- Podróżowanie
- dla
- wyjątkowy
- posługiwać się
- Użytkownicy
- uprawomocnienie
- wartość
- różnorodność
- różnorodny
- Wideo
- gier wideo
- czy
- KIM
- w ciągu
- bez
- słowa
- Praca
- pracujący
- Twój