Rozumienie języka naturalnego jest stosowane w wielu różnych przypadkach użycia, od chatbotów i wirtualnych asystentów po tłumaczenie maszynowe i streszczenia tekstu. Aby upewnić się, że te aplikacje działają z oczekiwanym poziomem wydajności, ważne jest, aby dane w środowiskach szkoleniowych i produkcyjnych pochodziły z tej samej dystrybucji. Gdy dane używane do wnioskowania (dane produkcyjne) różnią się od danych używanych podczas uczenia modelu, napotykamy zjawisko znane jako dryf danych. W przypadku wystąpienia dryfu danych model nie ma już znaczenia dla danych w produkcji i prawdopodobnie działa gorzej niż oczekiwano. Ważne jest, aby stale monitorować dane wnioskowania i porównywać je z danymi używanymi podczas treningu.
Możesz użyć Amazon Sage Maker do szybkiego tworzenia, trenowania i wdrażania modeli uczenia maszynowego (ML) w dowolnej skali. Jako proaktywnego środka przeciwko degradacji modelu możesz użyć Monitor modelu Amazon SageMaker do ciągłego monitorowania jakości Twoich modeli ML w czasie rzeczywistym. Za pomocą Monitora modelu można również skonfigurować alerty w celu powiadamiania i wyzwalania akcji w przypadku zaobserwowania jakiegokolwiek odchylenia w wydajności modelu. Wczesne i proaktywne wykrywanie tych odchyleń umożliwia podejmowanie działań naprawczych, takich jak zbieranie nowych danych uczących podstaw prawdy, ponowne szkolenie modeli i audytowanie systemów upstream bez konieczności ręcznego monitorowania modeli lub tworzenia dodatkowych narzędzi.
Model Monitor oferuje cztery różne rodzaje możliwości monitorowania w celu wykrywania i łagodzenia dryfu modelu w czasie rzeczywistym:
- Jakość danych – Pomaga wykryć zmiany w schematach danych i właściwościach statystycznych zmiennych niezależnych oraz ostrzega w przypadku wykrycia dryfu.
- Jakość modelu – Aby monitorować charakterystykę wydajności modelu, taką jak dokładność i precyzja, w czasie rzeczywistym, Model Monitor umożliwia pozyskiwanie etykiet prawdy podstawowej zebranych z aplikacji. Model Monitor automatycznie łączy podstawowe informacje z danymi predykcyjnymi w celu obliczenia wskaźników wydajności modelu.
- Modelowe odchylenie –Model Monitor jest zintegrowany z Amazon SageMaker Wyjaśnij w celu poprawy widoczności potencjalnej stronniczości. Chociaż początkowe dane lub model mogą nie być obciążone, zmiany na świecie mogą z czasem spowodować rozwój odchyleń w modelu, który został już przeszkolony.
- Wytłumaczalność modelu – Wykrywanie dryfu ostrzega, gdy nastąpi zmiana względnej ważności przypisań cech.
W tym poście omówimy rodzaje dryfu jakości danych, które mają zastosowanie do danych tekstowych. Przedstawiamy również podejście do wykrywania dryfu danych w danych tekstowych za pomocą Monitora modelu.
Dryf danych w NLP
Dryf danych można podzielić na trzy kategorie w zależności od tego, czy przesunięcie dystrybucji następuje po stronie wejścia, czy po stronie wyjścia, lub czy zmieniła się relacja między wejściem a wyjściem.
Przesunięcie kowariancji
W przesunięcie współzmiennej, rozkład nakładów zmienia się w czasie, ale rozkład warunkowy P(y|x) się nie zmienia. Ten rodzaj dryfu nazywa się przesunięciem współzmiennej, ponieważ problem pojawia się w wyniku przesunięcia w rozkładzie współzmiennych (cech). Na przykład w modelu klasyfikacji spamu e-mailowego dystrybucja danych uczących (korpusy e-mail) może odbiegać od dystrybucji danych podczas oceniania.
Zmiana etykiety
Podczas gdy przesunięcie współzmiennej koncentruje się na zmianach w rozkładzie cech, przesunięcie etykiety skupia się na zmianach w rozkładzie zmiennej klasy. Ten rodzaj przesunięcia jest zasadniczo odwrotnością przesunięcia współzmiennej. Intuicyjnym sposobem myślenia o tym może być rozważenie niezrównoważonego zestawu danych. Jeśli stosunek spamu do niebędących spamem wiadomości e-mail w naszym zestawie treningowym wynosi 50%, ale w rzeczywistości 10% naszych e-maili nie jest spamem, oznacza to, że rozkład etykiet docelowych uległ zmianie.
Zmiana koncepcji
Zmiana koncepcji różni się od współzmiennej i przesunięcia etykiety tym, że nie jest związana z rozkładem danych ani rozkładem klasy, ale jest związana z relacją między tymi dwiema zmiennymi. Na przykład spamerzy e-mailowi często wykorzystują różne koncepcje do przekazywania modeli filtrów spamu, a koncepcja e-maili wykorzystywanych podczas szkolenia może się zmieniać w miarę upływu czasu.
Teraz, gdy rozumiemy różne typy dryfu danych, zobaczmy, jak możemy użyć Monitora modelu do wykrywania zmian współzmiennych w danych tekstowych.
Omówienie rozwiązania
W przeciwieństwie do danych tabelarycznych, które są ustrukturyzowane i ograniczone, dane tekstowe są złożone, wielowymiarowe i mają dowolny kształt. Aby skutecznie wykrywać dryf w NLP, współpracujemy z osadzenia, które są niskowymiarowymi reprezentacjami tekstu. Możesz uzyskać osadzania przy użyciu różnych modeli językowych, takich jak Word2Vec i modeli opartych na transformatorach, takich jak BERTI. Modele te rzutują dane wysokowymiarowe na przestrzenie niskowymiarowe, zachowując jednocześnie informacje semantyczne tekstu. Wynikiem są gęste i kontekstowo znaczące wektory, które można wykorzystać do różnych dalszych zadań, w tym monitorowania dryfu danych.
W naszym rozwiązaniu używamy embeddingów do wykrywania przesunięcia współzmiennych zdań angielskich. Korzystamy z Monitora modelu, aby ułatwić ciągłe monitorowanie klasyfikatora tekstu, który jest wdrażany w środowisku produkcyjnym. Nasze podejście składa się z następujących kroków:
- Dostosuj model BERT za pomocą programu SageMaker.
- Wdróż dopracowany klasyfikator BERT jako punkt końcowy czasu rzeczywistego za pomocą przechwytywania danych włączone.
- Utwórz podstawowy zestaw danych składający się z próbki zdań używanych do trenowania klasyfikatora BERT.
- Stwórz niestandardowe zadanie monitorowania SageMaker w celu obliczenia podobieństwa cosinusów między danymi przechwyconymi w produkcji a bazowym zbiorem danych.
Poniższy diagram ilustruje przepływ pracy rozwiązania:
Dostrój model BERT
W tym poście używamy Korpus akceptowalności językowej (CoLA), zbiór danych 10,657 XNUMX angielskich zdań oznaczonych jako gramatyczne lub niegramatyczne z opublikowanej literatury lingwistycznej. Używamy szkolenia SageMaker, aby dostroić model BERT przy użyciu zestawu danych CoLa poprzez zdefiniowanie klasy estymatora PyTorch. Aby uzyskać więcej informacji o tym, jak używać tego SDK z PyTorch, zobacz Używaj PyTorch z pakietem SageMaker Python SDK. Dzwonię do fit()
metoda kosztorysanta uruchamia pracę szkoleniową:
Wdróż model
Po wytrenowaniu naszego modelu hostujemy go w punkcie końcowym SageMaker. Aby punkt końcowy ładował model i wyświetlał prognozy, implementujemy kilka metod w train_deploy.py:
- model_fn () – Wczytuje zapisany model i zwraca obiekt modelu, którego można użyć do udostępniania modelu. Serwer modelu SageMaker PyTorch ładuje nasz model przez wywołanie
model_fn
. - input_fn () – Deserializuje i przygotowuje dane wejściowe prognozy. W tym przykładzie treść naszego żądania jest najpierw serializowana do formatu JSON, a następnie wysyłana do punktu końcowego obsługującego model. Dlatego w
input_fn()
, najpierw deserializujemy treść żądania sformatowanego w JSON i zwracamy dane wejściowe jakotorch.tensor
, zgodnie z wymaganiami BERT. - przewidywać_fn () – Wykonuje prognozę i zwraca wynik.
Włącz przechwytywanie danych Monitora modelu
Umożliwiamy Przechwytywanie danych monitora modelu aby zapisać dane wejściowe do Usługa Amazon Simple Storage (Amazon S3), aby później odwołać się do niego:
Następnie tworzymy punkt końcowy SageMaker w czasie rzeczywistym z modelem utworzonym w poprzednim kroku:
Wnioskowanie
Przewidywanie uruchamiamy przy użyciu obiektu predyktora, który utworzyliśmy w poprzednim kroku. Ustawiamy serializator i deserializator JSON, który jest używany przez punkt końcowy wnioskowania:
Punkt końcowy czasu rzeczywistego jest skonfigurowany do przechwytywania danych z żądania, a odpowiedź i dane są przechowywane w Amazon S3. Możesz wyświetlić dane przechwycone w poprzednim harmonogramie monitorowania.
Utwórz linię bazową
Używamy dopracowanego modelu BERT, aby wyodrębnić funkcje osadzania zdań z danych szkoleniowych. Używamy tych wektorów jako wysokiej jakości danych wejściowych funkcji do porównywania odległości cosinusów, ponieważ BERT tworzy dynamiczną reprezentację słowa z kontekstem semantycznym. Wykonaj następujące kroki, aby uzyskać osadzanie zdań:
- Użyj tokenizera BERT, aby uzyskać identyfikatory tokenów dla każdego tokena (
input_id
) w zdaniu wejściowym i masce, aby wskazać, które elementy w sekwencji wejściowej są tokenami, a które elementami dopełniającymi (attention_mask_id
). Korzystamy z BERTtokenizer.encode_plus
funkcja, aby uzyskać te wartości dla każdego zdania wejściowego:
input_ids
i attention_mask_ids
są przekazywane do modelu i pobierają ukryte stany sieci. The hidden_states
ma cztery wymiary w następującej kolejności:
- Numer warstwy (BERT ma 12 warstw)
- Numer partii (1 zdanie)
- Indeksy tokenów słów
- Ukryte jednostki (768 funkcji)
- Użyj dwóch ostatnich ukrytych warstw, aby uzyskać pojedynczy wektor (osadzanie zdania), obliczając średnią wszystkich tokenów wejściowych w zdaniu:
- Przekonwertuj osadzone zdanie jako tablicę NumPy i zapisz je w lokalizacji Amazon S3 jako linię bazową używaną przez Model Monitor:
Skrypt oceny
Model Monitor zapewnia wstępnie zbudowany kontener z możliwością analizowania danych przechwyconych z punktów końcowych dla tabelarycznych zestawów danych. Jeśli chcesz wprowadzić własny kontener, Monitor modelu udostępnia punkty rozszerzeń, których możesz użyć. Kiedy tworzysz MonitoringSchedule
, Model Monitor ostatecznie rozpoczyna przetwarzanie zadań. Dlatego kontener musi być świadomy umowy o pracę na przetwarzanie. Musimy stworzyć skrypt oceny zgodny z kontenerem wejścia kontraktowe i Wyjścia.
Monitor modelu używa kodu ewaluacyjnego we wszystkich próbkach przechwyconych podczas harmonogramu monitorowania. Dla każdego punktu danych wnioskowania obliczamy osadzanie zdania przy użyciu tej samej logiki opisanej wcześniej. Podobieństwo cosinusowe jest używane jako metryka odległości do pomiaru podobieństwa punktu danych wnioskowania i osadzonych zdań w linii bazowej. Matematycznie mierzy kąt cosinus między dwoma wektorami osadzania zdań. Wysoki wynik podobieństwa cosinusów wskazuje na podobne osadzenia zdań. Niższy wynik podobieństwa cosinusów wskazuje na dryf danych. Obliczamy średnią wszystkich wyników podobieństwa cosinusów, a jeśli jest mniejsza niż próg, zostaje uwzględniona w raporcie o naruszeniu. W oparciu o przypadek użycia możesz użyć innych wskaźników odległości, takich jak manhattan
or euclidean
do pomiaru podobieństwa osadzonych zdań.
Poniższy diagram pokazuje, w jaki sposób korzystamy z monitorowania modelu SageMaker, aby ustalić linię bazową i wykryć dryf danych przy użyciu podobieństwa odległości cosinus.
Poniżej znajduje się kod do obliczania naruszeń; kompletny skrypt ewaluacyjny jest dostępny na GitHub:
Zmierz dryf danych za pomocą Monitora modelu
W tej sekcji skupimy się na pomiarze dryfu danych za pomocą Model Monitor. Fabrycznie zbudowane monitory Model Monitor są zasilane przez Deekw, która jest biblioteką zbudowaną na bazie Apache Spark do definiowania testów jednostkowych danych, które mierzą jakość danych w dużych zestawach danych. Korzystanie z tych gotowych funkcji monitorowania nie wymaga kodowania. Masz również elastyczność w monitorowaniu modeli poprzez kodowanie, aby zapewnić niestandardową analizę. Możesz zbierać i przeglądać wszystkie metryki emitowane przez Monitor modelu w Studio Amazon SageMaker, dzięki czemu możesz wizualnie analizować wydajność modelu bez pisania dodatkowego kodu.
W niektórych scenariuszach, na przykład gdy dane nie są tabelaryczne, domyślne zadanie przetwarzania (zasilane przez Deekw) nie wystarczy, ponieważ obsługuje tylko tabelaryczne zestawy danych. Wstępnie zbudowane monitory mogą nie wystarczyć do generowania wyrafinowanych metryk w celu wykrycia odchyleń i mogą wymagać wprowadzenia własnych metryk. W następnych sekcjach opisujemy konfigurację, jaka ma być wprowadzana metryki przez utworzenie niestandardowego kontenera.
Zbuduj niestandardowy kontener Monitora modelu
Używamy skrypt ewaluacyjny z poprzedniej sekcji, aby zbudować kontener Dockera i popchnąć go do Rejestr elastycznego pojemnika Amazon (Amazon ECR):
Gdy kontener Docker klienta znajduje się w Amazon ECR, możemy zaplanować zadanie monitorowania modelu i wygenerować raport naruszeń, jak pokazano w następnych sekcjach.
Zaplanuj zadanie monitorowania modelu
Aby zaplanować zadanie monitorowania modelu, tworzymy instancję Model Monitor i w image_uri
, odwołujemy się do kontenera Docker, który utworzyliśmy w poprzedniej sekcji:
Planujemy zadanie monitorowania za pomocą create_monitoring_schedule
API. Możesz zaplanować zadanie monitorowania co godzinę lub codziennie. Konfigurujesz zadanie za pomocą destination
parametr, jak pokazano w poniższym kodzie:
Aby opisać i wyświetlić harmonogram monitorowania i jego uruchomienia, możesz użyć następujących poleceń:
Raport o naruszeniu dryfu danych
Po zakończeniu zadania monitorowania modelu można przejść do docelowej ścieżki S3, aby uzyskać dostęp do raportów naruszeń. Ten raport zawiera wszystkie dane wejściowe, których średni wynik cosinus (avg_cosine_score
) jest poniżej progu skonfigurowanego jako zmienna środowiskowa THRESHOLD:0.5
Model Monitor instancja. Wskazuje to, że dane obserwowane podczas wnioskowania dryfują poza ustaloną linię bazową.
Poniższy kod przedstawia wygenerowany raport o naruszeniu:
Wreszcie, w oparciu o tę obserwację, możesz skonfigurować swój model do ponownego uczenia. Możesz także włączyć Usługa prostego powiadomienia Amazon Powiadomienia (Amazon SNS) do wysyłania alertów w przypadku wystąpienia naruszeń.
Wnioski
Model Monitor umożliwia utrzymanie wysokiej jakości modeli w produkcji. W tym poście podkreśliliśmy wyzwania związane z monitorowaniem dryftu danych na danych nieustrukturyzowanych, takich jak tekst, i zapewniliśmy intuicyjne podejście do wykrywania dryfu danych za pomocą niestandardowego skryptu monitorowania. Kod powiązany z postem znajdziesz poniżej Repozytorium GitHub. Dodatkowo możesz dostosować rozwiązanie, aby wykorzystać inne metryki odległości, takie jak maksymalna średnia rozbieżność (MMD), nieparametryczną metrykę odległości służącą do obliczania marginalnego rozkładu między rozkładem źródłowym a docelowym w przestrzeni osadzonej.
O autorach
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 w projektowaniu, przemyślanym przywództwie 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ą.
Raghu Ramesza jest architektem rozwiązań ML w zespole Amazon SageMaker Service. Koncentruje się na pomaganiu klientom w migracji obciążeń produkcyjnych ML do SageMaker na dużą skalę. Specjalizuje się w uczeniu maszynowym, sztucznej inteligencji i domenach widzenia komputerowego. Posiada tytuł magistra informatyki uzyskany na UT Dallas. W wolnym czasie lubi podróżować i fotografować.
Tony Chen jest architektem rozwiązań uczenia maszynowego w Amazon Web Services, pomagającym klientom projektować skalowalne i niezawodne funkcje uczenia maszynowego w chmurze. Jako były analityk danych i inżynier danych wykorzystuje swoje doświadczenie, aby pomóc rozwiązać niektóre z najtrudniejszych problemów, z jakimi borykają się organizacje związane z operacjonalizacją uczenia maszynowego.
- '
- "
- 100
- 11
- 7
- O nas
- dostęp
- Konto
- w poprzek
- działania
- Dodatkowy
- AI
- Wszystkie kategorie
- już
- Chociaż
- Amazonka
- Amazon Sage Maker
- Amazon Web Services
- analiza
- Apache
- Apache Spark
- odpowiedni
- aplikacje
- dostępny
- średni
- AWS
- Baseline
- ciało
- budować
- Budowanie
- kemping
- Etui
- Spowodować
- wyzwania
- zmiana
- nasze chatboty
- klasyfikacja
- Chmura
- kod
- Kodowanie
- Zbieranie
- kompleks
- obliczać
- Computer Science
- Wizja komputerowa
- Pojemnik
- zawiera
- ciągły
- umowa
- gotowanie
- Tworzenie
- Klientów
- Dallas
- dane
- jakość danych
- naukowiec danych
- Wnętrze
- Wykrywanie
- rozwijać
- różne
- dyskutować
- dystans
- Doker
- Kontener Dockera
- Nie
- domeny
- jazdy
- podczas
- dynamiczny
- Wcześnie
- spotkanie
- Punkt końcowy
- inżynier
- Angielski
- Enterprise
- Środowisko
- ustanowiony
- przykład
- doświadczenie
- Twarz
- członków Twojej rodziny
- Cecha
- Korzyści
- budżetowy
- i terminów, a
- Elastyczność
- Skupiać
- koncentruje
- Nasz formularz
- Naprzód
- Darmowy
- funkcjonować
- Generować
- GitHub
- mający
- pomoc
- pomaga
- Wysoki
- Podświetlony
- turystyka
- Strona główna
- W jaki sposób
- How To
- HTTPS
- obraz
- wdrożenia
- ważny
- Włącznie z
- przemysł
- Informacja
- ubezpieczenie
- branża ubezpieczeniowa
- IT
- Praca
- Oferty pracy
- Etykiety
- język
- duży
- firmy
- uruchamia
- Przywództwo
- nauka
- poziom
- wykorzystuje
- Biblioteka
- językoznawstwo
- Lista
- literatura
- załadować
- lokalizacja
- uczenie maszynowe
- tłumaczenie maszynowe
- maska
- zmierzyć
- Metryka
- ML
- model
- modele
- monitorowanie
- jeszcze
- Język naturalny
- Przetwarzanie języka naturalnego
- sieć
- nlp
- powiadomienie
- Oferty
- zamówienie
- organizacji
- Inne
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- fotografia
- Detaliczność
- przepowiednia
- Przewidywania
- teraźniejszość
- Problem
- Produkcja
- projekt
- zapewniać
- zapewnia
- Python
- płomień
- jakość
- zasięg
- w czasie rzeczywistym
- Rzeczywistość
- rekord
- raport
- Raporty
- odpowiedź
- Efekt
- przekwalifikowanie
- powraca
- rewers
- przeglądu
- run
- bieganie
- sagemaker
- Skala
- skalowaniem
- nauka
- Sdk
- Usługi
- służąc
- zestaw
- przesunięcie
- podobny
- Prosty
- So
- Rozwiązania
- Typ przestrzeni
- obowiązuje
- spam
- specjalizuje się
- Zjednoczone
- przechowywanie
- sklep
- podpory
- systemy
- cel
- test
- Testowanie
- Testy
- świat
- myśl
- myśl przywództwo
- czas
- żeton
- Żetony
- Top
- pochodnia
- ruch drogowy
- Trening
- Tłumaczenie
- USA
- Zobacz i wysłuchaj
- virginia
- Wirtualny
- widoczność
- wizja
- czekać
- sieć
- usługi internetowe
- Wikipedia
- bez
- Praca
- workflow
- świat
- pisanie