Jak Amazon Search obsługuje wielkoskalowe, odporne projekty uczenia maszynowego za pomocą Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. Aj.

Jak Amazon Search prowadzi wielkoskalowe, odporne projekty uczenia maszynowego za pomocą Amazon SageMaker

Jeśli szukałeś przedmiotu do kupienia na amazon.com, skorzystałeś z usług Amazon Search. W Amazon Search odpowiadamy za jakość wyszukiwania i odkrywania dla naszych klientów na całym świecie. W tle indeksujemy nasz światowy katalog produktów, wdrażamy wysoce skalowalne floty AWS i wykorzystujemy zaawansowane uczenie maszynowe (ML), aby dopasować odpowiednie i interesujące produkty do każdego zapytania klienta.

Nasi naukowcy regularnie szkolą tysiące modeli ML, aby poprawić jakość wyników wyszukiwania. Wspieranie eksperymentów na dużą skalę wiąże się z własnymi wyzwaniami, zwłaszcza jeśli chodzi o poprawę produktywności naukowców szkolących te modele ML.

W tym poście dzielimy się tym, jak zbudowaliśmy system zarządzania wokół Amazon Sage Maker szkolenia, dzięki którym nasi naukowcy mogą odpalić i zapomnieć o tysiącach eksperymentów i być powiadamiani w razie potrzeby. Mogą teraz skupić się na zadaniach o dużej wartości i rozwiązywaniu błędów algorytmicznych, oszczędzając 60% swojego czasu.

Wyzwanie

W Amazon Search nasi naukowcy rozwiązują problemy z wyszukiwaniem informacji, eksperymentując i uruchamiając liczne zadania szkoleniowe modeli ML w programie SageMaker. Aby nadążyć za innowacjami naszego zespołu, z czasem wzrosła złożoność naszych modeli i liczba zadań szkoleniowych. Zadania szkoleniowe SageMaker pozwalają nam skrócić czas i zmniejszyć koszty szkolenia i dostrajania tych modeli na dużą skalę, bez konieczności zarządzania infrastrukturą.

Jak wszystko w tak dużych projektach ML, zadania szkoleniowe mogą zakończyć się niepowodzeniem z powodu różnych czynników. Ten post koncentruje się na niedoborach mocy i awariach spowodowanych błędami algorytmów.

Zaprojektowaliśmy architekturę z systemem zarządzania zadaniami, aby tolerować i zmniejszać prawdopodobieństwo niepowodzenia zadania z powodu niedostępności pojemności lub błędów algorytmu. Pozwala naukowcom odpalić i zapomnieć o tysiącach zadań szkoleniowych, automatycznie ponawiać je w przypadku przejściowej niepowodzenia i w razie potrzeby otrzymywać powiadomienia o sukcesie lub niepowodzeniu.

Omówienie rozwiązania

Na poniższym schemacie rozwiązania używamy zadań szkoleniowych SageMaker jako podstawowej jednostki naszego rozwiązania. Oznacza to, że zadanie reprezentuje kompleksowe szkolenie modelu ML.

Przepływ pracy na wysokim poziomie tego rozwiązania wygląda następująco:

  1. Naukowcy wywołują API, aby przesłać nowe zadanie do systemu.
  2. Praca jest zarejestrowana w New status w magazynie metadanych.
  3. Harmonogram zadań asynchronicznie pobiera New zadania z magazynu metadanych, analizuje ich dane wejściowe i próbuje uruchomić zadania szkoleniowe SageMaker dla każdego z nich. Ich status zmienia się na Launched or Failed w zależności od sukcesu.
  4. Monitor sprawdza postęp prac w regularnych odstępach czasu i raportuje ich Completed, Failedlub InProgress stan w magazynie metadanych.
  5. Powiadamiacz jest uruchamiany, aby zgłosić Completed i Failed miejsc pracy dla naukowców.

Utrzymywanie historii zleceń w magazynie metadanych pozwala również naszemu zespołowi na prowadzenie analizy trendów i monitorowanie postępów w projekcie.

To rozwiązanie do planowania zadań wykorzystuje luźno powiązane komponenty bezserwerowe oparte na: AWS Lambda, Amazon DynamoDB, Usługa prostego powiadomienia Amazon (Amazon SNS) i Most zdarzeń Amazona. Zapewnia to skalowalność poziomą, umożliwiając naszym naukowcom uruchamianie tysięcy zadań przy minimalnym nakładzie pracy. Poniższy diagram ilustruje architekturę bezserwerową.

Przegląd architektury naszego rozwiązania

W kolejnych sekcjach omówimy bardziej szczegółowo każdą usługę i jej składniki.

DynamoDB jako magazyn metadanych dla uruchomień zadań

Łatwość użycia i skalowalność DynamoDB sprawiły, że naturalnym wyborem stało się utrwalanie metadanych zadań w tabeli DynamoDB. To rozwiązanie przechowuje kilka atrybutów zadań przesłanych przez naukowców, pomagając w ten sposób w śledzeniu postępów i organizacji przepływu pracy. Najważniejsze atrybuty to:

  • Identyfikator zadania – Unikalny identyfikator pracy. Może to zostać wygenerowane automatycznie lub dostarczone przez naukowca.
  • Status pracy – Status zlecenia.
  • JobArgs – Inne argumenty wymagane do utworzenia zadania szkoleniowego, takie jak ścieżka wejściowa w Amazon S3, identyfikator URI obrazu szkoleniowego i inne. Aby uzyskać pełną listę parametrów wymaganych do utworzenia zadania szkoleniowego, zobacz UtwórzSzkolenie.

Lambda dla podstawowej logiki

Używamy trzech na bazie kontenera Funkcje lambda do organizowania przepływu pracy:

  • Prześlij ofertę pracy – Ta funkcja jest przywoływana przez naukowców, gdy muszą uruchomić nowe miejsca pracy. Dla uproszczenia działa jako API. Możesz również przedrzeć go za pomocą Brama Amazon API, Jeśli potrzebne. Ta funkcja rejestruje zadania w tabeli DynamoDB.
  • Uruchom zadania – Ta funkcja okresowo pobiera New zadania z tabeli DynamoDB i uruchamia je za pomocą SageMaker UtwórzSzkolenie Komenda. Ponawia próby w przypadku przejściowych awarii, takich jak ResourceLimitExceeded i CapacityError, aby wprowadzić odporność do systemu. Następnie aktualizuje status pracy jako Launched or Failed w zależności od sukcesu.
  • Monitoruj zadania – Ta funkcja okresowo śledzi postęp pracy za pomocą OpiszSzkoleniaPraca i odpowiednio aktualizuje tabelę DynamoDB. To ankiety Failed zadania z metadanych i ocenia, czy należy je ponownie przesłać lub oznaczyć jako nieudane. Publikuje również powiadomienia dla naukowców, gdy ich praca osiągnie stan terminalny.

EventBridge do planowania

Używamy EventBridge do uruchamiania funkcji Launch Jobs i Monitor Jobs Lambda zgodnie z harmonogramem. Aby uzyskać więcej informacji, zobacz Samouczek: Zaplanuj funkcje AWS Lambda za pomocą EventBridge.

Alternatywnie można użyć Strumienie Amazon DynamoDB dla wyzwalaczy. Aby uzyskać więcej informacji, zobacz Strumienie DynamoDB i wyzwalacze AWS Lambda.

Powiadomienia z Amazon SNS

Nasi naukowcy są powiadomiony e-mailem za pomocą Amazon SNS kiedy ich zadania osiągną stan końcowy (Failed po maksymalnej liczbie ponownych prób), Completedlub Stopped.

Wnioski

W tym poście udostępniliśmy, w jaki sposób Amazon Search zwiększa odporność obciążeń szkoleniowych modelu ML, planując je i ponawiając je w przypadku niedoborów pojemności lub błędów algorytmu. Użyliśmy funkcji Lambda w połączeniu z tabelą DynamoDB jako centralnym magazynem metadanych w celu zorganizowania całego przepływu pracy.

Taki system harmonogramowania pozwala naukowcom zgłaszać swoje prace i o nich zapomnieć. Oszczędza to czas i pozwala skupić się na pisaniu lepszych modeli.

Aby przejść dalej w swoich odkryciach, możesz odwiedzić Niesamowity SageMaker i znaleźć w jednym miejscu wszystkie istotne i aktualne zasoby potrzebne do pracy z SageMaker.


O autorach

Jak Amazon Search obsługuje wielkoskalowe, odporne projekty uczenia maszynowego za pomocą Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. Aj.Luochao Wanga jest inżynierem oprogramowania w Amazon Search. Koncentruje się na skalowalnych systemach rozproszonych i narzędziach do automatyzacji w chmurze, aby przyspieszyć tempo innowacji naukowych w aplikacjach uczenia maszynowego.

Jak Amazon Search obsługuje wielkoskalowe, odporne projekty uczenia maszynowego za pomocą Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. Aj.Ishan Bhatt jest inżynierem oprogramowania w zespole Amazon Prime Video. Pracuje głównie w przestrzeni MLOps i ma doświadczenie w budowaniu produktów MLOps przez ostatnie 4 lata przy użyciu Amazon SageMaker.

Jak Amazon Search obsługuje wielkoskalowe, odporne projekty uczenia maszynowego za pomocą Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. Aj.Abhinandana Patniego jest starszym inżynierem oprogramowania w Amazon Search. Koncentruje się na budowaniu systemów i narzędzi do skalowalnego rozproszonego szkolenia głębokiego uczenia i wnioskowania w czasie rzeczywistym.

Jak Amazon Search obsługuje wielkoskalowe, odporne projekty uczenia maszynowego za pomocą Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. Aj.Eimana Elnahrawy'ego jest głównym inżynierem oprogramowania w Amazon Search i kieruje pracami nad akceleracją, skalowaniem i automatyzacją uczenia maszynowego. Jej wiedza obejmuje wiele obszarów, w tym uczenie maszynowe, systemy rozproszone i personalizację.

Jak Amazon Search obsługuje wielkoskalowe, odporne projekty uczenia maszynowego za pomocą Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. Aj.Zofia Hamiti jest specjalistą ds. rozwiązań AI / ML w AWS. Pomaga klientom z różnych branż przyspieszyć ich przygodę z AI / ML, pomagając im tworzyć i operacjonalizować kompleksowe rozwiązania uczenia maszynowego.

Romi DattaDr Romi Datta  jest starszym menedżerem ds. zarządzania produktem w zespole Amazon SageMaker odpowiedzialnym za szkolenia, przetwarzanie i magazyn funkcji. Pracuje w AWS od ponad 4 lat, piastując kilka kierowniczych stanowisk zarządzania produktami w SageMaker, S3 i IoT. Przed AWS pracował na różnych stanowiskach związanych z zarządzaniem produktami, inżynierią i kierownictwem operacyjnym w IBM, Texas Instruments i Nvidia. Posiada tytuł magistra i doktora. Doktorat z inżynierii elektrycznej i komputerowej na University of Texas w Austin oraz tytuł MBA na University of Chicago Booth School of Business.

Jak Amazon Search obsługuje wielkoskalowe, odporne projekty uczenia maszynowego za pomocą Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. Aj.RJ jest inżynierem w zespole Search M5 prowadzącym prace nad budowaniem systemów głębokiego uczenia na dużą skalę do szkolenia i wnioskowania. Poza pracą poznaje różne kuchnie i uprawia sporty rakietowe.

Znak czasu:

Więcej z Uczenie maszynowe AWS