Amazon SageMaker – Uczenie maszynowe jedną z najważniejszych technologii transformacyjnych nie tylko dla CEO czy dyrektorów ds. informacji, ale również dla programistów zajmujących się danymi.
Uczenie maszynowe jest jedną z najważniejszych technologii transformacyjnych nie tylko dla dyrektorów generalnych i dyrektorów ds. informacji, ale również dla programistów zajmujących się danymi. Aby w sposób szybszy i łatwiejszy budować najnowocześniejsze aplikacje, niezbędne są algorytmy obsługujące niemalże nieskończoną ilości danych. Taką rolę spełnia funkcja skalowalności, charakterystyczna m.in. dla usługi Amazon SageMaker.
Algorytmy strumieniowe
Algorytmy Amazon SageMaker przyjmują model obliczeń strumieniowych, dzięki któremu możliwe jest przeprocesowanie nieskończonej ilości danych. Algorytm przechodzi przez zestaw danych tylko raz, a następnie przyjmuje ślad o stałej pamięci. Takie rozwiązanie wyklucza przechowywanie, tasowanie i wielokrotne czytanie danych, a także losowy dostęp do poszczególnych rekordów. Ponadto, algorytmy strumieniowania pobierają w sposób natywny dane ze źródeł krótkotrwałych, podczas gdy tradycyjne algorytmy uczenia maszynowego zwykle pobierają dane ze źródeł trwałych, takich jak dyski lokalne.
Inną istotną zaletą algorytmów strumieniowania jest stan algorytmu, który zawiera wszystkie niezbędne zmienne, statystyki i struktury danych potrzebne do przeprowadzania aktualizacji i kontynuowania treningu. Takie rozwiązanie zapewnia odporność na awarie i możliwość kontroli. Dzięki tej funkcji, możliwa jest nauka przyrostowa, multi-pass i multi-epoch oraz wstrzymywanie i wznawianie, które zamiast uruchamiania całego treningu od początku, aktualizuje model tylko o nowe dane.
Przyspieszenie i dystrybucja
Programiści szkolący algorytmy uczenia maszynowego na dużą skalę zainteresowani są skróceniem czasu i zmniejszeniem kosztów pracy. Dlatego algorytmy Amazon SageMaker skonstruowane są w taki sposób, aby wykorzystywać wiele typów instancji, wspierać zarówno obliczenia CPU jak i GPU, oraz pracować na wielu urządzeniach jednocześnie.
Amazon SageMaker obsługuje potężne mechanizmy zarządzania kontenerami, które obejmują wykorzystanie wielu kontenerów na różnych urządzeniach z szybką siecią i dostępem do podstawowego sprzętu takiego jak procesory graficzne. Zadanie treningowe, które trwa dziesięć godzin na jednym komputerze, można uruchomić na 10 komputerach i zakończyć w ciągu godziny. Czas nauki można jeszcze bardziej skrócić poprzez zamianę urządzenia na takie z obsługą GPU – komentuje Tomasz Stachlewski, Senior Solutions Architect w Amazon Web Services w Polsce.
Dystrybucję między urządzeniami uzyskuje się za pośrednictwem serwera parametrów, który przechowuje stan wszystkich urządzeń uczestniczących w treningu. Serwer parametrów dzięki asynchronicznej aktualizacji i luźnym właściwościom parametrów osiąga maksymalną przepustowość. Mimo iż są one niedopuszczalne w typowych, relacyjnych bazach danych, to dla uczenia maszynowego warto osiągnąć kompromis między szybkością a dokładnością.
Modelowanie po treningu
Przy procesowaniu dużych zbiorów danych w sposób strumieniowy, modelowanie po treningu (HPO) jest utrudnione. Ponowne uruchomienie zadania jest niemożliwe w przypadku krótkotrwałych źródeł danych, a w przypadku źródeł trwałych, jest ono nieefektywne. Algorytmy Amazon SageMaker rozwiązują ten problem poprzez naukę ekspresyjnego stanu obiektu, z którego można stworzyć wiele różnych modeli. Oznacza to, że już po jednym treningu możliwe jest zbadanie wielu różnych konfiguracji treningowych.
Bardziej efektywne wykorzystanie
Algorytmy Amazon SageMaker są zgodne z powyższymi zasadami projektowania, a zestaw SDK (Software Development Kit) pozwala nam je dokładnie przetestować zanim je wdrożymy – kontynuuje Stachlewski. Usługa trenuje duże modele na większej liczbie danych w sposób szybszy, a także jest tańsza i dokładniejsza niż jakiekolwiek inne rozwiązanie open source. Dzięki swoim algorytmom, zmienia sposób, w jaki firmy wykorzystują uczenie maszynowe.