Zbuduj oparty na wiadomościach system powiadamiania w czasie rzeczywistym za pomocą Twittera, Amazon SageMaker i Hugging Face PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Zbuduj oparty na wiadomościach system alertów w czasie rzeczywistym za pomocą Twittera, Amazon SageMaker i Hugging Face

Dziś media społecznościowe są ogromnym źródłem wiadomości. Użytkownicy polegają na platformach takich jak Facebook i Twitter, aby konsumować wiadomości. W przypadku niektórych branż, takich jak firmy ubezpieczeniowe, pierwsi respondenci, organy ścigania i agencje rządowe, możliwość szybkiego przetwarzania wiadomości o istotnych zdarzeniach może pomóc im w podejmowaniu działań, gdy te zdarzenia wciąż się rozwijają.

Nierzadko zdarza się, że organizacje próbujące wydobyć wartość z danych tekstowych w poszukiwaniu rozwiązania, które nie wymaga uczenia złożonego modelu NLP (przetwarzania języka naturalnego). W przypadku tych organizacji bardziej praktyczne jest stosowanie wstępnie wytrenowanego modelu NLP. Ponadto, jeśli wybrany model nie spełnia ich wskaźników sukcesu, organizacje chcą mieć możliwość łatwego wyboru innego modelu i ponownej oceny.

Obecnie wydobywanie informacji z danych tekstowych jest łatwiejsze niż kiedykolwiek dzięki:

  • Powstanie najnowocześniejszych architektur NLP ogólnego przeznaczenia, takich jak transformatory
  • Zdolność programistów i analityków danych do szybkiego tworzenia, trenowania i wdrażania modeli uczenia maszynowego (ML) na dużą skalę w chmurze z usługami takimi jak Amazon Sage Maker
  • Dostępność tysięcy wstępnie wytrenowanych modeli NLP w setkach języków i z obsługą wielu platform dostarczanych przez społeczność na platformach takich jak Przytulanie twarzy Hub

W tym poście pokazujemy, jak zbudować system alertów w czasie rzeczywistym, który wykorzystuje wiadomości z Twittera i klasyfikuje tweety przy użyciu wstępnie wytrenowanego modelu z Hugging Face Hub. Możesz użyć tego rozwiązania do klasyfikacji zerowej, co oznacza, że ​​możesz klasyfikować tweety w praktycznie dowolnym zestawie kategorii i wdrażać model za pomocą SageMaker do wnioskowania w czasie rzeczywistym.

Alternatywnie, jeśli szukasz wglądu w rozmowy swoich klientów i pogłębiasz świadomość marki poprzez analizę interakcji w mediach społecznościowych, zachęcamy do zapoznania się z Pulpit społecznościowy oparty na AI. Rozwiązanie wykorzystuje Amazon Comprehend, w pełni zarządzana usługa NLP, która odkrywa cenne informacje i połączenia w tekście bez konieczności korzystania z uczenia maszynowego.

Uczenie zerowe

Dziedziny NLP i rozumienia języka naturalnego (NLU) szybko ewoluowały, aby zająć się przypadkami użycia obejmującymi klasyfikację tekstu, odpowiadanie na pytania, podsumowywanie, generowanie tekstu i inne. Ewolucja ta była możliwa po części dzięki powstaniu najnowocześniejszych architektur ogólnego przeznaczenia, takich jak transformatory, ale także dzięki dostępności większej liczby korpusów tekstowych lepszej jakości do uczenia takich modeli.

Architektura transformatora to złożona sieć neuronowa, która wymaga specjalistycznej wiedzy domenowej i ogromnej ilości danych w celu przeszkolenia od podstaw. Powszechną praktyką jest zastosowanie przeszkolonego, najnowocześniejszego transformatora, takiego jak BERT, RoBERTa, T5, GPT-2 lub DistilBERT, i dostrojenie (uczenie transferowe) modelu do konkretnego przypadku użycia.

Niemniej jednak, nawet przeprowadzenie uczenia transferu na wstępnie wyszkolonym modelu NLP może być często trudnym zadaniem, wymagającym dużej ilości oznakowanych danych tekstowych i zespołu ekspertów do nadzorowania danych. Ta złożoność uniemożliwia większości organizacji efektywne korzystanie z tych modeli, ale uczenie się od zera pomaga praktykom ML i organizacjom przezwyciężyć tę wadę.

Uczenie zerowe to określone zadanie ML, w którym klasyfikator uczy się na jednym zestawie etykiet podczas uczenia, a następnie podczas wnioskowania jest oceniane na innym zestawie etykiet, którego klasyfikator nigdy wcześniej nie widział. W NLP można użyć klasyfikatora sekwencji z zerowym strzałem wyszkolonego na zadaniu wnioskowania języka naturalnego (NLI) do klasyfikowania tekstu bez dostrajania. W tym poście używamy popularnego NLI BART model bart-large-mnli do klasyfikowania tweetów. Jest to duży, wstępnie przeszkolony model (1.6 GB), dostępny w centrum modeli Hugging Face.

Hugging Face to firma zajmująca się sztuczną inteligencją, która zarządza platformą open source (Hugging Face Hub) z tysiącami wstępnie przeszkolonych modeli NLP (transformatorów) w ponad 100 różnych językach i obsługujących różne platformy, takie jak TensorFlow i PyTorch. Biblioteka transformers pomaga programistom i analitykom danych rozpocząć wykonywanie złożonych zadań NLP i NLU, takich jak klasyfikacja, wyodrębnianie informacji, odpowiadanie na pytania, podsumowywanie, tłumaczenie i generowanie tekstu.

AWS i przytulanie twarzy współpracują w celu uproszczenia i przyspieszenia przyjmowania modeli NLP. Dostępny jest zestaw kontenerów głębokiego uczenia (DLC) do szkolenia i wnioskowania w PyTorch lub TensorFlow oraz estymatorów i predyktorów Hugging Face dla pakietu SageMaker Python SDK. Te możliwości pomagają programistom o różnym poziomie wiedzy w łatwym rozpoczęciu pracy z NLP.

Przegląd rozwiązania

Zapewniamy działające rozwiązanie, które pobiera tweety w czasie rzeczywistym z wybranych kont na Twitterze. Do demonstracji naszego rozwiązania używamy trzech kont, Amazon Web Services (@awscloud.), Bezpieczeństwo AWS (@AWSSecurityInfo) i Amazon Science (@Amazonscience) i przyporządkuj ich zawartość do jednej z następujących kategorii: zabezpieczenia, bazy danych, zasoby obliczeniowe, pamięć masowa i uczenie maszynowe. Jeśli model zwróci kategorię z wynikiem ufności większym niż 40%, wysyłane jest powiadomienie.

W poniższym przykładzie model sklasyfikował tweet z Amazon Web Services w kategorii uczenia maszynowego z wynikiem 97%, generując alert.

Rozwiązanie opiera się na wstępnie wytrenowanym modelu transformatora Hugging Face (z Hugging Face Hub) do klasyfikowania tweetów na podstawie zestawu etykiet dostarczanych w czasie wnioskowania — model nie musi być szkolony. Poniższe zrzuty ekranu pokazują więcej przykładów i sposób ich klasyfikacji.
Kilka istotnych przykładów
Zachęcamy do wypróbowania rozwiązania dla siebie. Po prostu pobierz kod źródłowy z Repozytorium GitHub i postępuj zgodnie z instrukcjami wdrażania w pliku README.

Architektura rozwiązania

Rozwiązanie utrzymuje otwarte połączenie z punktem końcowym Twittera, a gdy nadejdzie nowy tweet, wysyła wiadomość do kolejki. Odbiorca odczytuje komunikaty z kolejki, wywołuje punkt końcowy klasyfikacji i, w zależności od wyników, powiadamia użytkownika końcowego.

Poniżej przedstawiono schemat architektury rozwiązania.
Zakres rozwiązania
Przepływ pracy rozwiązania składa się z następujących komponentów:

  1. Rozwiązanie opiera się na Stream API Twittera, aby otrzymywać tweety zgodne ze skonfigurowanymi regułami (tweety z interesujących kont) w czasie rzeczywistym. Aby to zrobić, aplikacja działająca w kontenerze utrzymuje otwarte połączenie z punktem końcowym Twittera. Odnosić się do API Twittera by uzyskać więcej szczegółów.
  2. Kontener działa dalej Usługa Amazon Elastic Container Service (Amazon ECS), w pełni zarządzana usługa aranżacji kontenerów, która ułatwia wdrażanie, zarządzanie i skalowanie aplikacji kontenerowych. Pojedyncze zadanie działa w infrastrukturze bezserwerowej zarządzanej przez AWS-Fargate.
  3. Token Twitter Bearer jest bezpiecznie przechowywany w Magazyn parametrów menedżera systemów AWS, zdolność Menedżer systemów AWS który zapewnia bezpieczne, hierarchiczne przechowywanie danych konfiguracyjnych i wpisów tajnych. Obraz kontenera jest hostowany w dniu Rejestr elastycznego pojemnika Amazon (Amazon ECR), w pełni zarządzany rejestr kontenerów oferujący hosting o wysokiej wydajności.
  4. Za każdym razem, gdy pojawia się nowy tweet, aplikacja kontenera umieszcza go w Usługa Amazon Simple Queue (Amazon SQS). Amazon SQS to w pełni zarządzana usługa kolejkowania wiadomości, która umożliwia oddzielenie i skalowanie mikrousług, systemów rozproszonych i aplikacji bezserwerowych.
  5. Logika rozwiązania tkwi w an AWS Lambda funkcjonować. Lambda to bezserwerowa usługa obliczeniowa sterowana zdarzeniami. Funkcja pobiera nowe tweety z kolejki i klasyfikuje je, wywołując punkt końcowy.
  6. Punkt końcowy opiera się na modelu Hugging Face i jest hostowany w programie SageMaker. Punkt końcowy przeprowadza wnioskowanie i wyświetla klasę tweeta.
  7. W zależności od klasyfikacji funkcja generuje powiadomienie poprzez Usługa prostego powiadomienia Amazon (Amazon SNS), w pełni zarządzana usługa przesyłania wiadomości. Możesz zasubskrybować temat SNS, a wiele miejsc docelowych może otrzymywać to powiadomienie (patrz Miejsca docelowe wydarzeń Amazon SNS). Na przykład, możesz dostarczyć powiadomienie do skrzynek odbiorczych jako wiadomości e-mail (zobacz Powiadomienia e-mailowe).

Wdróż modele Przytulanie twarzy za pomocą SageMaker

Możesz wybrać dowolny z ponad 10,000 XNUMX publicznie dostępnych modeli z Przytulanie twarzy Model Hub i wdrażaj je za pomocą SageMaker za pomocą DLC z wnioskowaniem o przytulanie twarzy.

Podczas używania Tworzenie chmury AWS, wybierasz jeden z publicznie dostępnych Przytulanie pojemników na wnioskowanie o twarz oraz skonfigurować model i zadanie. To rozwiązanie wykorzystuje facebook/bart-duża-mnli model i zadanie klasyfikacji zerowej, ale możesz wybrać dowolny z modeli poniżej Klasyfikacja Zero-Shot w Centrum Modeli Przytulania Twarzy. Możesz je skonfigurować, ustawiając zmienne środowiskowe HF_MODEL_ID i HF_TASK w szablonie CloudFormation, jak w poniższym kodzie:

SageMakerModel:
  Type: AWS::SageMaker::Model
  Properties:
    ExecutionRoleArn: !GetAtt SageMakerModelRole.Arn
    PrimaryContainer:
      Image: 763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-inference:1.7-transformers4.6-cpu-py36-ubuntu18.04
      Environment:
        HF_MODEL_ID: facebook/bart-large-mnli
        HF_TASK: zero-shot-classification
        SAGEMAKER_CONTAINER_LOG_LEVEL: 20
        SAGEMAKER_REGION: us-east-1

Alternatywnie, jeśli nie używasz AWS CloudFormation, możesz osiągnąć te same wyniki za pomocą kilku linijek kodu. Odnosić się do Wdróż modele w Amazon SageMaker by uzyskać więcej szczegółów.

Aby sklasyfikować zawartość, wystarczy wywołać punkt końcowy SageMaker. Poniżej znajduje się fragment kodu Pythona:

endpoint_name = os.environ['ENDPOINT_NAME']
labels = os.environ['ENDPOINT_NAME']

data = {
    'inputs': tweet,
    'parameters': {
        'candidate_labels': labels,
        'multi_class': False
    }
}

response = sagemaker.invoke_endpoint(EndpointName=endpoint_name,
                                     ContentType='application/json',
                                     Body=json.dumps(data))

response_body = json.loads(response['Body'].read())

Zanotuj Fałszywy wartość dla wiele_klas parametr wskazujący, że suma wszystkich prawdopodobieństw dla każdej klasy doda do 1.

Ulepszenia rozwiązań

Możesz ulepszyć proponowane tutaj rozwiązanie, przechowując tweety i wyniki modelu. Usługa Amazon Simple Storage (Amazon S3), usługa obiektowej pamięci masowej, jest jedną z opcji. Możesz zapisywać tweety, wyniki i inne metadane jako obiekty JSON w zasobniku S3. Następnie możesz wykonywać zapytania ad hoc w stosunku do tej zawartości za pomocą Amazonka Atena, interaktywna usługa zapytań, która ułatwia analizowanie danych w Amazon S3 przy użyciu standardowego SQL.

Możesz użyć historii nie tylko do wyodrębnienia spostrzeżeń, ale także do trenowania modelu niestandardowego. Możesz użyć obsługi Hugging Face, aby trenować model z własnymi danymi za pomocą programu SageMaker. Dowiedz się więcej na Przeprowadź szkolenie na Amazon SageMaker.

Rzeczywiste przypadki użycia

Klienci już eksperymentują z modelami Hugging Face w SageMakerze. Ubezpieczenie BolivarPrzykładem jest kolumbijska firma finansowo-ubezpieczeniowa założona w 1939 roku.

„Opracowaliśmy rozwiązanie do powiadamiania o zagrożeniach dla klientów i brokerów ubezpieczeniowych. Używamy wstępnie przeszkolonych modeli NLP Hugging Face do klasyfikowania tweetów z odpowiednich kont w celu generowania powiadomień dla naszych klientów w czasie zbliżonym do rzeczywistego jako strategii zapobiegawczej, która pomaga łagodzić roszczenia. Roszczenie powstaje, ponieważ klienci nie są świadomi poziomu ryzyka, na jakie są narażeni. Rozwiązanie pozwala nam generować świadomość naszych klientów, zamieniając ryzyko w coś mierzalnego w konkretnych sytuacjach.”

– Julian Rico, szef badań i wiedzy w Seguros Bolívar.

Seguros Bolívar współpracował z AWS, aby zmienić architekturę swojego rozwiązania; teraz opiera się na SageMakerze i przypomina ten opisany w tym poście.

Wnioski

Klasyfikacja typu zero-shot jest idealna, gdy masz mało danych do trenowania niestandardowego klasyfikatora tekstu lub gdy nie możesz sobie pozwolić na trenowanie niestandardowego modelu NLP. W przypadku specjalnych przypadków użycia, gdy tekst jest oparty na określonych słowach lub terminach, lepiej jest skorzystać z nadzorowanego modelu klasyfikacji opartego na niestandardowym zestawie uczącym.

W tym poście pokazaliśmy, jak zbudować klasyfikator wiadomości przy użyciu modelu zero-shot Hugging Face na AWS. Używaliśmy Twittera jako naszego źródła wiadomości, ale możesz wybrać źródło wiadomości, które jest bardziej odpowiednie dla Twoich potrzeb. Co więcej, możesz łatwo zmienić model, po prostu określ wybrany model w szablonie CloudFormation.

Aby uzyskać kod źródłowy, zapoznaj się z Repozytorium GitHub Zawiera pełne instrukcje konfiguracji. Możesz samodzielnie klonować, zmieniać, wdrażać i uruchamiać. Możesz również użyć go jako punktu wyjścia i dostosować kategorie i logikę alertów lub zbudować inne rozwiązanie dla podobnego przypadku użycia.

Spróbuj i daj nam znać, co myślisz. Jak zawsze czekamy na Wasze opinie. Możesz wysłać go do swoich zwykłych kontaktów wsparcia AWS lub w pliku Forum AWS dla SageMaker.


O autorach

Zbuduj oparty na wiadomościach system powiadamiania w czasie rzeczywistym za pomocą Twittera, Amazon SageMaker i Hugging Face PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Dawid Laredo jest architektem prototypowania w AWS Envision Engineering w LATAM, gdzie pomógł opracować wiele prototypów uczenia maszynowego. Wcześniej pracował jako inżynier uczenia maszynowego i od ponad 5 lat zajmuje się uczeniem maszynowym. Jego zainteresowania to NLP, szeregi czasowe i kompleksowe ML.

Zbuduj oparty na wiadomościach system powiadamiania w czasie rzeczywistym za pomocą Twittera, Amazon SageMaker i Hugging Face PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Rafał Werneck jest starszym architektem prototypowania w AWS Envision Engineering z siedzibą w Brazylii. Wcześniej pracował jako inżynier ds. rozwoju oprogramowania w Amazon.com.br i Amazon RDS Performance Insights.

Zbuduj oparty na wiadomościach system powiadamiania w czasie rzeczywistym za pomocą Twittera, Amazon SageMaker i Hugging Face PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Vikrama Elango jest specjalistą ds. rozwiązań AI/ML w firmie Amazon Web Services z siedzibą w Wirginii w USA. Vikram pomaga klientom z branży finansowej i ubezpieczeniowej poprzez projektowanie i przemyślane przywództwo w tworzeniu i wdrażaniu aplikacji uczenia maszynowego na dużą skalę. Obecnie koncentruje się na przetwarzaniu języka naturalnego, odpowiedzialnej sztucznej inteligencji, optymalizacji wnioskowania i skalowaniu ML w całym przedsiębiorstwie. W wolnym czasie lubi podróżować, wędrować, gotować i biwakować z rodziną.

Znak czasu:

Więcej z Uczenie maszynowe AWS