Poprawa stabilności i elastyczności rurociągów ML w firmie Amazon Packaging Innovation dzięki Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Poprawa stabilności i elastyczności potoków ML w Amazon Packaging Innovation dzięki Amazon SageMaker Pipelines

Aby zachwycić klientów i zminimalizować marnotrawstwo opakowań, Amazon musi wybrać optymalny rodzaj opakowania dla miliardów przesyłek wysyłanych każdego roku. Jeśli w przypadku delikatnego przedmiotu, takiego jak kubek do kawy, zastosuje się zbyt małą ochronę, przedmiot dotrze uszkodzony, a Amazon ryzykuje zaufanie swoich klientów. Używanie zbyt dużej ochrony spowoduje wzrost kosztów i przepełnienie pojemników na surowce wtórne. Przy setkach milionów dostępnych produktów potrzebny jest skalowalny mechanizm decyzyjny, aby stale uczyć się na podstawie testów produktów i opinii klientów.

Aby rozwiązać te problemy, zespół Amazon Packaging Innovation opracował modele uczenia maszynowego (ML), które klasyfikują, czy produkty są odpowiednie dla typów opakowań Amazon, takich jak koperty, torby lub pudełka, czy też mogą być wysyłane bez dodatkowego opakowania. Wcześniej zespół opracował niestandardowy potok oparty na Funkcje kroków AWS do wykonywania cotygodniowych szkoleń i codziennych lub miesięcznych zadań wnioskowania. Jednak z biegiem czasu potok nie zapewniał wystarczającej elastyczności, aby uruchamiać modele z nowymi architekturami. Rozwój nowych potoków przyniósł narzut i wymagał koordynacji między analitykami danych i programistami. Aby przezwyciężyć te trudności i przyspieszyć wdrażanie nowych modeli i architektur, zespół zdecydował się na zorganizowanie uczenia modeli i wnioskowania z Rurociągi Amazon SageMaker.

W tym poście omówimy poprzednią architekturę orkiestracji opartą na Step Functions, zarysujemy architektury szkolenia i wnioskowania przy użyciu Pipelines i podkreślimy elastyczność, jaką osiągnął zespół Amazon Packaging Innovation.

Wyzwania dawnego rurociągu ML w Amazon Packaging Innovation

Aby uwzględnić ciągłe informacje zwrotne na temat wydajności opakowań, co tydzień szkolony jest nowy model przy użyciu coraz większej liczby etykiet. Wnioskowanie dla całego zapasu produktów odbywa się co miesiąc, a wnioskowanie dzienne jest wykonywane w celu dostarczenia prognoz just-in-time dla nowo dodanych zapasów.

Aby zautomatyzować proces uczenia wielu modeli i dostarczać prognozy, zespół opracował niestandardowy potok oparty na funkcjach krokowych, aby zorkiestrować następujące kroki:

  • Przygotowanie danych do zadań szkoleniowych i wnioskowania oraz ładowanie prognoz do bazy danych (Amazonka Przesunięcie ku czerwieni) W Klej AWS.
  • Trenowanie modelu i wnioskowanie z Amazon Sage Maker.
  • Obliczanie metryk wydajności modelu na zbiorze walidacyjnym za pomocą Partia AWS.
  • Korzystanie z Amazon DynamoDB do przechowywania konfiguracji modelu (takich jak współczynnik podziału danych na potrzeby uczenia i walidacji, lokalizacja artefaktu modelu, typ modelu i liczba wystąpień do uczenia i wnioskowania), metryki wydajności modelu oraz ostatnia pomyślnie przeszkolona wersja modelu.
  • Obliczanie różnic w wynikach wydajności modelu, zmian w dystrybucji etykiet treningowych oraz porównywanie wielkości danych wejściowych między poprzednią i nową wersją modelu z AWS Lambda funkcje.
  • Biorąc pod uwagę dużą liczbę etapów, rurociąg wymagał również niezawodnego systemu alarmowania na każdym etapie, aby ostrzec interesariuszy o wszelkich problemach. Udało się to osiągnąć dzięki połączeniu Usługa Amazon Simple Queue (Amazon SQS) i Usługa prostego powiadomienia Amazon (Amazon SNS). Alarmy zostały stworzone w celu powiadomienia interesariuszy biznesowych, analityków danych i programistów o wszelkich nieudanych krokach i dużych odchyleniach w metrykach modelu i danych.

Po prawie 2 latach korzystania z tego rozwiązania zespół zdał sobie sprawę, że ta implementacja działała dobrze tylko w przypadku typowego przepływu pracy ML, w którym jeden model został przeszkolony i oceniony w zestawie danych walidacyjnych. Jednak rozwiązanie nie było wystarczająco elastyczne dla złożonych modeli i nie było odporne na awarie. Na przykład architektura nie umożliwiała łatwego dostosowania do uczenia modelu sekwencyjnego. Trudno było dodać lub usunąć krok bez duplikowania całego potoku i modyfikowania infrastruktury. Nawet proste zmiany w krokach przetwarzania danych, takie jak dostosowanie współczynnika podziału danych lub wybór innego zestawu funkcji, wymagały koordynacji zarówno ze strony analityka danych, jak i programisty. Gdy potok zawiódł na dowolnym etapie, trzeba było go ponownie uruchomić od początku, co skutkowało wielokrotnymi uruchomieniami i zwiększonym kosztem. Aby uniknąć powtarzających się uruchomień i konieczności ponownego uruchamiania od nieudanego kroku, zespół tworzył nową kopię skróconej maszyny stanu. To rozwiązywanie problemów doprowadziło do rozprzestrzenienia się maszyn stanowych, z których każda zaczynała od często błędnych kroków. Na koniec, jeśli zadanie szkoleniowe napotkało odchylenie w dystrybucji etykiet, wyniku modelu lub liczbie etykiet, naukowiec danych musiał ręcznie przejrzeć model i jego metryki. Następnie specjalista ds. danych uzyska dostęp do tabeli DynamoDB z wersjami modeli i zaktualizuje tabelę, aby upewnić się, że do następnego zadania wnioskowania został użyty właściwy model.

Utrzymanie tej architektury wymagało co najmniej jednego dedykowanego zasobu i dodatkowego pełnoetatowego zasobu do rozwoju. Biorąc pod uwagę trudności związane z rozszerzeniem potoku w celu dostosowania do nowych przypadków użycia, naukowcy zajmujący się danymi zaczęli opracowywać własne przepływy pracy, co z kolei doprowadziło do rosnącej bazy kodu, wielu tabel danych z podobnymi schematami danych oraz zdecentralizowanego monitorowania modeli. Nagromadzenie tych problemów spowodowało niższą produktywność zespołu i zwiększenie kosztów ogólnych.

Aby sprostać tym wyzwaniom, zespół Amazon Packaging Innovation ocenił inne istniejące rozwiązania dla MLOps, w tym SageMaker Pipelines (Ogłoszenie premiery w grudniu 2020 r.). Pipelines to funkcja programu SageMaker do tworzenia, zarządzania, automatyzacji i skalowania kompleksowych przepływów pracy ML. Pipelines pozwala zmniejszyć liczbę kroków w całym przepływie pracy ML i jest wystarczająco elastyczny, aby umożliwić analitykom danych zdefiniowanie niestandardowego przepływu pracy ML. Dba o monitorowanie i rejestrowanie kroków. Jest również wyposażony w rejestr modeli, który automatycznie wersjonuje nowe modele. Rejestr modeli ma wbudowane przepływy pracy zatwierdzania umożliwiające wybieranie modeli do wnioskowania w środowisku produkcyjnym. Pipelines umożliwia również buforowanie kroków wywoływanych z tymi samymi argumentami. W przypadku znalezienia poprzedniego uruchomienia tworzona jest pamięć podręczna, która umożliwia łatwe ponowne uruchomienie zamiast ponownego obliczania pomyślnie wykonanych kroków.

W procesie oceny Pipelines wyróżniał się spośród innych rozwiązań elastycznością i dostępnością funkcji wspierających i rozszerzających obecne i przyszłe przepływy pracy. Przejście na Pipelines uwolniło programistów od konserwacji platformy i rozwiązywania problemów oraz przekierowało uwagę na dodawanie nowych funkcji. W tym poście przedstawiamy projekt przepływów pracy szkoleniowej i wnioskowania w zespole Amazon Packaging Innovation przy użyciu Pipelines. Omawiamy również korzyści i redukcję kosztów, jakie zrealizował zespół po przejściu na Pipelines.

Potok szkoleń

Zespół Amazon Packaging Innovation szkoli modele dla każdego rodzaju opakowania przy użyciu coraz większej liczby etykiet. Poniższy diagram przedstawia cały proces.

Przepływ pracy rozpoczyna się od wyodrębnienia etykiet i funkcji z bazy danych Amazon Redshift i rozładowania danych do Usługa Amazon Simple Storage (Amazon S3) za pomocą zaplanowanego zadania wyodrębniania, przekształcania i ładowania (ETL). Wraz z danymi wejściowymi w kubełku S3 umieszczany jest obiekt plikowy z typem modelu i parametrami. Ten plik służy jako wyzwalacz potoku za pośrednictwem funkcji Lambda.

Kolejne kroki można w pełni dostosować i zdefiniować w całości przez analityka danych przy użyciu zestawu SDK SageMaker Python dla potoków. W scenariuszu, który przedstawiamy w tym poście, dane wejściowe są dzielone na zestawy uczące i walidacyjne i zapisywane z powrotem w wiadrze S3 poprzez uruchomienie zadania przetwarzania SageMaker.

Gdy dane są gotowe w Amazon S3, rozpoczyna się zadanie szkoleniowe SageMaker. Po pomyślnym przeszkoleniu i utworzeniu modelu krok oceny modelu jest wykonywany na danych walidacyjnych za pośrednictwem zadania transformacji wsadowej programu SageMaker. Metryki modelu są następnie porównywane z metrykami modelu z poprzedniego tygodnia przy użyciu zadania przetwarzania SageMaker. Zespół zdefiniował wiele niestandardowych kryteriów oceny odchyleń w wydajności modelu. Model jest odrzucany lub zatwierdzany na podstawie tych kryteriów. Jeśli model zostanie odrzucony, poprzedni zatwierdzony model jest używany do następnych zadań wnioskowania. Jeśli model zostanie zatwierdzony, jego wersja jest rejestrowana i ten model jest używany do zadań wnioskowania. Interesariusze otrzymują powiadomienie o wyniku za pośrednictwem Amazon Cloud Watch alarmy.

Poniższy zrzut ekranu z Studio Amazon SageMaker przedstawia kroki potoku szkoleniowego.

PackagingInnovation-SMP-szkolenie

Pipelines śledzi każdy przebieg potoku, który możesz monitorować w Studio. Alternatywnie możesz sprawdzić postęp biegu za pomocą Boto3 albo Interfejs wiersza poleceń AWS (AWS CLI). Możesz wizualizować dane modelu w Studio i porównywać różne wersje modeli.

Potok wnioskowania

Zespół Amazon Packaging Innovation co miesiąc odświeża prognozy dotyczące całego asortymentu produktów. Codzienne prognozy są generowane w celu zapewnienia na czas zaleceń dotyczących pakowania dla nowo dodanych zasobów reklamowych przy użyciu najnowszego wytrenowanego modelu. Wymaga to codziennego uruchamiania potoku wnioskowania z różnymi ilościami danych. Poniższy diagram ilustruje ten przepływ pracy.

Opakowania Innowacja-wnioskowanie-architektura

Podobnie jak w przypadku potoku szkoleniowego, wnioskowanie rozpoczyna się od wyładowania danych z Amazon Redshift do zasobnika S3. Obiekt pliku umieszczony w Amazon S3 wyzwala funkcję Lambda, która inicjuje potok wnioskowania. Funkcje są przygotowywane do wnioskowania, a dane są dzielone na pliki o odpowiedniej wielkości za pomocą zadania przetwarzania SageMaker. Następnie potok identyfikuje najnowszy zatwierdzony model w celu uruchomienia prognoz i załadowania ich do zasobnika S3. Na koniec prognozy są ładowane z powrotem do Amazon Redshift za pomocą interfejsu API boto3 w ramach zadania przetwarzania SageMaker.

Poniższy zrzut ekranu ze Studio przedstawia szczegóły potoku wnioskowania.

Poprawa stabilności i elastyczności rurociągów ML w firmie Amazon Packaging Innovation dzięki Amazon SageMaker Pipelines PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Korzyści z wyboru architekta przepływów pracy ML za pomocą SageMaker Pipelines

W tej sekcji omówimy korzyści, jakie zespół Amazon Packaging Innovation zrealizował po przejściu na Pipelines w celu uczenia modeli i wnioskowania.

Gotowe do użycia funkcje MLOps na poziomie produkcyjnym

Porównując różne wewnętrzne i zewnętrzne rozwiązania dla następnego rozwiązania potoku ML, jeden analityk danych był w stanie prototypować i opracować pełną wersję przepływu pracy ML za pomocą Pipelines w środowisku Studio Jupyter w czasie krótszym niż 3 tygodnie. Nawet na etapie prototypowania stało się jasne, że Pipelines dostarczył wszystkie niezbędne komponenty infrastruktury wymagane do przepływu pracy na poziomie produkcyjnym: wersjonowanie modelu, buforowanie i alarmy. Natychmiastowa dostępność tych funkcji oznaczała, że ​​nie trzeba poświęcać dodatkowego czasu na ich opracowywanie i dostosowywanie. Był to wyraźny dowód wartości, który przekonał zespół Amazon Packaging Innovation, że Pipelines to właściwe rozwiązanie.

Elastyczność w tworzeniu modeli ML

Największą korzyścią dla naukowców zajmujących się danymi w zespole była możliwość łatwego eksperymentowania i iteracji w różnych modelach. Bez względu na preferowany przez nich framework do pracy z ML oraz liczbę etapów i związanych z tym funkcji, Pipelines zaspokoiło ich potrzeby. Naukowcy zajmujący się danymi uzyskali możliwość eksperymentowania bez konieczności czekania na rozpoczęcie sprintu rozwoju oprogramowania w celu dodania dodatkowej funkcji lub kroku.

Zredukowane koszty

Możliwości Pipelines programu SageMaker to za darmo: płacisz tylko za zasoby obliczeniowe i pamięć związaną ze szkoleniem i wnioskowaniem. Jednak myśląc o kosztach, należy wziąć pod uwagę nie tylko koszt używanych usług, ale także godziny pracy programistów potrzebne do utrzymania przepływu pracy, debugowania i instalowania poprawek. Orkiestrowanie za pomocą Pipelines jest prostsze, ponieważ składa się z mniejszej liczby elementów i znanej infrastruktury. Wcześniej dodanie nowej funkcji wymagało co najmniej dwóch osób (badacza danych i inżyniera oprogramowania) w zespole Amazon Packaging Innovation, aby ją wdrożyć. Dzięki przeprojektowanemu potoku wysiłki inżynierskie są teraz skierowane na dodatkową niestandardową infrastrukturę wokół potoku, taką jak utworzenie jednego repozytorium do śledzenia kodu uczenia maszynowego, uproszczenie wdrażania modelu na kontach AWS, rozwój zintegrowanych zadań ETL i wspólnych funkcje wielokrotnego użytku.

Możliwość buforowania kroków z podobnymi danymi wejściowymi również przyczyniła się do obniżenia kosztów, ponieważ zespoły były mniej skłonne do ponownego uruchomienia całego potoku. Zamiast tego mogliby łatwo rozpocząć od punktu porażki.

Wnioski

Zespół Amazon Packaging Innovation co miesiąc szkoli modele ML i regularnie aktualizuje prognozy dla zalecanych rodzajów opakowań produktów. Zalecenia te pomogły im osiągnąć wiele celów dla całego zespołu i całej firmy, zmniejszając ilość odpadów i zachwycając klientów każdym zamówieniem. Potoki uczenia i wnioskowania muszą działać niezawodnie i regularnie, a jednocześnie umożliwiać ciągłe ulepszanie modeli.

Przejście na Pipelines umożliwiło zespołowi wdrożenie czterech nowych architektur modeli multimodalnych do produkcji w czasie krótszym niż 2 miesiące. Wdrożenie nowego modelu przy użyciu poprzedniej architektury wymagałoby od 5 dni (przy tej samej architekturze modelu) do 1 miesiąca (przy nowej architekturze modelu). Wdrożenie tego samego modelu przy użyciu Pipelines umożliwiło zespołowi skrócenie czasu opracowywania do 4 godzin przy tej samej architekturze modelu i do 5 dni przy nowej architekturze modelu. To przekłada się na oszczędność prawie 80% godzin pracy.

Dodatkowe zasoby

Więcej informacji można znaleźć w następujących zasobach:


O autorach

Ankur-Shukla-autorAnkur Szukla jest głównym analitykiem danych w AWS-ProServe z siedzibą w Palo Alto. Ankur ma ponad 15-letnie doświadczenie w doradztwie, pracując bezpośrednio z klientem i pomagając mu rozwiązywać problemy biznesowe za pomocą technologii. Kieruje wieloma globalnymi inicjatywami nauk stosowanych i ML-Ops w ramach AWS. W wolnym czasie lubi czytać i spędzać czas z rodziną.

Akash-Singla-autorAkash Singla jest starszym inżynierem programistycznym w zespole Amazon Packaging Innovation. Ma ponad 17-letnie doświadczenie w rozwiązywaniu krytycznych problemów biznesowych za pomocą technologii dla kilku branż biznesowych. Obecnie koncentruje się na modernizacji infrastruktury NAWS pod kątem różnych aplikacji zorientowanych na pakowanie, aby lepiej je skalować.

Witalina-Komashko-autorWitalina Komaszko jest analitykiem danych w AWS Professional Services. Posiada doktorat z farmakologii i toksykologii, ale przeszła do nauki o danych z pracy eksperymentalnej, ponieważ chciała „posiadać własne generowanie danych i interpretację wyników”. Wcześniej w swojej karierze współpracowała z firmami biotechnologicznymi i farmaceutycznymi. W AWS lubi rozwiązywać problemy klientów z różnych branż i poznawać ich unikalne wyzwania.

Prasanth-Meiyappan-autorPrasant Meiyappan jest starszym naukowcem w firmie Amazon Packaging Innovation od ponad 4 lat. Ma ponad 6 lat doświadczenia w branży w zakresie uczenia maszynowego i dostarczał produkty, które poprawiają jakość wyszukiwania klientów i poprawiają doświadczenie klientów w zakresie opakowań. Prasanth pasjonuje się zrównoważonym rozwojem i ma doktorat z modelowania statystycznego zmian klimatycznych.

Matthew-Bales-autorMateusz Bales jest starszym naukowcem pracującym nad optymalizacją wyboru rodzaju opakowania przy użyciu opinii klientów i uczenia maszynowego. Przed Amazonem Matt pracował jako post-doc wykonując symulacje fizyki cząstek w Niemczech, a w poprzednim życiu był kierownikiem produkcji radioaktywnych implantów medycznych w startupie. Posiada tytuł doktora. doktorat z fizyki na Uniwersytecie Michigan.

Znak czasu:

Więcej z Uczenie maszynowe AWS