Autopilot Amazon SageMaker umożliwia organizacjom szybkie budowanie i wdrażanie kompleksowego modelu uczenia maszynowego (ML) i potoku wnioskowania za pomocą zaledwie kilku linijek kodu lub nawet bez żadnego kodu w ogóle z Studio Amazon SageMaker. Autopilot odciąża ciężką konfigurację infrastruktury i czas potrzebny na zbudowanie całego potoku, w tym inżynierię funkcji, wybór modelu i dostrajanie hiperparametrów.
W tym poście pokazujemy, jak przejść od surowych danych do solidnego i w pełni wdrożonego potoku wnioskowania za pomocą rozwiązania Autopilot.
Omówienie rozwiązania
Używamy pliki Publiczny zbiór danych Lyft na temat rowerów publicznych aby ta symulacja mogła przewidzieć, czy użytkownik uczestniczy w Program „Udostępnij rower dla wszystkich”.. Jest to prosty problem klasyfikacji binarnej.
Chcemy pokazać, jak łatwo można zbudować zautomatyzowany potok wnioskowania działający w czasie rzeczywistym i klasyfikujący użytkowników na podstawie ich udziału w programie Bike Share for All. W tym celu symulujemy kompleksowe pozyskiwanie danych i potok wnioskowania dla wyimaginowanej firmy zajmującej się wypożyczaniem rowerów działającej w rejonie Zatoki San Francisco.
Architektura jest podzielona na dwie części: potok pozyskiwania i potok wnioskowania.
W pierwszej części tego posta skupimy się przede wszystkim na potoku uczenia maszynowego, a w drugiej części omówimy potok pozyskiwania danych.
Wymagania wstępne
Aby postępować zgodnie z tym przykładem, należy spełnić następujące wymagania wstępne:
- Utwórz nową instancję notatnika SageMaker.
- Tworzenie Wąż strażacki Amazon Kinesis Data strumień dostawy z AWS Lambda funkcja transformacji. Aby uzyskać instrukcje, zobacz Transformacja danych Amazon Kinesis Firehose za pomocą AWS Lambda. Ten krok jest opcjonalny i potrzebny tylko do symulacji przesyłania strumieniowego danych.
Eksploracja danych
Pobierzmy i zwizualizujmy zbiór danych, który znajduje się w przestrzeni publicznej Usługa Amazon Simple Storage Wiadro (Amazon S3) i statyczna strona internetowa:
Poniższy zrzut ekranu przedstawia podzbiór danych przed transformacją.
Ostatnia kolumna danych zawiera cel, który chcemy przewidzieć, czyli zmienną binarną przyjmującą wartość Tak lub Nie, wskazującą, czy użytkownik uczestniczy w programie Bike Share for All.
Przyjrzyjmy się rozkładowi naszej zmiennej docelowej dla dowolnej nierównowagi danych.
Jak widać na powyższym wykresie, dane są niezrównoważone – w programie uczestniczy mniej osób.
Musimy zrównoważyć dane, aby zapobiec stronniczości związanej z nadreprezentacją. Ten krok jest opcjonalny, ponieważ rozwiązanie Autopilot oferuje również wewnętrzne podejście do automatycznego radzenia sobie z brakiem równowagi klas, co domyślnie jest metryką sprawdzania poprawności wyniku F1. Dodatkowo, jeśli zdecydujesz się samodzielnie zrównoważyć dane, możesz użyć bardziej zaawansowanych technik radzenia sobie z brakiem równowagi klas, takich jak GŁADKIE or GAN.
W tym poście zmniejszamy klasę większości (Nie) jako technikę równoważenia danych:
Poniższy kod wzbogaca dane i zaniża próbkę nadreprezentowanej klasy:
Celowo nie zakodowaliśmy naszych cech kategorycznych, w tym naszej binarnej wartości docelowej. Dzieje się tak, ponieważ Autopilot zajmuje się za nas kodowaniem i dekodowaniem danych w ramach automatycznego projektowania funkcji i wdrażania potoków, jak zobaczymy w następnej sekcji.
Poniższy zrzut ekranu przedstawia próbkę naszych danych.
Dane na poniższych wykresach wyglądają normalnie, a rozkład bimodalny przedstawia dwa szczyty w godzinach porannych i popołudniowych godzinach szczytu, jak można się spodziewać. Niską aktywność obserwujemy również w weekendy i w nocy.
W następnej sekcji przekazujemy dane Autopilotowi, aby mógł przeprowadzić za nas eksperyment.
Zbuduj binarny model klasyfikacji
Autopilot wymaga określenia docelowych segmentów wejściowych i wyjściowych. Używa segmentu wejściowego do ładowania danych i segmentu wyjściowego do zapisywania artefaktów, takich jak inżynieria funkcji i wygenerowane notesy Jupyter. Zachowujemy 5% zbioru danych w celu oceny i sprawdzenia wydajności modelu po zakończeniu szkolenia i przesyłamy 95% zbioru danych do segmentu wejściowego S3. Zobacz następujący kod:
Po przesłaniu danych do miejsca docelowego wejściowego czas uruchomić Autopilota:
Aby rozpocząć eksperymenty, wystarczy wywołać metodę fit(). Autopilot potrzebuje wejściowej i wyjściowej lokalizacji S3 oraz docelowej kolumny atrybutów jako wymaganych parametrów. Po przetworzeniu funkcji następuje wywołanie Autopilota Automatyczne dostrajanie modelu SageMaker aby znaleźć najlepszą wersję modelu, uruchamiając wiele zadań szkoleniowych na zestawie danych. Dodaliśmy opcjonalny parametr max_candidates, aby ograniczyć liczbę kandydatów do 30, czyli liczby zadań szkoleniowych, które Autopilot uruchamia z różnymi kombinacjami algorytmów i hiperparametrów w celu znalezienia najlepszego modelu. Jeśli nie określisz tego parametru, jego wartość domyślna to 250.
Postęp Autopilota możemy obserwować za pomocą następującego kodu:
Ukończenie szkolenia zajmuje trochę czasu. Podczas jego działania przyjrzyjmy się przepływowi pracy autopilota.
Aby znaleźć najlepszego kandydata użyj poniższego kodu:
Poniższy zrzut ekranu przedstawia nasze dane wyjściowe.
Nasz model osiągnął dokładność walidacji na poziomie 96%, dlatego zamierzamy go wdrożyć. Moglibyśmy dodać warunek, że będziemy używać modelu tylko wtedy, gdy dokładność przekracza określony poziom.
Potok wnioskowania
Zanim wdrożymy nasz model, przeanalizujmy naszego najlepszego kandydata i to, co dzieje się w przygotowaniu. Zobacz następujący kod:
Poniższy diagram przedstawia nasze dane wyjściowe.
Autopilot zbudował model i umieścił go w trzech różnych kontenerach, z których każdy wykonuje po kolei określone zadanie: transformację, przewidywanie i transformację odwrotną. To wieloetapowe wnioskowanie jest możliwe za pomocą a Potok wnioskowania SageMaker.
Wnioskowanie wieloetapowe może również łączyć wiele modeli wnioskowania. Na przykład jeden kontener może wykonać analiza głównego składnika przed przekazaniem danych do kontenera XGBoost.
Wdróż potok wnioskowania w punkcie końcowym
Proces wdrażania obejmuje tylko kilka linii kodu:
Skonfigurujmy nasz punkt końcowy do przewidywania za pomocą predyktora:
Teraz, gdy mamy już gotowy punkt końcowy i predyktor, czas skorzystać z danych testowych, które odłożyliśmy i przetestować dokładność naszego modelu. Zaczynamy od zdefiniowania funkcji użyteczności, która wysyła dane pojedynczo do punktu końcowego wnioskowania i w zamian otrzymuje prognozę. Ponieważ mamy XGBoost modelu, usuwamy zmienną docelową przed wysłaniem linii CSV do punktu końcowego. Dodatkowo usunęliśmy nagłówek z testowego pliku CSV przed przeglądaniem pliku w pętli, co jest również kolejnym wymaganiem XGBoost w SageMaker. Zobacz następujący kod:
Poniższy zrzut ekranu przedstawia nasze dane wyjściowe.
Obliczmy teraz dokładność naszego modelu.
Zobacz następujący kod:
Otrzymujemy dokładność na poziomie 92%. Jest to nieco mniej niż 96% uzyskane na etapie walidacji, ale nadal jest wystarczająco wysokie. Nie oczekujemy, że dokładność będzie dokładnie taka sama, ponieważ test jest wykonywany na nowym zbiorze danych.
Pozyskiwanie danych
Pobraliśmy dane bezpośrednio i skonfigurowaliśmy je do szkolenia. W prawdziwym życiu może zaistnieć konieczność wysłania danych bezpośrednio z urządzenia brzegowego do jeziora danych i pobrania ich przez SageMaker bezpośrednio z jeziora danych do notebooka.
Kinesis Data Firehose to dobra opcja i najprostszy sposób niezawodnego ładowania danych przesyłanych strumieniowo do jezior danych, magazynów danych i narzędzi analitycznych. Może przechwytywać, przekształcać i ładować dane przesyłane strumieniowo do Amazon S3 i innych magazynów danych AWS.
W naszym przypadku tworzymy strumień dostarczający Kinesis Data Firehose z funkcją transformacji Lambda, aby wykonać lekkie czyszczenie danych podczas ich przechodzenia przez strumień. Zobacz następujący kod:
Ta funkcja Lambda dokonuje lekkiej transformacji danych przesyłanych strumieniowo z urządzeń do jeziora danych. Oczekuje pliku danych w formacie CSV.
Na etapie przetwarzania pobieramy dane i symulujemy strumień danych do Kinesis Data Firehose z funkcją transformacji Lambda oraz do naszego jeziora danych S3.
Zasymulujmy przesyłanie strumieniowe kilku linii:
Sprzątać
Aby zminimalizować koszty, ważne jest usunięcie wszystkich zasobów używanych w tym ćwiczeniu. Poniższy kod usuwa utworzony przez nas punkt końcowy wnioskowania SageMaker, a także przesłane przez nas dane szkoleniowe i testowe:
Wnioski
Inżynierowie ML, badacze danych i twórcy oprogramowania mogą używać rozwiązania Autopilot do tworzenia i wdrażania potoku wnioskowania przy niewielkim lub żadnym doświadczeniu w programowaniu ML. Autopilot oszczędza czas i zasoby, wykorzystując najlepsze praktyki data science i ML. Duże organizacje mogą teraz przenieść zasoby inżynieryjne z konfiguracji infrastruktury na rzecz ulepszania modeli i rozwiązywania biznesowych przypadków użycia. Startupy i mniejsze organizacje mogą rozpocząć korzystanie z uczenia maszynowego, mając niewielką lub żadną wiedzę z zakresu uczenia maszynowego.
Aby rozpocząć korzystanie z Autopilota SageMaker, zobacz Strona produktu lub uzyskaj dostęp do SageMaker Autopilot w SageMaker Studio.
Zalecamy także zapoznanie się z innymi ważnymi funkcjami, jakie oferuje SageMaker, np Sklep funkcji Amazon SageMaker, który integruje się z Rurociągi Amazon SageMaker do tworzenia, dodawania wyszukiwania i odkrywania funkcji oraz ponownego wykorzystywania zautomatyzowanych przepływów pracy ML. Możesz uruchomić wiele symulacji Autopilota z różnymi wariantami funkcji lub celów w swoim zestawie danych. Można to również potraktować jako problem dynamicznej alokacji pojazdów, w którym model próbuje przewidzieć zapotrzebowanie na pojazdy na podstawie czasu (np. pory dnia lub dnia tygodnia) lub lokalizacji, albo kombinacji obu.
O autorach
Douga Mbaya jest starszym architektem rozwiązań specjalizującym się w danych i analityce. Doug ściśle współpracuje z partnerami AWS, pomagając im integrować rozwiązania danych i analityki w chmurze. Wcześniejsze doświadczenie Douga obejmuje wspieranie klientów AWS w segmencie wspólnych przejazdów i dostaw żywności.
Walerio Perrone jest Applied Science Managerem pracującym nad automatycznym strojeniem modeli Amazon SageMaker i Autopilotem.
- 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/automate-a-shared-bikes-and-scooters-classification-model-with-amazon-sagemaker-autopilot/
- '
- "
- &
- 100
- O nas
- dostęp
- osiągnięty
- zajęcia
- zaawansowany
- Algorytmy
- Wszystkie kategorie
- przydział
- Amazonka
- analityka
- Inne
- api
- podejście
- architektura
- POWIERZCHNIA
- argumenty
- zautomatyzowane
- AWS
- Zatoka
- BEST
- Najlepsze praktyki
- budować
- biznes
- wezwanie
- Może uzyskać
- który
- Etui
- zmiana
- wybory
- klasyfikacja
- Sprzątanie
- Chmura
- kod
- Kolumna
- połączenie
- kombinacje
- sukcesy firma
- składnik
- warunek
- systemu
- Pojemnik
- Pojemniki
- zawiera
- mógłby
- Klientów
- dane
- analiza danych
- nauka danych
- dzień
- dostawa
- Kreowanie
- rozwijać
- Wdrożenie
- deweloperzy
- urządzenie
- urządzenia
- różne
- odkrycie
- Wyświetlacz
- 分配
- na dół
- Spadek
- dynamiczny
- krawędź
- szyfrowanie
- Punkt końcowy
- Inżynieria
- Inżynierowie
- wydarzenie
- przykład
- Z wyjątkiem
- Ćwiczenie
- oczekuje
- doświadczenie
- eksperyment
- ekspertyza
- Cecha
- Korzyści
- i terminów, a
- Skupiać
- obserwuj
- następujący
- jedzenie
- Francisco
- funkcjonować
- miejsce
- będzie
- dobry
- Prowadzenie
- tutaj
- Wysoki
- W jaki sposób
- How To
- HTTPS
- ważny
- Włącznie z
- Infrastruktura
- integrować
- IT
- Praca
- Oferty pracy
- duży
- uruchamia
- nauka
- poziom
- Biblioteka
- lekki
- lekki
- Linia
- mało
- załadować
- lokalnie
- lokalizacja
- maszyna
- uczenie maszynowe
- Większość
- Dokonywanie
- kierownik
- ML
- model
- modele
- większość
- notatnik
- oferta
- Oferty
- operacyjny
- Option
- zamówienie
- organizacji
- Inne
- Inaczej
- udział
- wzmacniacz
- Ludzie
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- możliwy
- przepowiednia
- Problem
- wygląda tak
- Program
- Programowanie
- zapewniać
- publiczny
- szybko
- Surowy
- w czasie rzeczywistym
- polecić
- rekord
- dokumentacja
- wymagany
- Zasoby
- powraca
- przeglądu
- reguły
- run
- bieganie
- pędzić
- San
- San Francisco
- oszczędność
- nauka
- Naukowcy
- Szukaj
- wybrany
- Serie
- zestaw
- Share
- shared
- przesunięcie
- Prosty
- symulacja
- Rozmiar
- spać
- So
- Tworzenie
- dzielić
- początek
- rozpoczęty
- Startups
- przechowywanie
- sklep
- strumień
- strumieniowo
- Streaming
- studio
- cel
- Techniki
- test
- Testowanie
- Przez
- czas
- już dziś
- narzędzia
- Trening
- Przekształcać
- Transformacja
- us
- posługiwać się
- Użytkownicy
- użyteczność
- wartość
- pojazd
- Strona internetowa
- tydzień
- czy
- Wikipedia
- w ciągu
- pracujący
- działa