Wykrywaj anomalie w danych produkcyjnych za pomocą Amazon SageMaker Canvas | Usługi internetowe Amazona

Wykrywaj anomalie w danych produkcyjnych za pomocą Amazon SageMaker Canvas | Usługi internetowe Amazona

Dzięki wykorzystaniu narzędzi chmury obliczeniowej, big data i uczenia maszynowego (ML) takich jak Amazonka Atena or Amazon Sage Maker stały się dostępne i możliwe do wykorzystania przez każdego, bez większego wysiłku przy tworzeniu i utrzymaniu. Firmy przemysłowe coraz częściej zwracają uwagę na analizę danych i podejmowanie decyzji w oparciu o dane, aby zwiększyć efektywność wykorzystania zasobów w całym swoim portfolio, od operacji po wykonywanie konserwacji predykcyjnej i planowanie.

Szybkość zmian w IT sprawia, że ​​klienci z tradycyjnych branż stają przed dylematem dotyczącym zestawu umiejętności. Z jednej strony analitycy i eksperci dziedzinowi mają bardzo głęboką wiedzę na temat danych i ich interpretacji, ale często brakuje im kontaktu z narzędziami do analityki danych i językami programowania wysokiego poziomu, takimi jak Python. Z drugiej strony ekspertom w dziedzinie analityki danych często brakuje doświadczenia, aby interpretować zawartość danych maszynowych i filtrować je pod kątem tego, co istotne. Ten dylemat utrudnia tworzenie wydajnych modeli wykorzystujących dane do generowania spostrzeżeń istotnych dla biznesu.

Płótno Amazon SageMaker rozwiązuje ten dylemat, zapewniając ekspertom dziedzinowym interfejs bez kodu, umożliwiający tworzenie zaawansowanych modeli analitycznych i uczenia maszynowego, takich jak prognozy, klasyfikacje lub modele regresji. Umożliwia także wdrażanie i udostępnianie tych modeli specjalistom ML i MLOps po ich utworzeniu.

W tym poście pokażemy, jak używać SageMaker Canvas do selekcji i wybierania odpowiednich funkcji w danych, a następnie trenowania modelu predykcyjnego pod kątem wykrywania anomalii, wykorzystując funkcję SageMaker Canvas bez kodu do dostrajania modelu.

Wykrywanie anomalii dla przemysłu produkcyjnego

W chwili pisania tego tekstu SageMaker Canvas koncentruje się na typowych przypadkach użycia biznesowego, takich jak prognozowanie, regresja i klasyfikacja. W tym poście pokazujemy, jak te możliwości mogą również pomóc w wykrywaniu złożonych nieprawidłowych punktów danych. Ten przypadek użycia jest istotny na przykład w celu wskazania usterek lub nietypowego działania maszyn przemysłowych.

Wykrywanie anomalii jest ważne w przemyśle, ponieważ maszyny (od pociągów po turbiny) są zwykle bardzo niezawodne, a okresy między awariami trwają latami. Większość danych z tych maszyn, takich jak odczyty czujników temperatury lub komunikaty o stanie, opisuje normalne działanie i ma ograniczoną wartość przy podejmowaniu decyzji. Inżynierowie szukają nieprawidłowych danych podczas badania pierwotnych przyczyn awarii lub jako wskaźników ostrzegawczych przyszłych usterek, a menedżerowie ds. wydajności badają nieprawidłowe dane w celu zidentyfikowania potencjalnych ulepszeń. Dlatego typowy pierwszy krok w stronę podejmowania decyzji w oparciu o dane polega na znalezieniu odpowiednich (nieprawidłowych) danych.

W tym poście używamy programu SageMaker Canvas do wybierania odpowiednich funkcji w danych, a następnie szkolimy model predykcyjny pod kątem wykrywania anomalii, korzystając z funkcji SageMaker Canvas bez użycia kodu do dostrajania modelu. Następnie wdrażamy model jako punkt końcowy SageMaker.

Omówienie rozwiązania

Na potrzeby naszego przypadku użycia polegającego na wykrywaniu anomalii trenujemy model predykcyjny, aby przewidywał charakterystyczną cechę normalnej pracy maszyny, taką jak temperatura silnika wskazywana w samochodzie, na podstawie czynników wpływających, takich jak prędkość i ostatni moment obrotowy zastosowany w samochodzie . W celu wykrycia anomalii na nowej próbce pomiarów porównujemy przewidywania modelu dla cechy charakterystycznej z dostarczonymi obserwacjami.

Na przykład silnik samochodowy, ekspert dziedzinowy uzyskuje pomiary normalnej temperatury silnika, aktualnego momentu obrotowego silnika, temperatury otoczenia i innych potencjalnych czynników wpływających. Umożliwiają one wytrenowanie modelu w celu przewidywania temperatury na podstawie innych funkcji. Następnie możemy wykorzystać model do regularnego przewidywania temperatury silnika. Jeżeli przewidywana temperatura dla tych danych jest podobna do temperatury obserwowanej w tych danych, silnik pracuje normalnie; rozbieżność będzie wskazywać na anomalię, taką jak awaria układu chłodzenia lub usterka silnika.

Poniższy schemat ilustruje architekturę rozwiązania.

Omówienie procesu: W SageMaker Canvas tworzony jest model, wdrażany, a następnie uzyskiwany do niego dostęp z poziomu AWS Lambda Funcino.

Rozwiązanie składa się z czterech kluczowych kroków:

  1. Ekspert domeny tworzy model początkowy, obejmujący analizę danych i selekcję funkcji przy użyciu SageMaker Canvas.
  2. Ekspert domeny udostępnia model za pośrednictwem Rejestr modelu Amazon SageMaker lub wdraża go bezpośrednio jako punkt końcowy czasu rzeczywistego.
  3. Ekspert MLOps tworzy infrastrukturę wnioskowania i kod przekształcający dane wyjściowe modelu z predykcji na wskaźnik anomalii. Ten kod zwykle działa wewnątrz pliku AWS Lambda funkcja.
  4. Gdy aplikacja wymaga wykrycia anomalii, wywołuje funkcję Lambda, która wykorzystuje model do wnioskowania i dostarcza odpowiedź (niezależnie od tego, czy jest to anomalia, czy nie).

Wymagania wstępne

Aby móc śledzić ten post, musisz spełnić następujące wymagania wstępne:

Utwórz model za pomocą programu SageMaker

Proces tworzenia modelu przebiega zgodnie ze standardowymi krokami tworzenia modelu regresji w programie SageMaker Canvas. Aby uzyskać więcej informacji, zobacz Rozpoczęcie korzystania z Amazon SageMaker Canvas.

Najpierw ekspert domenowy ładuje odpowiednie dane do SageMaker Canvas, takie jak serie czasowe pomiarów. W tym poście używamy pliku CSV zawierającego (syntetycznie wygenerowane) pomiary silnika elektrycznego. Aby poznać szczegóły, patrz Importuj dane do Canvas. Wykorzystane przykładowe dane są dostępne do pobrania w postaci pliku CSV.

Zdjęcie przedstawiające pierwsze wiersze pliku CSV. Ponadto wyświetlany jest histogram i dane porównawcze w celu szybkiego podglądu modelu.

Zarządzaj danymi za pomocą SageMaker Canvas

Po załadowaniu danych ekspert domenowy może użyć SageMaker Canvas w celu selekcji danych wykorzystanych w ostatecznym modelu. W tym celu ekspert wybiera te kolumny, które zawierają pomiary charakterystyczne dla danego problemu. Mówiąc dokładniej, ekspert wybiera kolumny, które są ze sobą powiązane, na przykład zależnością fizyczną, taką jak krzywa ciśnienie-temperatura, i gdzie zmiana tej zależności stanowi istotną anomalię w przypadku ich użycia. Model wykrywania anomalii nauczy się normalnej zależności między wybranymi kolumnami i wskaże, kiedy dane nie są z nią zgodne, np. nienormalnie wysoka temperatura silnika przy bieżącym obciążeniu silnika.

W praktyce ekspert dziedzinowy musi wybrać zestaw odpowiednich kolumn wejściowych i kolumnę docelową. Dane wejściowe to zazwyczaj zbiór wielkości (liczbowych lub kategorialnych), które określają zachowanie maszyny, od ustawień zapotrzebowania, po obciążenie, prędkość lub temperaturę otoczenia. Dane wyjściowe to zazwyczaj wielkość liczbowa, która wskazuje wydajność pracy maszyny, na przykład pomiar rozproszenia energii w temperaturze lub inny wskaźnik wydajności zmieniający się, gdy maszyna pracuje w nieoptymalnych warunkach.

Aby zilustrować koncepcję wyboru wielkości wejściowych i wyjściowych, rozważmy kilka przykładów:

  • W przypadku sprzętu obrotowego, takiego jak model, który budujemy w tym poście, typowymi danymi wejściowymi są prędkość obrotowa, moment obrotowy (prąd i historia) oraz temperatura otoczenia, a wartościami docelowymi są wynikowe temperatury łożysk lub silnika, wskazujące dobre warunki operacyjne obrotów
  • W przypadku turbiny wiatrowej typowymi danymi wejściowymi są bieżąca i najnowsza historia prędkości wiatru oraz ustawień łopat wirnika, a wielkością docelową jest wytworzona moc lub prędkość obrotowa
  • W przypadku procesu chemicznego typowymi danymi wejściowymi jest procent różnych składników i temperatura otoczenia, a wartościami docelowymi są wytworzone ciepło lub lepkość produktu końcowego
  • W przypadku urządzeń ruchomych, takich jak drzwi przesuwne, typowymi danymi wejściowymi jest moc wejściowa silników, a wartością docelową jest prędkość lub czas zakończenia ruchu
  • W przypadku systemu HVAC typowymi danymi wejściowymi są osiągnięta różnica temperatur i ustawienia obciążenia, a wielkością docelową jest zmierzone zużycie energii

Ostatecznie właściwe dane wejściowe i cele dla danego sprzętu będą zależeć od przypadku użycia i anomalnego zachowania do wykrycia i są najlepiej znane ekspertowi dziedzinowemu, który jest zaznajomiony ze zawiłościami konkretnego zbioru danych.

W większości przypadków wybranie odpowiednich ilości wejściowych i docelowych oznacza wybranie tylko właściwych kolumn i zaznaczenie kolumny docelowej (w tym przykładzie bearing_temperature). Jednak ekspert domeny może również korzystać z funkcji SageMaker Canvas niewymagających kodu, aby przekształcać kolumny i udoskonalać lub agregować dane. Na przykład możesz wyodrębnić lub odfiltrować określone daty lub znaczniki czasu z danych, które nie są istotne. SageMaker Canvas wspiera ten proces, wyświetlając statystyki dotyczące wybranych ilości, co pozwala zrozumieć, czy dana ilość ma wartości odstające i rozrzuty, które mogą mieć wpływ na wyniki modelu.

Trenuj, dostrajaj i oceniaj model

Gdy ekspert dziedzinowy wybierze odpowiednie kolumny w zestawie danych, może wytrenować model, aby poznać relacje między danymi wejściowymi i wynikami. Dokładniej, model nauczy się przewidywać wartość docelową wybraną z danych wejściowych.

Zwykle można używać SageMaker Canvas Podgląd modelu opcja. Zapewnia to szybkie wskazanie oczekiwanej jakości modelu i pozwala zbadać wpływ różnych danych wejściowych na metrykę wyjściową. Na przykład na poniższym zrzucie ekranu model jest najbardziej dotknięty przez motor_speed i ambient_temperature metryki podczas prognozowania bearing_temperature. Jest to rozsądne, ponieważ te temperatury są ze sobą ściśle powiązane. Jednocześnie prawdopodobnie będzie miało na to wpływ dodatkowe tarcie lub inne sposoby utraty energii.

W przypadku jakości modelu RMSE modelu jest wskaźnikiem tego, jak dobrze model był w stanie nauczyć się normalnego zachowania w danych uczących i odtworzyć relacje między miarami wejściowymi i wyjściowymi. Na przykład w poniższym modelu model powinien być w stanie przewidzieć poprawność motor_bearing temperatury w granicach 3.67 stopnia Celsjusza, zatem za anomalię możemy uznać odchylenie temperatury rzeczywistej od prognozy modelu większe niż np. 7.4 stopnia. Rzeczywisty próg, którego można użyć, będzie jednak zależał od czułości wymaganej w scenariuszu wdrożenia.

Wykres przedstawiający rzeczywistą i przewidywaną prędkość silnika. Zależność jest liniowa z pewnymi szumami.

Na koniec, po zakończeniu oceny i dostrajania modelu, można rozpocząć pełne szkolenie modelu, które utworzy model do wykorzystania na potrzeby wnioskowania.

Wdróż model

Mimo że SageMaker Canvas może używać modelu do wnioskowania, produktywne wdrożenie w celu wykrywania anomalii wymaga wdrożenia modelu poza SageMaker Canvas. Dokładniej, musimy wdrożyć model jako punkt końcowy.

W tym poście, dla uproszczenia, wdrażamy model jako punkt końcowy bezpośrednio z SageMaker Canvas. Aby uzyskać instrukcje, zobacz Wdróż swoje modele w punkcie końcowym. Pamiętaj, aby zanotować nazwę wdrożenia i wziąć pod uwagę cenę typu instancji, w której wdrażasz (w tym poście używamy ml.m5.large). SageMaker Canvas utworzy następnie punkt końcowy modelu, który można wywołać w celu uzyskania prognoz.

Okno aplikacji przedstawiające konfigurację wdrożenia modelu. Pokazane ustawienia to rozmiar komputera ml.m5.large i nazwa wdrożenia przykładowego modelu anomalii.

W warunkach przemysłowych model musi przejść dokładne testy, zanim będzie można go wdrożyć. W tym celu ekspert domeny nie wdroży go, ale zamiast tego udostępni model w rejestrze modeli SageMaker. Tutaj pałeczkę może przejąć ekspert operacyjny MLOps. Zazwyczaj ekspert ten przetestuje punkt końcowy modelu, oceni wielkość sprzętu komputerowego wymaganego dla aplikacji docelowej i określi najbardziej opłacalne wdrożenie, na przykład wdrożenie w celu wnioskowania bezserwerowego lub wnioskowania wsadowego. Kroki te są zwykle zautomatyzowane (na przykład przy użyciu Rurociągi Amazon Sagemaker albo Pakiet SDK Amazona).

Obraz przedstawiający przycisk umożliwiający udostępnienie modelu z usługi Amazon Sgemaker w rejestrze modeli.

Użyj modelu do wykrywania anomalii

W poprzednim kroku utworzyliśmy wdrożenie modelu w SageMaker Canvas o nazwie canvas-sample-anomaly-model. Możemy go użyć do uzyskania przewidywań a bearing_temperature wartość na podstawie innych kolumn w zestawie danych. Teraz chcemy użyć tego punktu końcowego do wykrywania anomalii.

Aby zidentyfikować nietypowe dane, nasz model użyje punktu końcowego modelu predykcyjnego w celu uzyskania oczekiwanej wartości metryki docelowej, a następnie porówna przewidywaną wartość z rzeczywistą wartością w danych. Wartość przewidywana wskazuje oczekiwaną wartość naszej metryki docelowej na podstawie danych szkoleniowych. Różnica tej wartości jest zatem miarą nieprawidłowości faktycznie zaobserwowanych danych. Możemy użyć następującego kodu:

# We are using pandas dataframes for data handling
import pandas as pd import boto3,json
sm_runtime_client = boto3.client('sagemaker-runtime') # Configuration of the actual model invocation
endpoint_name="canvas-sample-anomaly-model"
# Name of the column in the input data to compare with predictions
TARGET_COL='bearing_temperature' def do_inference(data, endpoint_name): # Example Code provided by Sagemaker Canvas body = data.to_csv(header=False, index=True).encode("utf-8") response = sm_runtime_client.invoke_endpoint(Body = body, EndpointName = endpoint_name, ContentType = "text/csv", Accept = "application/json", ) return json.loads(response["Body"].read()) def input_transformer(input_data, drop_cols = [ TARGET_COL ] ): # Transform the input: Drop the Target column return input_data.drop(drop_cols,axis =1 ) def output_transformer(input_data,response): # Take the initial input data and compare it to the response of the prediction model scored = input_data.copy() scored.loc[ input_data.index,'prediction_'+TARGET_COL ] = pd.DataFrame(
response[ 'predictions' ],
index = input_data.index )['score'] scored.loc[ input_data.index,'error' ] = (
scored[ TARGET_COL ]-scored[ 'prediction_'+TARGET_COL ]
).abs() return scored # Run the inference
raw_input = pd.read_csv(MYFILE) # Read my data for inference
to_score = input_transformer(raw_input) # Prepare the data
predictions = do_inference(to_score, endpoint_name) # create predictions
results = output_transformer(to_score,predictions) # compare predictions & actuals

Powyższy kod wykonuje następujące akcje:

  1. Dane wejściowe są filtrowane do odpowiednich cech (funkcja „input_transformer").
  2. Punkt końcowy modelu SageMaker jest wywoływany z przefiltrowanymi danymi (funkcja „do_inference„), gdzie obsługujemy formatowanie wejścia i wyjścia zgodnie z przykładowym kodem podanym podczas otwierania strony szczegółów naszego wdrożenia w SageMaker Canvas.
  3. Wynik wywołania jest łączony z pierwotnymi danymi wejściowymi, a różnica jest zapisywana w kolumnie błędów (funkcja „output_transform").

Znajdź anomalie i oceń nietypowe zdarzenia

W typowej konfiguracji kod w celu uzyskania anomalii jest uruchamiany w funkcji Lambda. Funkcję Lambda można wywołać z aplikacji lub Brama Amazon API. Funkcja główna zwraca wynik anomalii dla każdego wiersza danych wejściowych — w tym przypadku szereg czasowy wyniku anomalii.

Do testów możemy także uruchomić kod w notatniku SageMaker. Poniższe wykresy przedstawiają dane wejściowe i wyjściowe naszego modelu przy użyciu przykładowych danych. Maksymalne wartości odchylenia między wartościami przewidywanymi a rzeczywistymi (wynik anomalii pokazany na dolnym wykresie) wskazują na anomalie. Na przykład na wykresie widzimy trzy wyraźne szczyty, w których wynik anomalii (różnica między temperaturą oczekiwaną a rzeczywistą) przekracza 7 stopni Celsjusza: pierwszy po długim czasie bezczynności, drugi przy gwałtownym spadku temperatury bearing_temperaturei ostatnie gdzie bearing_temperature jest wysoki w porównaniu do motor_speed.

Dwa wykresy szeregów czasowych. Na górze widoczne są szeregi czasowe temperatur i prędkości silnika. Dolny wykres przedstawia wynik anomalii w czasie z trzema wartościami szczytowymi wskazującymi anomalie.

W wielu przypadkach wystarczy już znajomość szeregu czasowego wyniku anomalii; możesz ustawić próg ostrzegania o znaczącej anomalii w oparciu o potrzebę czułości modelu. Bieżący wynik wskazuje wówczas, że stan maszyny jest nieprawidłowy i wymaga zbadania. Na przykład w naszym modelu wartość bezwzględna wyniku anomalii rozkłada się w sposób pokazany na poniższym wykresie. Potwierdza to, że większość wyników anomalii jest poniżej (2xRMS=)8 stopni stwierdzonych podczas uczenia modelu jako typowy błąd. Wykres może pomóc w ręcznym wyborze progu, tak aby odpowiedni procent ocenianych próbek został oznaczony jako anomalie.

Histogram występowania wartości wyniku anomalii. Krzywa maleje od x=0 do x=15.

Jeśli pożądanym wynikiem są zdarzenia anomalii, wówczas wyniki anomalii dostarczone przez model wymagają udoskonalenia, aby były istotne dla zastosowań biznesowych. W tym celu ekspert ML zazwyczaj dodaje przetwarzanie końcowe, aby usunąć szumy lub duże wartości szczytowe wyniku anomalii, takie jak dodanie średniej kroczącej. Ponadto ekspert zazwyczaj ocenia wynik anomalii, stosując logikę podobną do podnoszenia Amazon Cloud Watch alarm, taki jak monitorowanie przekroczenia progu w określonym czasie. Aby uzyskać więcej informacji na temat konfigurowania alarmów, zobacz Korzystanie z alarmów Amazon CloudWatch. Uruchomienie tych ocen w funkcji Lambda umożliwia wysyłanie ostrzeżeń, na przykład poprzez publikację ostrzeżenia do pliku Usługa prostego powiadomienia Amazon (Amazon SNS) temat.

Sprzątać

Po zakończeniu korzystania z tego rozwiązania należy posprzątać, aby uniknąć niepotrzebnych kosztów:

  1. W SageMaker Canvas znajdź wdrożenie punktu końcowego modelu i usuń je.
  2. Wyloguj się z SageMaker Canvas, aby uniknąć opłat za bezczynne działanie.

Podsumowanie

W tym poście pokazaliśmy, jak ekspert domenowy może ocenić dane wejściowe i stworzyć model ML przy użyciu SageMaker Canvas bez konieczności pisania kodu. Następnie pokazaliśmy, jak używać tego modelu do wykrywania anomalii w czasie rzeczywistym przy użyciu SageMaker i Lambda w ramach prostego przepływu pracy. To połączenie umożliwia ekspertom dziedzinowym wykorzystanie swojej wiedzy do tworzenia wydajnych modeli uczenia maszynowego bez dodatkowego szkolenia w zakresie analityki danych, a także umożliwia ekspertom MLOps korzystanie z tych modeli i udostępnianie ich do wnioskowania w sposób elastyczny i wydajny.

Dostępny jest 2-miesięczny bezpłatny poziom SageMaker Canvas, po którym płacisz tylko za to, z czego korzystasz. Zacznij eksperymentować już dziś i dodaj ML, aby w pełni wykorzystać swoje dane.


O autorze

Wykrywaj anomalie w danych produkcyjnych za pomocą Amazon SageMaker Canvas | Amazon Web Services PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI. Helge’a Aufderheide’a jest entuzjastą wykorzystania danych w świecie rzeczywistym, ze szczególnym naciskiem na automatyzację, analitykę i uczenie maszynowe w zastosowaniach przemysłowych, takich jak produkcja i mobilność.

Znak czasu:

Więcej z Uczenie maszynowe AWS