Aplikacje uczenia maszynowego (ML) są złożone we wdrażaniu i często wymagają możliwości hiperskalowania oraz mają bardzo niskie wymagania dotyczące opóźnień i rygorystyczne budżety kosztów. Przypadki użycia, takie jak wykrywanie oszustw, rekomendacje produktów i przewidywanie ruchu to przykłady, w których milisekundy mają znaczenie i są krytyczne dla sukcesu biznesowego. Należy spełnić ścisłe umowy dotyczące poziomu usług (SLA), a typowe żądanie może wymagać wielu kroków, takich jak wstępne przetwarzanie, transformacja danych, inżynieria funkcji, logika wyboru modelu, agregacja modeli i przetwarzanie końcowe.
Wdrażanie modeli ML na dużą skalę przy zoptymalizowanych kosztach i wydajności obliczeniowej może być zniechęcającym i uciążliwym zadaniem. Każdy model ma swoje zalety i zależności w oparciu o zewnętrzne źródła danych, a także środowisko wykonawcze, takie jak moc procesora CPU/GPU bazowych zasobów obliczeniowych. Aplikacja może wymagać wielu modeli ML do obsłużenia jednego żądania wnioskowania. W niektórych scenariuszach żądanie może przepływać przez wiele modeli. Nie ma uniwersalnego podejścia i ważne jest, aby praktycy ML szukali wypróbowanych i sprawdzonych metod radzenia sobie z powtarzającymi się wyzwaniami związanymi z hostingiem ML. Doprowadziło to do ewolucji wzorców projektowych dla hostingu modeli ML.
W tym poście przyjrzymy się typowym wzorcom projektowym służącym do tworzenia aplikacji ML Amazon Sage Maker.
Wzorce projektowe do budowania aplikacji ML
Przyjrzyjmy się następującym wzorcom projektowym używanym do hostowania aplikacji ML.
Aplikacje ML oparte na jednym modelu
Jest to świetna opcja, gdy przypadek użycia ML wymaga jednego modelu do obsługi żądania. Model jest wdrażany w dedykowanej infrastrukturze obliczeniowej z możliwością skalowania w oparciu o ruch wejściowy. Ta opcja jest również idealna, gdy aplikacja kliencka ma wymaganie wnioskowania o małym opóźnieniu (rzędu milisekund lub sekund).
Aplikacje ML oparte na wielu modelach
Aby hosting był bardziej ekonomiczny, ten wzorzec projektowy umożliwia hostowanie wielu modeli w tej samej infrastrukturze dzierżawy. Wiele modeli ML może współdzielić zasoby hosta lub kontenera, w tym buforowanie najczęściej używanych modeli ML w pamięci, co skutkuje lepszym wykorzystaniem pamięci i zasobów obliczeniowych. W zależności od typów modeli wybranych do wdrożenia, współhostowanie modeli może wykorzystywać następujące metody:
- Hosting wielomodelowy – Ta opcja umożliwia hostowanie wielu modeli przy użyciu współdzielonego kontenera do obsługi na jednym punkcie końcowym. Ta funkcja jest idealna, gdy masz dużą liczbę podobnych modeli, które możesz obsługiwać za pośrednictwem udostępnionego kontenera do obsługi i nie musisz uzyskiwać dostępu do wszystkich modeli w tym samym czasie.
- Hosting wielokontenerowy – Ta opcja jest idealna, gdy masz wiele modeli działających na różnych stosach obsługujących z podobnymi potrzebami w zakresie zasobów, a poszczególne modele nie mają wystarczającego ruchu, aby wykorzystać pełną pojemność instancji punktów końcowych. Hosting wielokontenerowy umożliwia wdrażanie wielu kontenerów korzystających z różnych modeli lub struktur w jednym punkcie końcowym. Modele mogą być całkowicie heterogeniczne, z własnym niezależnym stosem obsługującym.
- Zespoły wzorcowe – W wielu przypadkach użycia produkcyjnego często może istnieć wiele modeli poprzedzających dostarczających dane wejściowe do danego modelu niższego szczebla. Tutaj przydają się zespoły. Wzory zespolone obejmują miksowanie danych wyjściowych z jednego lub więcej modeli podstawowych w celu zmniejszenia błąd uogólnienia prognozy. Modele podstawowe mogą być różnorodne i trenowane przez różne algorytmy. Zespoły modeli mogą przewyższać pojedyncze modele, ponieważ błąd przewidywania modelu zmniejsza się, gdy stosuje się podejście zespołowe.
Poniżej przedstawiono typowe przypadki użycia wzorców zespołowych i odpowiadających im diagramów wzorców projektowych:
- Zbieranie rozproszone – We wzorcu rozproszenie-zbieranie żądanie wnioskowania jest kierowane do wielu modeli. Agregator jest następnie używany do zbierania odpowiedzi i destylacji ich w pojedynczą odpowiedź wnioskowania. Na przykład przypadek użycia klasyfikacji obrazu może wykorzystywać trzy różne modele do wykonania zadania. Wzorzec scatter-gather umożliwia łączenie wyników wnioskowania przeprowadzonego na trzech różnych modelach i wybranie najbardziej prawdopodobnego modelu klasyfikacji.
- Agregat modelowy – We wzorcu agregacji wyniki z wielu modeli są uśredniane. W przypadku modeli klasyfikacyjnych oceniane są prognozy wielu modeli w celu określenia klasy, która otrzymała najwięcej głosów i jest traktowana jako ostateczny wynik zespołu. Na przykład w dwuklasowym problemie klasyfikacji zbioru owoców jako pomarańczy lub jabłek, jeśli dwa modele głosują na pomarańczę, a jeden model głosuje na jabłko, to zagregowanym wynikiem będzie pomarańcza. Agregacja pomaga zwalczać niedokładności w poszczególnych modelach i sprawia, że dane wyjściowe są dokładniejsze.
- Wybór dynamiczny – Innym wzorcem dla modeli zespolonych jest dynamiczna selekcja modeli dla zadanych atrybutów wejściowych. Na przykład w przypadku danych wejściowych obrazów owoców, jeśli dane wejściowe zawierają pomarańczę, zostanie użyty model A, ponieważ jest on wyspecjalizowany dla pomarańczy. Jeśli dane wejściowe zawierają jabłko, zostanie użyty model B, ponieważ jest on wyspecjalizowany w przypadku jabłek.
- Aplikacje ML wnioskowania szeregowego – W przypadku seryjnego wzorca wnioskowania, znanego również jako potok wnioskowania, przypadki użycia mają wymagania dotyczące wstępnego przetwarzania danych przychodzących przed wywołaniem wstępnie wytrenowanego modelu ML w celu wygenerowania wnioskowania. Ponadto w niektórych przypadkach wygenerowane wnioski mogą wymagać dalszego przetwarzania, aby można je było łatwo wykorzystać w dalszych aplikacjach. Potok wnioskowania umożliwia ponowne użycie tego samego kodu wstępnego przetwarzania, który był używany podczas uczenia modelu do przetwarzania danych żądania wnioskowania używanych do prognoz.
- Logika biznesowa – Produkcja ML zawsze wiąże się z logiką biznesową. Wzorce logiki biznesowej obejmują wszystko, co jest potrzebne do wykonania zadania ML, które nie jest wnioskowaniem modelu ML. Obejmuje to ładowanie modelu z Usługa Amazon Simple Storage (Amazon S3), na przykład przeszukiwanie bazy danych w celu sprawdzenia poprawności danych wejściowych, uzyskiwanie wstępnie obliczonych funkcji z magazynu funkcji i tak dalej. Po wykonaniu tych kroków logiki biznesowej dane wejściowe są przekazywane do modeli ML.
Opcje wnioskowania ML
W przypadku wdrażania modelu ważne jest, aby pracować wstecz od przypadku użycia. Jaka jest częstotliwość przewidywania? Czy oczekujesz ruchu na żywo do swojej aplikacji i odpowiedzi w czasie rzeczywistym dla swoich klientów? Czy masz wiele modeli przeszkolonych dla różnych podzbiorów danych dla tego samego przypadku użycia? Czy przewidywany ruch podlega wahaniom? Czy opóźnienie wnioskowania jest problemem? Na podstawie tych szczegółów wszystkie poprzednie wzorce projektowe można zaimplementować przy użyciu następujących opcji wdrażania:
- Wnioskowanie w czasie rzeczywistym – Wnioskowanie w czasie rzeczywistym jest idealne dla obciążeń wnioskowania, w przypadku których wymagane są interakcje w czasie rzeczywistym i małe opóźnienia. Obciążenia wnioskowania ML w czasie rzeczywistym mogą obejmować aplikację ML opartą na jednym modelu, gdzie aplikacja wymaga tylko jednego modelu ML do obsługi pojedynczego żądania, lub aplikację ML opartą na wielu modelach, gdzie aplikacja wymaga wielu modeli ML do obsługi jednego wniosek.
- Wnioskowanie w czasie zbliżonym do rzeczywistego (asynchroniczne). – Dzięki wnioskowaniu w czasie zbliżonym do rzeczywistego możesz kolejkować nadchodzące żądania. Można to wykorzystać do uruchamiania wnioskowania na danych wejściowych, które mają setki MB. Działa w czasie zbliżonym do rzeczywistego i pozwala użytkownikom wykorzystywać dane wejściowe do wnioskowania oraz odczytywać dane wyjściowe z punktu końcowego z zasobnika S3. Może być szczególnie przydatny w przypadkach z NLP i wizją komputerową, gdzie występują duże ładunki, które wymagają dłuższego czasu wstępnego przetwarzania.
- Wnioskowanie wsadowe – Wnioskowanie wsadowe można wykorzystać do uruchamiania wnioskowania w trybie offline na dużym zbiorze danych. Ponieważ działa w trybie offline, wnioskowanie wsadowe nie zapewnia najniższego opóźnienia. W tym przypadku żądanie wnioskowania jest przetwarzane za pomocą zaplanowanego lub opartego na zdarzeniu wyzwalacza zadania wnioskowania wsadowego.
- Wnioskowanie bezserwerowe – Wnioskowanie bezserwerowe jest idealne dla obciążeń, które mają okresy bezczynności między skokami ruchu i może tolerować kilka dodatkowych sekund opóźnienia (zimny start) dla pierwszego wywołania po okresie bezczynności. Na przykład usługa chatbota lub aplikacja do przetwarzania formularzy lub analizy danych z dokumentów. W takim przypadku możesz potrzebować opcji wnioskowania online, która jest w stanie automatycznie aprowizować i skalować moc obliczeniową na podstawie liczby żądań wnioskowania. A w czasie bezczynności powinno być w stanie całkowicie wyłączyć moc obliczeniową, aby nie naliczać opłat. Wnioskowanie bezserwerowe eliminuje niezróżnicowaną ciężką pracę związaną z wybieraniem i zarządzaniem serwerami poprzez automatyczne uruchamianie zasobów obliczeniowych oraz skalowanie ich w zależności od ruchu.
Użyj funkcji dopasowania, aby wybrać odpowiednią opcję wnioskowania ML
Wybór odpowiedniej opcji hostingu jest ważny, ponieważ wpływa na użytkowników końcowych renderowanych przez Twoje aplikacje. W tym celu zapożyczamy pojęcie funkcje fitnessu, który został wymyślony przez Neala Forda i jego kolegów z AWS Partner ThoughtWorks w ich pracy Budowanie architektur ewolucyjnych. Funkcje fitness zapewniają preskryptywną ocenę różnych opcji hostingu w oparciu o cele klienta. Funkcje fitness pomagają uzyskać niezbędne dane umożliwiające planowaną ewolucję architektury. Ustalają wymierne wartości, aby ocenić, jak blisko jest Twoje rozwiązanie do osiągnięcia wyznaczonych celów. Funkcje fitness mogą i powinny być dostosowywane w miarę ewolucji architektury, aby kierować pożądanym procesem zmian. Zapewnia to architektom narzędzie do kierowania zespołami przy jednoczesnym zachowaniu autonomii zespołu.
Istnieje pięć głównych funkcji fitness, na których klientom zależy, jeśli chodzi o wybór odpowiedniej opcji wnioskowania ML do hostowania ich modeli i aplikacji ML.
Sprawność fizyczna | Opis |
Koszty: |
Wdrażanie i utrzymywanie modelu ML i aplikacji ML w skalowalnym środowisku to krytyczny proces biznesowy, a koszty mogą się znacznie różnić w zależności od wyborów dotyczących infrastruktury hostingu modelu, opcji hostingu, ram ML, charakterystyki modelu ML, optymalizacji, zasad skalowania, i więcej. Obciążenia muszą optymalnie wykorzystywać infrastrukturę sprzętową, aby mieć pewność, że koszty pozostają pod kontrolą. Ta funkcja sprawności odnosi się konkretnie do kosztu infrastruktury, który jest częścią całkowitego całkowitego kosztu posiadania (TCO). Koszty infrastruktury to połączone koszty magazynu, sieci i mocy obliczeniowej. Kluczowe znaczenie ma również zrozumienie innych składników całkowitego kosztu posiadania, w tym kosztów operacyjnych oraz kosztów bezpieczeństwa i zgodności. Koszty operacyjne to połączone koszty obsługi, monitorowania i konserwacji infrastruktury uczenia maszynowego. Koszty operacyjne oblicza się jako wymaganą liczbę inżynierów w oparciu o każdy scenariusz oraz roczną pensję inżynierów, zagregowaną w określonym okresie. Klienci korzystający z samodzielnie zarządzanych rozwiązań ML na Elastyczna chmura obliczeniowa Amazon (Amazonka EC2), Usługa Amazon Elastic Container Service (Amazon ECS) i Elastyczna usługa Amazon Kubernetes (Amazon EKS) muszą sami zbudować narzędzia operacyjne. Klienci korzystający z SageMaker ponoszą znacznie niższy całkowity koszt posiadania. Wnioskowanie SageMaker to w pełni zarządzana usługa, która zapewnia gotowe możliwości wdrażania modeli ML do wnioskowania. Nie musisz aprowizować wystąpień, monitorować kondycji wystąpienia, zarządzać aktualizacjami lub poprawkami zabezpieczeń, emitować metryki operacyjne ani tworzyć monitorowania dla obciążeń wnioskowania ML. Ma wbudowane funkcje zapewniające wysoką dostępność i odporność. SageMaker zapewnia bezpieczeństwo dzięki kompleksowemu szyfrowaniu w stanie spoczynku i podczas przesyłania, w tym szyfrowaniu woluminu głównego i Sklep Amazon Elastic Block (Amazon EBS) głośność, Wirtualna prywatna chmura Amazon (Amazon VPC) wsparcie, Prywatny link AWS, klucze zarządzane przez klienta, AWS Zarządzanie tożsamością i dostępem (IAM) precyzyjna kontrola dostępu, Chmura AWS audyty, szyfrowanie międzywęzłowe do celów szkoleniowych, kontrolę dostępu opartą na tagach, izolację sieci i Interactive Application Proxy. Wszystkie te funkcje bezpieczeństwa są dostarczane od razu w SageMaker i mogą zaoszczędzić firmom dziesiątki miesięcy prac inżynieryjnych w okresie 3 lat. SageMaker jest usługą kwalifikującą się do HIPAA i posiada certyfikaty PCI, SOC, RODO i ISO. SageMaker obsługuje również punkty końcowe FIPS. Aby uzyskać więcej informacji na temat całkowitego kosztu posiadania, patrz Całkowity koszt posiadania Amazon SageMaker. |
Opóźnienie wnioskowania | Wiele modeli i aplikacji uczenia maszynowego ma krytyczne znaczenie dla opóźnień, w przypadku których opóźnienie wnioskowania musi mieścić się w granicach określonych przez cel dotyczący poziomu usług. Opóźnienie wnioskowania zależy od wielu czynników, w tym rozmiaru i złożoności modelu, platformy sprzętowej, środowiska oprogramowania i architektury sieci. Na przykład uruchomienie wnioskowania w przypadku większych i bardziej złożonych modeli może zająć więcej czasu. |
Przepustowość (transakcje na sekundę) | W przypadku wnioskowania o modelu optymalizacja przepustowości ma kluczowe znaczenie dla dostrajania wydajności i osiągania celu biznesowego aplikacji ML. W miarę szybkiego postępu we wszystkich aspektach uczenia maszynowego, w tym implementacji operacji matematycznych niskiego poziomu w projektowaniu układów scalonych, biblioteki specyficzne dla sprzętu odgrywają większą rolę w optymalizacji wydajności. Różne czynniki, takie jak rozmiar ładunku, przeskoki sieci, charakter przeskoków, funkcje wykresu modelu, operatorzy w modelu oraz procesor CPU, GPU i profil pamięci wystąpień hostujących model wpływają na przepływność modelu ML. |
Skalowanie złożoności konfiguracji | Niezwykle ważne jest, aby modele lub aplikacje ML działały w skalowalnej strukturze, która może obsłużyć zapotrzebowanie na zmienny ruch. Pozwala również na maksymalne wykorzystanie zasobów procesora i karty graficznej oraz zapobiega nadmiernej alokacji zasobów obliczeniowych. |
Oczekiwany wzorzec ruchu | Modele lub aplikacje ML mogą mieć różne wzorce ruchu, od ciągłego ruchu na żywo w czasie rzeczywistym do okresowych szczytów tysięcy żądań na sekundę oraz od rzadkich, nieprzewidywalnych wzorców żądań do żądań wsadowych w trybie offline na większych zestawach danych. Zaleca się cofnięcie od oczekiwanego wzorca ruchu w celu wybrania odpowiedniej opcji hostingu dla modelu ML. |
Wdrażanie modeli za pomocą SageMaker
SageMaker to w pełni zarządzana usługa AWS, która zapewnia każdemu programiście i analitykowi danych możliwość szybkiego budowania, trenowania i wdrażania modeli ML na dużą skalę. Dzięki wnioskowaniu SageMaker możesz wdrażać swoje modele ML na hostowanych punktach końcowych i uzyskiwać wyniki wnioskowania. SageMaker zapewnia szeroki wybór sprzętu i funkcji spełniających wymagania dotyczące obciążenia, umożliwiając wybór ponad 70 typów instancji z akceleracją sprzętową. SageMaker może również zapewnić rekomendację typu instancji wnioskowania za pomocą nowej funkcji o nazwie SageMaker Inference Recommender, na wypadek gdybyś nie był pewien, która z nich byłaby najbardziej optymalna dla Twojego obciążenia pracą.
Możesz wybrać opcje wdrażania, które najlepiej odpowiadają Twoim przypadkom użycia, takie jak wnioskowanie w czasie rzeczywistym, asynchroniczne, wsadowe, a nawet bezserwerowe punkty końcowe. Ponadto SageMaker oferuje różne strategie wdrażania, takie jak kanarek, niebieski zielony, cień, oraz testowanie A/B w celu wdrożenia modelu wraz z ekonomicznym wdrożeniem z wieloma modelami, wielokontenerowymi punktami końcowymi i elastycznym skalowaniem. Dzięki wnioskowaniu SageMaker możesz przeglądać metryki wydajności dla swoich punktów końcowych w Amazon Cloud Watch, automatycznie skalować punkty końcowe na podstawie ruchu i aktualizuj swoje modele w produkcji bez utraty dostępności.
SageMaker oferuje cztery opcje wdrożenia modelu, dzięki czemu można rozpocząć prognozowanie:
- Wnioskowanie w czasie rzeczywistym – Jest to odpowiednie dla obciążeń wymagających milisekundowych opóźnień, wielkości ładunku do 6 MB i czasu przetwarzania do 60 sekund.
- Transformacja wsadowa – Jest to idealne rozwiązanie do prognoz offline na dużych partiach danych, które są dostępne z góry.
- Wnioskowanie asynchroniczne – Jest to przeznaczone dla obciążeń, które nie mają wymagań dotyczących opóźnień poniżej sekundy, ładunków o rozmiarze do 1 GB i czasie przetwarzania do 15 minut.
- Wnioskowanie bezserwerowe – Dzięki wnioskowaniu bezserwerowemu można szybko wdrażać modele ML na potrzeby wnioskowania bez konieczności konfigurowania podstawowej infrastruktury lub zarządzania nią. Ponadto płacisz tylko za moc obliczeniową używaną do przetwarzania żądań wnioskowania, co jest idealnym rozwiązaniem w przypadku sporadycznych obciążeń.
Poniższy diagram może pomóc w zrozumieniu opcji wdrożenia modelu hostingu SageMaker wraz z powiązanymi ocenami funkcji fitness.
Przyjrzyjmy się bardziej szczegółowo każdej z opcji wdrożenia.
Wnioskowanie w czasie rzeczywistym w SageMaker
Wnioskowanie w czasie rzeczywistym SageMaker jest zalecane, jeśli utrzymujesz stały ruch i potrzebujesz mniejszych i spójnych opóźnień dla swoich żądań przy rozmiarach ładunku do 6 MB i czasie przetwarzania do 60 sekund. Wdrażasz swój model w usługach hostingowych SageMaker i otrzymujesz punkt końcowy, którego można użyć do wnioskowania. Te punkty końcowe są w pełni zarządzane i obsługują automatyczne skalowanie. Wnioskowanie w czasie rzeczywistym jest popularne w przypadkach użycia, w których oczekuje się synchronicznej odpowiedzi o niskim opóźnieniu i przewidywalnych wzorcach ruchu, takich jak spersonalizowane rekomendacje dotyczące produktów i usług lub wykrywanie oszustw transakcyjnych.
Zazwyczaj aplikacja kliencka wysyła żądania do punktu końcowego HTTPS SageMaker w celu uzyskania wniosków z wdrożonego modelu. Możesz wdrożyć wiele wariantów modelu w tym samym punkcie końcowym HTTPS SageMaker. Jest to przydatne do testowania odmian modelu w produkcji. Automatyczne skalowanie umożliwia dynamiczne dostosowywanie liczby wystąpień udostępnianych dla modelu w odpowiedzi na zmiany w obciążeniu.
Poniższa tabela zawiera wskazówki dotyczące oceny wnioskowania w czasie rzeczywistym SageMaker na podstawie funkcji dopasowania.
Sprawność fizyczna | Opis |
Koszty: |
Punkty końcowe w czasie rzeczywistym oferują synchroniczną odpowiedź na żądania wnioskowania. Ponieważ punkt końcowy jest zawsze uruchomiony i dostępny, aby zapewnić odpowiedź wnioskowania synchronicznego w czasie rzeczywistym, płacisz za korzystanie z instancji. Koszty mogą szybko się sumować w przypadku wdrażania wielu punktów końcowych, zwłaszcza jeśli punkty końcowe nie wykorzystują w pełni bazowych wystąpień. Wybór właściwej instancji dla Twojego modelu pomaga zapewnić najbardziej wydajną instancję przy najniższych kosztach dla Twoich modeli. Zalecane jest automatyczne skalowanie w celu dynamicznego dostosowywania przepustowości w zależności od ruchu w celu utrzymania stałej i przewidywalnej wydajności przy możliwie najniższych kosztach. SageMaker rozszerza dostęp do rodzin instancji ML opartych na Graviton2 i Graviton3. Grawiton AWS Procesory są budowane na zamówienie przez Amazon Web Services przy użyciu 64-bitowych rdzeni ARM Neoverse, aby zapewnić najlepszą wydajność cenową dla obciążeń w chmurze działających na Amazon EC2. Dzięki instancjom opartym na Graviton masz więcej opcji optymalizacji kosztów i wydajności podczas wdrażania modeli ML w SageMaker. SageMaker również obsługuje Instancje Inf1, zapewniając wysoką wydajność i opłacalność wnioskowania ML. Z 1–16 Chipy AWS Inferentia na instancję, instancje Inf1 mogą skalować wydajność i zapewniać nawet trzykrotnie wyższą przepustowość oraz do 50% niższy koszt na wnioskowanie w porównaniu z instancjami opartymi na GPU AWS. Aby użyć instancji Inf1 w SageMaker, możesz skompilować wytrenowane modele za pomocą Amazon Sage Maker Neo i wybierz instancje Inf1, aby wdrożyć skompilowany model w SageMaker. Możesz także odkrywać Plany oszczędnościowe dla SageMaker skorzystać z oszczędności kosztów do 64% w porównaniu z ceną na żądanie. Kiedy tworzysz punkt końcowy, SageMaker dołącza wolumin pamięci EBS do każdej instancji obliczeniowej ML, która hostuje punkt końcowy. Rozmiar woluminu pamięci masowej zależy od typu instancji. Dodatkowy koszt punktów końcowych działających w czasie rzeczywistym obejmuje koszt miesięcznych GB zainicjowanej przestrzeni dyskowej oraz GB danych przetworzonych w i GB danych przetworzonych poza instancją punktu końcowego. |
Opóźnienie wnioskowania | Wnioskowanie w czasie rzeczywistym jest idealne, gdy potrzebny jest trwały punkt końcowy z wymaganiami dotyczącymi opóźnienia w milisekundach. Obsługuje rozmiary ładunku do 6 MB i czas przetwarzania do 60 sekund. |
Wydajność |
Idealna wartość przepustowości wnioskowania zależy od czynników, takich jak model, rozmiar danych wejściowych modelu, rozmiar partii i typ instancji punktu końcowego. W ramach najlepszych praktyk przejrzyj metryki CloudWatch pod kątem żądań danych wejściowych i wykorzystania zasobów oraz wybierz odpowiedni typ instancji, aby osiągnąć optymalną przepustowość. Aplikacja biznesowa może być zoptymalizowana pod kątem przepustowości lub opóźnienia. Na przykład dynamiczne przetwarzanie wsadowe może pomóc zwiększyć przepływność aplikacji wrażliwych na opóźnienia przy użyciu wnioskowania w czasie rzeczywistym. Istnieją jednak ograniczenia wielkości partii, bez których opóźnienie wnioskowania mogłoby mieć wpływ. Opóźnienie wnioskowania będzie rosło w miarę zwiększania rozmiaru partii w celu zwiększenia przepustowości. Dlatego wnioskowanie w czasie rzeczywistym jest idealną opcją dla aplikacji wrażliwych na opóźnienia. SageMaker zapewnia opcje wnioskowania asynchronicznego i transformacji wsadowej, które są zoptymalizowane pod kątem większej przepustowości w porównaniu z wnioskowaniem w czasie rzeczywistym, jeśli aplikacje biznesowe mogą tolerować nieco większe opóźnienia. |
Skalowanie złożoności konfiguracji |
Obsługa punktów końcowych SageMaker w czasie rzeczywistym automatyczne skalowanie po wyjęciu z pudełka. Gdy obciążenie wzrasta, automatyczne skalowanie przenosi więcej instancji do trybu online. Gdy obciążenie spada, automatyczne skalowanie usuwa niepotrzebne wystąpienia, pomagając obniżyć koszty obliczeniowe. Bez skalowania automatycznego należy zapewnić obsługę szczytowego ruchu lub niedostępności modelu ryzyka. O ile ruch w Twoim modelu nie jest stały przez cały dzień, wystąpi nadmiar niewykorzystanej pojemności. Prowadzi to do niskiego wykorzystania i marnowania zasobów. Dzięki SageMaker możesz skonfigurować różne opcje skalowania w oparciu o oczekiwany wzorzec ruchu. Proste skalowanie lub skalowanie śledzenia celu jest idealne, gdy chcesz skalować w oparciu o określoną metrykę CloudWatch. Możesz to zrobić, wybierając określoną metrykę i ustawiając wartości progowe. Zalecane metryki dla tej opcji są średnie Jeśli potrzebujesz zaawansowanej konfiguracji, możesz ustawić politykę skalowania krokowego, aby dynamicznie dostosowywać liczbę instancji do skalowania w oparciu o rozmiar naruszenia alarmu. Pomaga to skonfigurować bardziej agresywną reakcję, gdy popyt osiągnie określony poziom. Możesz użyć zaplanowanej opcji skalowania, gdy wiesz, że zapotrzebowanie jest zgodne z określonym harmonogramem w ciągu dnia, tygodnia, miesiąca lub roku. Ułatwia to określenie harmonogramu jednorazowego, harmonogramu cyklicznego lub wyrażeń cron wraz z godzinami rozpoczęcia i zakończenia, które wyznaczają granice rozpoczęcia i zakończenia działania automatycznego skalowania. Aby uzyskać więcej informacji, zobacz Konfigurowanie punktów końcowych wnioskowania z automatycznym skalowaniem w Amazon SageMaker i Załaduj test i zoptymalizuj punkt końcowy Amazon SageMaker za pomocą automatycznego skalowania. |
Wzór ruchu | Wnioskowanie w czasie rzeczywistym jest idealne dla obciążeń z ciągłym lub regularnym wzorcem ruchu. |
Wnioskowanie asynchroniczne w SageMaker
Asynchroniczne wnioskowanie SageMaker to nowa funkcja w SageMaker, która kolejkuje przychodzące żądania i przetwarza je asynchronicznie. Ta opcja jest idealna w przypadku żądań z dużymi rozmiarami ładunku (do 1 GB), długimi czasami przetwarzania (do 15 minut) i wymaganiami dotyczącymi opóźnień zbliżonych do czasu rzeczywistego. Przykładowe obciążenia dla wnioskowania asynchronicznego obejmują firmy medyczne przetwarzające obrazy lub filmy biomedyczne o wysokiej rozdzielczości, takie jak echokardiogramy, w celu wykrycia anomalii. Aplikacje te otrzymują impulsy ruchu przychodzącego o różnych porach dnia i wymagają przetwarzania w czasie zbliżonym do rzeczywistego przy niskich kosztach. Czasy przetwarzania tych żądań mogą sięgać kilku minut, eliminując potrzebę uruchamiania wnioskowania w czasie rzeczywistym. Zamiast tego ładunki wejściowe mogą być przetwarzane asynchronicznie z magazynu obiektów, takiego jak Amazon S3, z automatycznym kolejkowaniem i predefiniowanym progiem współbieżności. Po przetworzeniu SageMaker umieszcza odpowiedź wnioskowania w poprzednio zwróconej lokalizacji Amazon S3. Opcjonalnie możesz wybrać opcję otrzymywania powiadomień o sukcesach lub błędach za pośrednictwem Usługa prostego powiadomienia Amazon (Amazonskie SNS).
Poniższa tabela zawiera wskazówki dotyczące oceny asynchronicznego wnioskowania SageMaker na podstawie funkcji dopasowania.
Sprawność fizyczna | Opis |
Koszty: | Wnioskowanie asynchroniczne to doskonały wybór w przypadku obciążeń wrażliwych na koszty z dużymi ładunkami i dużym ruchem. Asynchroniczne wnioskowanie pozwala zaoszczędzić na kosztach przez automatyczne skalowanie liczby wystąpień do zera, gdy nie ma żadnych żądań do przetworzenia, więc płacisz tylko wtedy, gdy punkt końcowy przetwarza żądania. Żądania odebrane, gdy nie ma żadnych wystąpień, są umieszczane w kolejce do przetworzenia po skalowaniu punktu końcowego. |
Opóźnienie wnioskowania | Wnioskowanie asynchroniczne jest idealne dla wymagań dotyczących opóźnień w czasie zbliżonym do rzeczywistego. Żądania są umieszczane w kolejce i przetwarzane, gdy tylko obliczenia będą dostępne. Zwykle skutkuje to dziesiątkami milisekund opóźnienia. |
Wydajność | Wnioskowanie asynchroniczne jest idealne w przypadkach użycia, w których nie są wrażliwe na opóźnienia, ponieważ aplikacje nie muszą rezygnować z przepustowości. Żądania nie są odrzucane podczas skoków ruchu, ponieważ asynchroniczny punkt końcowy wnioskowania umieszcza żądania w kolejce, a nie je odrzuca. |
Skalowanie złożoności konfiguracji |
SageMaker obsługuje automatyczne skalowanie dla asynchronicznego punktu końcowego. W przeciwieństwie do punktów końcowych hostowanych w czasie rzeczywistym, punkty końcowe wnioskowania asynchronicznego obsługują skalowanie wystąpień do zera przez ustawienie minimalnej pojemności na zero. W przypadku asynchronicznych punktów końcowych SageMaker zdecydowanie zaleca utworzenie konfiguracji zasad dla skalowania śledzenia celów dla wdrożonego modelu (wariantu). W przypadkach użycia, które mogą tolerować karę zimnego startu wynoszącą kilka minut, można opcjonalnie zmniejszyć liczbę wystąpień punktu końcowego do zera, gdy nie ma żadnych oczekujących żądań, i skalować kopię zapasową w miarę pojawiania się nowych żądań, aby płacić tylko za czas trwania punkty końcowe aktywnie przetwarzają żądania. |
Wzór ruchu | Asynchroniczne punkty końcowe kolejkują przychodzące żądania i przetwarzają je asynchronicznie. Są dobrym rozwiązaniem w przypadku nieregularnych lub rzadkich wzorców ruchu. |
Wnioskowanie wsadowe w SageMaker
Transformacja wsadowa SageMaker jest idealna do prognoz offline na dużych partiach danych, które są dostępne z góry. Funkcja przekształcania wsadowego to wysokowydajna i przepustowa metoda przekształcania danych i generowania wniosków. Jest to idealne rozwiązanie w scenariuszach, w których masz do czynienia z dużymi partiami danych, nie potrzebujesz opóźnienia poniżej sekundy lub musisz zarówno wstępnie przetwarzać, jak i przekształcać dane szkoleniowe. Klienci z niektórych dziedzin, takich jak reklama i marketing lub opieka zdrowotna, często muszą dokonywać prognoz w trybie offline na zestawach danych w hiperskali, w których często celem przypadku użycia jest wysoka przepustowość, a opóźnienia nie stanowią problemu.
Kiedy rozpoczyna się zadanie transformacji wsadowej, SageMaker inicjuje instancje obliczeniowe i rozdziela obciążenie wnioskowania między nimi. Zwalnia zasoby po zakończeniu zadań, więc płacisz tylko za to, co zostało wykorzystane podczas wykonywania zadania. Po zakończeniu zadania SageMaker zapisuje wyniki przewidywania w określonym zasobniku S3. Zadania wnioskowania wsadowego są zwykle dobrymi kandydatami do skalowania poziomego. Każdy pracownik w klastrze może operować na innym podzbiorze danych bez konieczności wymiany informacji z innymi pracownikami. AWS oferuje wiele opcji przechowywania i obliczeń, które umożliwiają skalowanie w poziomie. Przykładowe obciążenia dla transformacji wsadowej SageMaker obejmują aplikacje offline, takie jak aplikacje bankowe do przewidywania odpływu klientów, w przypadku których można zaplanować okresowe uruchamianie zadania offline.
Poniższa tabela zawiera wskazówki dotyczące oceny transformacji wsadowej SageMaker na podstawie funkcji dopasowania.
Sprawność fizyczna | Opis |
Koszty: | Transformacja wsadowa SageMaker umożliwia uruchamianie prognoz na dużych lub małych zestawach danych wsadowych. Opłata jest naliczana za wybrany typ instancji na podstawie czasu użytkowania. SageMaker zarządza udostępnianiem zasobów na początku zadania i zwalnia je po zakończeniu zadania. Nie ma dodatkowych kosztów przetwarzania danych. |
Opóźnienie wnioskowania | Możesz użyć wywołania opartego na zdarzeniu lub zaplanowanego. Opóźnienie może się różnić w zależności od rozmiaru danych wnioskowania, współbieżności zadań, złożoności modelu i pojemności wystąpienia obliczeniowego. |
Wydajność |
Zadania przekształcania wsadowego można wykonywać na wielu zestawach danych, od petabajtów danych do bardzo małych zestawów danych. Nie ma potrzeby zmiany rozmiaru większych zestawów danych na małe fragmenty danych. Zadania przekształcania wsadowego można przyspieszyć, używając optymalnych wartości parametrów, takich jak Maksymalna ładowność w MB, Maksymalne Współbieżne Transformacjelub Strategia wsadowa. Idealna wartość dla Przetwarzanie wsadowe może zwiększyć przepustowość i zoptymalizować zasoby, ponieważ pomaga ukończyć większą liczbę wniosków w określonym czasie kosztem opóźnień. Aby zoptymalizować wdrożenie modelu pod kątem większej przepływności, ogólną wskazówką jest zwiększanie rozmiaru wsadu do momentu zmniejszenia przepływności. |
Skalowanie złożoności konfiguracji | Transformacja wsadowa SageMaker jest używana do wnioskowania offline, które nie jest wrażliwe na opóźnienia. |
Wzór ruchu | W przypadku wnioskowania w trybie offline zadanie transformacji wsadowej jest planowane lub uruchamiane przy użyciu wyzwalacza opartego na zdarzeniu. |
Bezserwerowe wnioskowanie w SageMaker
Bezserwerowe wnioskowanie SageMaker umożliwia wdrażanie modeli ML do wnioskowania bez konieczności konfigurowania podstawowej infrastruktury lub zarządzania nią. W oparciu o liczbę żądań wnioskowania otrzymywanych przez Twój model, wnioskowanie bezserwerowe SageMaker automatycznie udostępnia, skaluje i wyłącza moc obliczeniową. W rezultacie płacisz tylko za czas obliczeń potrzebny do uruchomienia kodu wnioskowania i ilość przetworzonych danych, a nie za czas bezczynności. Możesz użyć wbudowanych algorytmów SageMaker i kontenerów obsługujących platformę ML, aby wdrożyć swój model w bezserwerowym punkcie końcowym wnioskowania lub wybrać własny kontener. Jeśli ruch stanie się przewidywalny i stabilny, możesz łatwo zaktualizować bezserwerowy punkt końcowy wnioskowania do punktu końcowego SageMaker w czasie rzeczywistym bez konieczności wprowadzania zmian w obrazie kontenera. Dzięki wnioskowaniu bezserwerowemu korzystasz również z innych funkcji SageMaker, w tym wbudowanych wskaźników, takich jak liczba wywołań, błędy, opóźnienia, wskaźniki hosta i błędy w CloudWatch.
Poniższa tabela zawiera wskazówki dotyczące oceny wnioskowania bezserwerowego SageMaker na podstawie funkcji dopasowania.
Sprawność fizyczna | Opis |
Koszty: | W modelu płatności zgodnie z rzeczywistym użyciem wnioskowanie bezserwerowe jest opłacalną opcją, jeśli masz rzadkie lub przerywane wzorce ruchu. Płacisz tylko za czas, przez jaki punkt końcowy przetwarza żądanie, dzięki czemu możesz zaoszczędzić na kosztach, jeśli wzorzec ruchu jest przerywany. |
Opóźnienie wnioskowania |
Bezserwerowe punkty końcowe oferują niskie opóźnienia wnioskowania (rzędu milisekund do sekund), z możliwością natychmiastowego skalowania od dziesiątek do tysięcy wnioskowań w ciągu kilku sekund na podstawie wzorców użytkowania, co czyni je idealnym rozwiązaniem dla aplikacji ML z przerywanym lub nieprzewidywalnym ruchem. Ponieważ bezserwerowe punkty końcowe udostępniają zasoby obliczeniowe na żądanie, w punkcie końcowym może wystąpić kilka dodatkowych sekund opóźnienia (zimny start) dla pierwszego wywołania po okresie bezczynności. Czas zimnego startu zależy od rozmiaru modelu, czasu potrzebnego na pobranie modelu oraz czasu uruchamiania kontenera. |
Wydajność | Podczas konfigurowania bezserwerowego punktu końcowego można określić rozmiar pamięci i maksymalną liczbę jednoczesnych wywołań. Bezserwerowe wnioskowanie SageMaker automatycznie przypisuje zasoby obliczeniowe proporcjonalnie do wybranej pamięci. Jeśli wybierzesz większy rozmiar pamięci, Twój kontener będzie miał dostęp do większej liczby procesorów wirtualnych. Z reguły rozmiar pamięci powinien być co najmniej tak duży, jak rozmiar twojego modelu. Dostępne rozmiary pamięci to 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB i 6144 MB. Niezależnie od wybranego rozmiaru pamięci bezserwerowe punkty końcowe mają do dyspozycji 5 GB efemerycznej pamięci dyskowej. |
Skalowanie złożoności konfiguracji | Bezserwerowe punkty końcowe automatycznie uruchamiają zasoby obliczeniowe i skalują je w górę iw dół w zależności od ruchu, eliminując potrzebę wybierania typów instancji lub zarządzania zasadami skalowania. Eliminuje to niezróżnicowaną ciężką pracę związaną z wybieraniem i zarządzaniem serwerami. |
Wzór ruchu | Wnioskowanie bezserwerowe jest idealne w przypadku obciążeń z rzadkimi lub przerywanymi wzorcami ruchu. |
Modeluj hosting wzorców projektowych w SageMaker
Punkty końcowe wnioskowania SageMaker używają kontenerów Docker do hostowania modeli ML. Kontenery umożliwiają pakowanie oprogramowania w standardowe jednostki, które działają spójnie na dowolnej platformie obsługującej platformę Docker. Zapewnia to przenośność między platformami, niezmienne wdrożenia infrastruktury oraz łatwiejsze zarządzanie zmianami i implementacje CI/CD. SageMaker zapewnia gotowe zarządzane kontenery dla popularnych platform, takich jak Apache MXNet, TensorFlow, PyTorch, Sklearn i Hugging Face. Aby uzyskać pełną listę dostępnych obrazów kontenerów SageMaker, zobacz Dostępne obrazy kontenerów do głębokiego uczenia się. W przypadku, gdy SageMaker nie ma obsługiwanego kontenera, możesz także zbudować własny kontener (BYOC) i przesłać własny niestandardowy obraz, instalując zależności niezbędne dla twojego modelu.
Aby wdrożyć model w SageMaker, potrzebujesz kontenera (kontenery zarządzane przez SageMaker lub BYOC) oraz instancję obliczeniową do hostowania kontenera. SageMaker obsługuje wiele zaawansowanych opcji dla typowych wzorców projektowych hostingu modeli ML, w których modele mogą być hostowane w jednym kontenerze lub współhostowane we współdzielonym kontenerze.
Aplikacja ML działająca w czasie rzeczywistym może wykorzystywać jeden model lub wiele modeli do obsługi pojedynczego żądania prognozy. Na poniższym diagramie przedstawiono różne scenariusze wnioskowania dla aplikacji ML.
Przyjrzyjmy się odpowiedniej opcji hostingu SageMaker dla każdego z powyższych scenariuszy wnioskowania. Możesz odnieść się do funkcji fitness, aby ocenić, czy jest to właściwa opcja dla danego przypadku użycia.
Hosting aplikacji ML opartej na jednym modelu
Istnieje kilka opcji hostowania aplikacji ML opartych na jednym modelu przy użyciu usług hostingowych SageMaker, w zależności od scenariusza wdrożenia.
Punkt końcowy z jednym modelem
Pojedyncze punkty końcowe SageMaker umożliwiają hostowanie jednego modelu w kontenerze hostowanym w dedykowanych instancjach w celu uzyskania niskich opóźnień i wysokiej przepustowości. Te punkty końcowe są w pełni zarządzane i obsługują automatyczne skalowanie. Punkt końcowy z jednym modelem można skonfigurować jako udostępniony punkt końcowy, do którego przekazuje się konfigurację infrastruktury punktu końcowego, taką jak typ i liczba instancji, lub jako bezserwerowy punkt końcowy, w którym SageMaker automatycznie uruchamia zasoby obliczeniowe i skaluje je w zależności od ruchu, eliminując potrzebę wybrać typy instancji lub zarządzać zasadami skalowania. Bezserwerowe punkty końcowe są przeznaczone dla aplikacji z ruchem przerywanym lub nieprzewidywalnym.
Na poniższym diagramie przedstawiono scenariusze wnioskowania o jednym modelu punktu końcowego.
Poniższa tabela zawiera wskazówki dotyczące oceniania funkcji sprawności dla zainicjowanego pojedynczego modelu punktu końcowego. Aby zapoznać się z ocenami funkcji przydatności punktów końcowych bezserwerowych, zapoznaj się z sekcją bezserwerowych punktów końcowych w tym poście.
Sprawność fizyczna | Opis |
Koszty: | Opłata jest naliczana za korzystanie z wybranego typu instancji. Ponieważ punkt końcowy jest zawsze uruchomiony i dostępny, koszty mogą szybko się sumować. Wybór właściwej instancji dla Twojego modelu pomaga zapewnić najbardziej wydajną instancję przy najniższych kosztach dla Twoich modeli. Zalecane jest automatyczne skalowanie w celu dynamicznego dostosowywania przepustowości w zależności od ruchu w celu utrzymania stałej i przewidywalnej wydajności przy możliwie najniższych kosztach. |
Opóźnienie wnioskowania | Pojedynczy model punktu końcowego zapewnia interaktywne, synchroniczne wnioskowanie w czasie rzeczywistym z wymaganiami dotyczącymi opóźnienia w milisekundach. |
Wydajność | Na przepływność mogą mieć wpływ różne czynniki, takie jak rozmiar danych wejściowych modelu, rozmiar partii, typ wystąpienia punktu końcowego i tak dalej. Zaleca się przejrzenie metryk CloudWatch pod kątem żądań wejściowych i wykorzystania zasobów oraz wybranie odpowiedniego typu instancji w celu osiągnięcia optymalnej przepustowości. SageMaker zapewnia funkcje do zarządzania zasobami i optymalizacji wydajności wnioskowania podczas wdrażania modeli ML. Możesz zoptymalizować wydajność modelu za pomocą Neolub użyj instancji Inf1, aby uzyskać lepszą przepustowość hostowanych modeli SageMaker przy użyciu instancji GPU dla punktu końcowego. |
Skalowanie złożoności konfiguracji | Automatyczne skalowanie jest obsługiwane od razu po wyjęciu z pudełka. SageMaker zaleca wybranie odpowiedniego konfiguracja skalowania przeprowadzając testy obciążeniowe. |
Wzór ruchu | Punkt końcowy z jednym modelem jest idealny dla obciążeń z przewidywalnymi wzorcami ruchu. |
Współgospodarzem wielu modeli
Gdy masz do czynienia z dużą liczbą modeli, wdrożenie każdego z nich na pojedynczym punkcie końcowym z dedykowanym kontenerem i instancją może spowodować znaczny wzrost kosztów. Ponadto zarządzanie tak wieloma modelami w produkcji staje się trudne, zwłaszcza gdy nie trzeba wywoływać wszystkich modeli w tym samym czasie, ale nadal trzeba, aby były dostępne przez cały czas. Współhostowanie wielu modeli na tych samych podstawowych zasobach obliczeniowych ułatwia zarządzanie wdrożeniami uczenia maszynowego na dużą skalę i obniża koszty hostingu dzięki zwiększonemu wykorzystaniu punktu końcowego i jego bazowych zasobów obliczeniowych. SageMaker obsługuje zaawansowane opcje współhostowania modeli, takie jak wielomodelowy punkt końcowy (MME) dla modeli jednorodnych i wielokontenerowy punkt końcowy (MCE) dla modeli heterogenicznych. Modele jednorodne używają tej samej struktury ML w kontenerze usług udostępnionych, podczas gdy modele heterogeniczne umożliwiają wdrażanie wielu kontenerów obsługujących, które używają różnych modeli lub struktur w jednym punkcie końcowym.
Poniższy diagram przedstawia opcje współhostowania modelu przy użyciu SageMaker.
Wielomodelowe punkty końcowe SageMaker
SageMaker MME umożliwiają hostowanie wielu modeli przy użyciu współdzielonego kontenera do obsługi na jednym punkcie końcowym. Jest to skalowalne i ekonomiczne rozwiązanie umożliwiające wdrożenie dużej liczby modeli obsługujących ten sam przypadek użycia, strukturę lub logikę wnioskowania. MME mogą dynamicznie obsługiwać żądania w oparciu o model wywołany przez dzwoniącego. Zmniejsza to również koszty wdrożenia, ponieważ SageMaker zarządza ładowaniem modeli do pamięci i skalowaniem ich na podstawie wzorców ruchu do nich. Ta funkcja jest idealna, gdy masz dużą liczbę podobnych modeli, które możesz obsługiwać za pośrednictwem udostępnionego kontenera do obsługi i nie musisz uzyskiwać dostępu do wszystkich modeli w tym samym czasie. Wielomodelowe punkty końcowe umożliwiają również współdzielenie czasu zasobów pamięci w modelach. Działa to najlepiej, gdy modele są dość podobne pod względem wielkości i opóźnienia wywołania, umożliwiając MME efektywne wykorzystanie instancji we wszystkich modelach. SageMaker MME obsługuje hostowanie modeli wspieranych przez procesor i kartę graficzną. Używając modeli wspieranych przez GPU, możesz obniżyć koszty wdrożenia modelu dzięki zwiększonemu wykorzystaniu punktu końcowego i jego bazowych przyspieszonych instancji obliczeniowych. Aby zapoznać się z rzeczywistym przypadkiem użycia MME, zobacz Jak skalować wnioskowanie uczenia maszynowego dla przypadków użycia SaaS dla wielu dzierżawców.
Poniższa tabela zawiera wskazówki dotyczące oceny funkcji sprawności dla MME.
Sprawność fizyczna | Opis |
Koszty: |
MME umożliwiają korzystanie ze współdzielonego kontenera do obsługi tysięcy modeli na jednym punkcie końcowym. Zmniejsza to znacznie koszty hostingu, poprawiając wykorzystanie punktów końcowych w porównaniu z punktami końcowymi z jednym modelem. Na przykład, jeśli masz 10 modeli do wdrożenia przy użyciu wystąpienia ml.c5.large, na podstawie Cennik SageMakera, koszt posiadania 10 trwałych punktów końcowych jednego modelu wynosi: 10 * 0.102 USD = 1.02 USD na godzinę. Podczas gdy jeden MME obsługujący 10 modeli, osiągamy 10-krotne oszczędności kosztów: 1 * 0.102 USD = 0.102 USD za godzinę. |
Opóźnienie wnioskowania |
Domyślnie MME buforują często używane modele w pamięci i na dysku, aby zapewnić wnioskowanie o niskim opóźnieniu. Modele z pamięci podręcznej są zwalniane lub usuwane z dysku tylko wtedy, gdy w kontenerze zabraknie pamięci lub miejsca na dysku, aby pomieścić nowo docelowy model. MME umożliwiają leniwe ładowanie modeli, co oznacza, że modele są ładowane do pamięci przy pierwszym wywołaniu. Optymalizuje to wykorzystanie pamięci; powoduje to jednak skoki czasu odpowiedzi przy pierwszym ładowaniu, co powoduje problem z zimnym startem. W związku z tym MME są również dobrze dostosowane do scenariuszy, które mogą tolerować sporadyczne kary za opóźnienia związane z zimnym startem, które występują podczas wywoływania rzadko używanych modeli. Aby osiągnąć cele dotyczące opóźnień i przepustowości aplikacji ML, instancje procesora graficznego są preferowane w stosunku do instancji procesora (biorąc pod uwagę moc obliczeniową oferowaną przez procesory graficzne). Dzięki obsłudze MME dla GPU możesz wdrożyć tysiące modeli głębokiego uczenia się za jednym punktem końcowym SageMaker. MME mogą uruchamiać wiele modeli na rdzeniu GPU, udostępniać instancje GPU za punktem końcowym w wielu modelach oraz dynamicznie ładować i usuwać modele w oparciu o ruch przychodzący. Dzięki temu można znacznie obniżyć koszty i osiągnąć najlepszą wydajność cenową. Jeśli Twój przypadek użycia wymaga znacznie większej liczby transakcji na sekundę (TPS) lub opóźnień, zalecamy hostowanie modeli na dedykowanych punktach końcowych. |
Wydajność |
Idealna wartość przepustowości wnioskowania MME zależy od takich czynników, jak model, rozmiar ładunku i typ instancji punktu końcowego. Większa ilość pamięci instancji umożliwia załadowanie większej liczby modeli gotowych do obsługi żądań wnioskowania. Nie musisz tracić czasu na ładowanie modelu. Większa liczba procesorów wirtualnych umożliwia jednoczesne wywoływanie bardziej unikatowych modeli. MME dynamicznie ładują i wyładowują model do iz pamięci instancji, co może mieć wpływ na wydajność we/wy. SageMaker MME z GPU działa przy użyciu Serwer wnioskowania NVIDIA Triton, które jest oprogramowaniem typu open source do obsługi wnioskowania, które upraszcza proces udostępniania wnioskowania i zapewnia wysoką wydajność wnioskowania. SageMaker ładuje model do pamięci kontenera NVIDIA Triton na akcelerowanej przez GPU instancji i obsługuje żądanie wnioskowania. Rdzeń GPU jest współdzielony przez wszystkie modele w instancji. Jeśli model jest już załadowany do pamięci kontenera, kolejne żądania są obsługiwane szybciej, ponieważ SageMaker nie musi go ponownie pobierać i ładować. W przypadku udanych wdrożeń produkcyjnych zaleca się przeprowadzenie odpowiednich testów i analiz wydajności. SageMaker zapewnia metryki CloudWatch dla wielomodelowych punktów końcowych, dzięki czemu możesz określić wykorzystanie punktu końcowego i współczynnik trafień w pamięci podręcznej, aby pomóc zoptymalizować punkt końcowy. |
Skalowanie złożoności konfiguracji | Wielomodelowe punkty końcowe SageMaker w pełni obsługują automatyczne skalowanie, które zarządza replikami modeli, aby zapewnić skalowanie modeli w oparciu o wzorce ruchu. Jednak zalecane jest odpowiednie testowanie obciążenia w celu określenia optymalnego rozmiaru instancji do automatycznego skalowania punktu końcowego. Właściwy dobór wielkości floty MME jest ważny, aby uniknąć rozładunku zbyt wielu modeli. Ładowanie setek modeli w kilku większych instancjach może w niektórych przypadkach prowadzić do ograniczania przepustowości, a preferowane może być użycie większej liczby mniejszych instancji. Aby skorzystać z automatycznego skalowania modelu w SageMaker, upewnij się, że masz konfiguracja automatycznego skalowania instancji w celu udostępnienia dodatkowej pojemności instancji. Skonfiguruj zasady skalowania na poziomie punktu końcowego z parametrami niestandardowymi lub wywołaniami na minutę (zalecane), aby dodać więcej instancji do floty punktów końcowych. Częstotliwości wywołań używane do wyzwalania zdarzenia skalowania automatycznego są oparte na zagregowanym zestawie prognoz w pełnym zestawie modeli obsługiwanych przez punkt końcowy. |
Wzór ruchu | MME są idealne, gdy masz dużą liczbę modeli o podobnych rozmiarach, które możesz obsługiwać za pośrednictwem współdzielonego kontenera do serwowania i nie musisz uzyskiwać dostępu do wszystkich modeli w tym samym czasie. |
Wielokontenerowe punkty końcowe SageMaker
SageMaker MCE obsługa wdrażania do 15 kontenerów korzystających z różnych modeli lub platform w jednym punkcie końcowym i wywoływanie ich niezależnie lub sekwencyjnie w celu wnioskowania o małych opóźnieniach i oszczędności kosztów. Modele mogą być całkowicie heterogeniczne, z własnym niezależnym stosem obsługującym. Bezpieczne hostowanie wielu modeli z różnych platform w jednej instancji może zaoszczędzić do 90% kosztów.
Wzorce wywołań MCE są następujące:
- Potoki wnioskowania – Kontenery w MME można wywoływać w sekwencji liniowej, znanej również jako a szeregowy potok wnioskowania. Są one zwykle używane do rozdzielenia przetwarzania wstępnego, wnioskowania o modelu i przetwarzania końcowego w niezależne kontenery. Dane wyjściowe z bieżącego kontenera są przekazywane jako dane wejściowe do następnego. Są one reprezentowane jako model pojedynczego potoku w SageMaker. Potok wnioskowania można wdrożyć jako MME, w którym jeden z kontenerów w potoku może dynamicznie obsługiwać żądania na podstawie wywoływanego modelu.
- Inwokacja bezpośrednia - Z bezpośrednia inwokacja, żądanie może zostać wysłane do określonego kontenera wnioskowania hostowanego na MCE.
Poniższa tabela zawiera wskazówki dotyczące oceny funkcji sprawności dla MCE.
Sprawność fizyczna | Opis |
Koszty: | MCE umożliwiają uruchamianie do 15 różnych kontenerów ML na jednym punkcie końcowym i wywoływanie ich niezależnie, co pozwala obniżyć koszty. Ta opcja jest idealna, gdy masz wiele modeli działających na różnych stosach obsługujących z podobnymi potrzebami w zakresie zasobów, a poszczególne modele nie mają wystarczającego ruchu, aby wykorzystać pełną pojemność instancji punktów końcowych. MCE są zatem bardziej opłacalne niż pojedynczy model punktu końcowego. MCE oferują odpowiedź wnioskowania synchronicznego, co oznacza, że punkt końcowy jest zawsze dostępny i płacisz za czas działania instancji. Koszty mogą się sumować w zależności od liczby i rodzaju instancji. |
Opóźnienie wnioskowania | MCE są idealne do uruchamiania aplikacji ML z różnymi strukturami i algorytmami ML dla każdego modelu, do których uzyskuje się dostęp rzadko, ale nadal wymagają wnioskowania o małych opóźnieniach. Modele są zawsze dostępne do wnioskowania o małych opóźnieniach i nie ma problemu z zimnym startem. |
Wydajność | MCE są ograniczone do maksymalnie 15 kontenerów w wielokontenerowym punkcie końcowym, a wnioskowanie GPU nie jest obsługiwane z powodu rywalizacji o zasoby. W przypadku wielokontenerowych punktów końcowych korzystających z trybu bezpośredniego wywołania, SageMaker nie tylko dostarcza metryki na poziomie instancji, tak jak ma to miejsce w przypadku innych popularnych punktów końcowych, ale także obsługuje metryki dla poszczególnych kontenerów. W ramach najlepszych praktyk przejrzyj metryki CloudWatch pod kątem żądań danych wejściowych i wykorzystania zasobów oraz wybierz odpowiedni typ instancji, aby osiągnąć optymalną przepustowość. |
Skalowanie złożoności konfiguracji | MCE obsługują automatyczne skalowanie. Jednak w celu skonfigurowania automatycznego skalowania zaleca się, aby model w każdym kontenerze wykazywał podobne wykorzystanie procesora i opóźnienie dla każdego żądania wnioskowania. Jest to zalecane, ponieważ jeśli ruch do wielokontenerowego punktu końcowego zostanie przesunięty z modelu niskiego wykorzystania procesora do modelu wysokiego wykorzystania procesora, ale ogólna liczba wywołań pozostaje taka sama, punkt końcowy nie jest skalowany w poziomie i liczba instancji może być niewystarczająca obsłużyć wszystkie żądania do modelu wysokiego wykorzystania procesora. |
Wzór ruchu | MCE są idealne do obciążeń z ciągłymi lub regularnymi wzorcami ruchu, do hostowania modeli w różnych platformach (takich jak TensorFlow, PyTorch lub Sklearn), które mogą nie mieć wystarczającego ruchu, aby nasycić pełną pojemność instancji punktu końcowego. |
Hosting aplikacji ML opartej na wielu modelach
Wiele aplikacji biznesowych musi korzystać z wielu modeli uczenia maszynowego, aby obsłużyć pojedyncze żądanie prognozy dla swoich konsumentów. Na przykład firma zajmująca się handlem detalicznym, która chce dostarczać rekomendacje swoim użytkownikom. Aplikacja ML w tym przypadku użycia może chcieć użyć różnych niestandardowych modeli do rekomendacji różnych kategorii produktów. Jeśli firma chce dodać personalizację rekomendacji poprzez wykorzystanie indywidualnych informacji o użytkowniku, liczba niestandardowych modeli dalej wzrasta. Hostowanie każdego modelu niestandardowego w odrębnym wystąpieniu obliczeniowym jest nie tylko kosztowne, ale także prowadzi do niepełnego wykorzystania zasobów hostingu, jeśli nie wszystkie modele są często używane. SageMaker oferuje wydajne opcje hostingu dla aplikacji ML opartych na wielu modelach.
Poniższy diagram przedstawia opcje hostingu wielu modeli dla pojedynczego punktu końcowego przy użyciu SageMaker.
Szeregowy potok wnioskowania
Potok wnioskowania to model SageMaker składający się z liniowej sekwencji 2–15 kontenerów, które przetwarzają żądania wnioskowania o dane. Używasz potoku wnioskowania do definiowania i wdrażania dowolnej kombinacji wstępnie wytrenowanych wbudowanych algorytmów SageMaker i własnych niestandardowych algorytmów spakowanych w kontenerach Docker. Potoku wnioskowania można użyć do łączenia zadań związanych z przetwarzaniem wstępnym, przewidywaniami i przetwarzaniem końcowym. Dane wyjściowe z jednego kontenera są przekazywane jako dane wejściowe do następnego. Podczas definiowania kontenerów dla modelu potoku określa się również kolejność uruchamiania kontenerów. Są one reprezentowane jako model pojedynczego potoku w SageMaker. Potok wnioskowania można wdrożyć jako MME, w którym jeden z kontenerów w potoku może dynamicznie obsługiwać żądania na podstawie wywoływanego modelu. Możesz także uruchomić A transformacja wsadowa zadanie z potokiem wnioskowania. Potoki wnioskowania są w pełni zarządzane.
Poniższa tabela zawiera wskazówki dotyczące oceny funkcji przydatności dla hostingu modelu ML przy użyciu szeregowego potoku wnioskowania.
Sprawność fizyczna | Opis |
Koszty: | Szeregowy potok wnioskowania umożliwia uruchamianie do 15 różnych kontenerów ML na jednym punkcie końcowym, co prowadzi do opłacalności hostingu kontenerów wnioskowania. Korzystanie z tej funkcji nie wiąże się z żadnymi dodatkowymi kosztami. Płacisz tylko za instancje uruchomione na punkcie końcowym. Koszty mogą się sumować w zależności od liczby i rodzaju instancji. |
Opóźnienie wnioskowania | Gdy aplikacja ML jest wdrażana jako potok wnioskowania, dane między różnymi modelami nie opuszczają przestrzeni kontenera. Przetwarzanie funkcji i wnioskowanie przebiega z małymi opóźnieniami, ponieważ kontenery znajdują się w tych samych instancjach EC2. |
Wydajność | W modelu potoku wnioskowania SageMaker obsługuje wywołania jako sekwencję żądań HTTP. Pierwszy kontener w potoku obsługuje początkowe żądanie, następnie odpowiedź pośrednia jest wysyłana jako żądanie do drugiego kontenera i tak dalej dla każdego kontenera w potoku. SageMaker zwraca klientowi ostateczną odpowiedź. Przepustowość zależy od czynników, takich jak model, rozmiar danych wejściowych modelu, rozmiar partii i typ wystąpienia punktu końcowego. W ramach najlepszych praktyk przejrzyj metryki CloudWatch pod kątem żądań danych wejściowych i wykorzystania zasobów oraz wybierz odpowiedni typ instancji, aby osiągnąć optymalną przepustowość. |
Skalowanie złożoności konfiguracji | Szeregowe potoki wnioskowania obsługują automatyczne skalowanie. Jednak w celu skonfigurowania automatycznego skalowania zaleca się, aby model w każdym kontenerze wykazywał podobne wykorzystanie procesora i opóźnienie dla każdego żądania wnioskowania. Jest to zalecane, ponieważ jeśli ruch do wielokontenerowego punktu końcowego zostanie przesunięty z modelu niskiego wykorzystania procesora do modelu wysokiego wykorzystania procesora, ale ogólna liczba wywołań pozostaje taka sama, punkt końcowy nie jest skalowany w poziomie i może nie być wystarczającej liczby instancji do obsługiwać wszystkie żądania do modelu wysokiego wykorzystania procesora. |
Wzór ruchu |
Szeregowe potoki wnioskowania idealnie nadają się do przewidywalnych wzorców ruchu z modelami uruchamianymi sekwencyjnie w tym samym punkcie końcowym. |
Wdrażanie zespołów modeli (Triton DAG):
SageMaker oferuje integrację z Serwer wnioskowania NVIDIA Triton przez Kontenery serwera Triton Inference. Kontenery te obejmują NVIDIA Triton Inference Server, obsługę popularnych platform ML oraz przydatne zmienne środowiskowe, które pozwalają zoptymalizować wydajność w SageMaker. Dzięki obrazom kontenerów NVIDIA Triton możesz z łatwością obsługiwać modele ML i korzystać z optymalizacji wydajności, dynamicznego przetwarzania wsadowego i obsługi wielu ram zapewnianych przez NVIDIA Triton. Triton pomaga zmaksymalizować wykorzystanie GPU i CPU, dodatkowo obniżając koszt wnioskowania.
W przypadkach użycia biznesowego, w których aplikacje ML używają kilku modeli do obsługi żądania prognozy, jeśli każdy model używa innej struktury lub jest hostowany w osobnej instancji, może to prowadzić do zwiększonego obciążenia i kosztów, a także do wzrostu ogólnego opóźnienia. SageMaker NVIDIA Triton Inference Server obsługuje wdrażanie modeli ze wszystkich głównych platform, takich jak TensorFlow GraphDef, TensorFlow SavedModel, ONNX, PyTorch TorchScript, TensorRT i formaty modeli Python/C++ i inne. Zespół modeli Triton reprezentuje potok jednego lub więcej modeli lub logiki przetwarzania wstępnego i końcowego oraz połączenie tensorów wejściowych i wyjściowych między nimi. Pojedyncze żądanie wnioskowania skierowane do zespołu wyzwala uruchomienie całego potoku. Triton ma również wiele wbudowanych algorytmów planowania i przetwarzania wsadowego, które łączą indywidualne żądania wnioskowania w celu poprawy przepustowości wnioskowania. Te decyzje dotyczące planowania i przetwarzania wsadowego są przejrzyste dla klienta żądającego wnioskowania. Modele można uruchamiać na procesorach lub procesorach graficznych w celu uzyskania maksymalnej elastyczności i obsługi heterogenicznych wymagań obliczeniowych.
Hostowanie wielu modeli wspieranych przez GPU na wielomodelowych punktach końcowych jest obsługiwane przez Serwer wnioskowania SageMaker Triton. Serwer wnioskowania NVIDIA Triton został rozszerzony o implementację rozwiązania Umowa MME API, do integracji z MME. Możesz użyć serwera NVIDIA Triton Inference Server, który tworzy konfigurację repozytorium modeli dla różnych backendów frameworka, aby wdrożyć MME z automatycznym skalowaniem. Ta funkcja umożliwia skalowanie setek hiperspersonalizowanych modeli, które są precyzyjnie dostrojone, aby zaspokoić wyjątkowe doświadczenia użytkowników końcowych w aplikacjach AI. Możesz także użyć tej funkcji, aby osiągnąć wymaganą wydajność cenową dla aplikacji do wnioskowania przy użyciu ułamkowych procesorów graficznych. Aby dowiedzieć się więcej, patrz Uruchamiaj wiele modeli głębokiego uczenia na GPU z wielomodelowymi punktami końcowymi Amazon SageMaker.
Poniższa tabela zawiera wskazówki dotyczące oceny funkcji przydatności dla hostingu modelu ML przy użyciu MME z obsługą procesora GPU w kontenerach wnioskowania Triton. Aby zapoznać się z punktami końcowymi jednego modelu i ocenami funkcji przydatności punktów końcowych bez serwera, zapoznaj się z wcześniejszymi sekcjami w tym poście.
Sprawność fizyczna | Opis |
Koszty: | SageMaker MME z obsługą GPU przy użyciu Triton Inference Server zapewniają skalowalny i ekonomiczny sposób wdrażania dużej liczby modeli głębokiego uczenia się za jednym punktem końcowym SageMaker. W przypadku MME wiele modeli współużytkuje instancję GPU za punktem końcowym. Pozwala to przełamać liniowo rosnące koszty hostingu wielu modeli i ponownie wykorzystać infrastrukturę we wszystkich modelach. Płacisz za czas pracy instancji. |
Opóźnienie wnioskowania |
SageMaker z Triton Inference Server został specjalnie zaprojektowany, aby zmaksymalizować przepustowość i wykorzystanie sprzętu przy bardzo niskim (jednocyfrowym milisekundowym) opóźnieniu wnioskowania. Ma szeroką gamę obsługiwanych platform ML (w tym TensorFlow, PyTorch, ONNX, XGBoost i NVIDIA TensorRT) oraz zaplecza infrastruktury, w tym procesory graficzne NVIDIA, procesory i Inferencja AWS. Dzięki obsłudze MME dla GPU przy użyciu SageMaker Triton Inference Server, możesz wdrożyć tysiące modeli głębokiego uczenia się za jednym punktem końcowym SageMaker. SageMaker ładuje model do pamięci kontenera NVIDIA Triton na akcelerowanej przez GPU instancji i obsługuje żądanie wnioskowania. Rdzeń GPU jest współdzielony przez wszystkie modele w instancji. Jeśli model jest już załadowany do pamięci kontenera, kolejne żądania są obsługiwane szybciej, ponieważ SageMaker nie musi go ponownie pobierać i ładować. |
Wydajność |
MME oferują możliwości jednoczesnego uruchamiania wielu modeli głębokiego uczenia się lub ML na GPU z Triton Inference Server. Pozwala to na łatwe korzystanie z wieloplatformowego, wysokowydajnego wnioskowania NVIDIA Triton z w pełni zarządzanym wdrożeniem modelu SageMaker. Triton obsługuje wszystkie wnioskowania oparte na GPU NVIDIA, procesorach x86, Arm® i AWS Inferentia. Oferuje dynamiczne przetwarzanie wsadowe, równoczesne przebiegi, optymalną konfigurację modelu, zespół modeli oraz strumieniowe przesyłanie danych wejściowych audio i wideo w celu maksymalizacji przepustowości i wykorzystania. Inne czynniki, takie jak rozmiar sieci i ładunku, mogą odgrywać minimalną rolę w narzutach związanych z wnioskowaniem. |
Skalowanie złożoności konfiguracji |
MME mogą skalować poziomo przy użyciu zasad automatycznego skalowania i zapewniać dodatkowe instancje obliczeniowe GPU w oparciu o metryki, takie jak Dzięki serwerowi wnioskowania Triton możesz łatwo zbudować niestandardowy kontener, który zawiera twój model z Tritonem i przenieść go do SageMaker. SageMaker Inference obsłuży żądania i automatycznie skaluje kontener w miarę wzrostu wykorzystania, ułatwiając wdrażanie modelu za pomocą Triton na AWS. |
Wzór ruchu |
MME są idealne do przewidywalnych wzorców ruchu z modelami działającymi jako DAG na tym samym punkcie końcowym. SageMaker zajmuje się kształtowaniem ruchu do punktu końcowego MME i utrzymuje optymalne kopie modeli na instancjach GPU, aby uzyskać najlepszą wydajność cenową. Kontynuuje kierowanie ruchu do instancji, w której ładowany jest model. Jeśli zasoby instancji osiągną pojemność z powodu wysokiego wykorzystania, SageMaker zwalnia z kontenera najmniej używane modele, aby zwolnić zasoby i załadować częściej używane modele. |
Najlepsze praktyki
Rozważ następujące najlepsze praktyki:
- Wysoka spójność i niskie sprzężenie między modelami – Hostuj modele w tym samym kontenerze, który ma wysoką spójność (napędza funkcjonalność pojedynczej firmy) i umieszczaj je razem w celu ułatwienia aktualizacji i zarządzania. Jednocześnie odłącz te modele od siebie (umieść je w innym kontenerze), aby móc łatwo uaktualnić jeden model bez wpływu na inne modele. Hostuj wiele modeli, które używają różnych kontenerów za jednym punktem końcowym i wywołuj je niezależnie lub dodaj logikę wstępnego i końcowego przetwarzania modelu jako szeregowy potok wnioskowania.
- Opóźnienie wnioskowania – Grupuj modele oparte na funkcjonalności pojedynczej firmy i przechowuj je w jednym kontenerze, aby zminimalizować liczbę przeskoków, a tym samym zminimalizować ogólne opóźnienie. Istnieją inne zastrzeżenia, na przykład jeśli zgrupowane modele używają wielu platform; możesz także zdecydować się na hostowanie w wielu kontenerach, ale uruchamianie na tym samym hoście, aby zmniejszyć opóźnienia i zminimalizować koszty.
- Logicznie grupuj modele ML o wysokiej spójności – Grupa logiczna może składać się z modeli jednorodnych (na przykład wszystkie modele XGBoost) lub heterogenicznych (na przykład kilka XGBoost i kilka BERT). Może składać się z modeli, które są współużytkowane przez wiele funkcji biznesowych lub może być specyficzny dla spełnienia tylko jednej funkcji biznesowej.
- Udostępnione modele – Jeśli grupa logiczna składa się ze współdzielonych modeli, łatwość aktualizacji modeli i opóźnienia będą odgrywać główną rolę w architekturze punktów końcowych SageMaker. Na przykład, jeśli priorytetem jest opóźnienie, lepiej umieścić wszystkie modele w jednym kontenerze za pojedynczym punktem końcowym SageMaker, aby uniknąć wielu przeskoków. Wadą jest to, że jeśli którykolwiek z modeli wymaga aktualizacji, spowoduje to aktualizację wszystkich odpowiednich punktów końcowych SageMaker obsługujących ten model.
- Nieudostępniane modele – Jeśli grupa logiczna składa się tylko z modeli specyficznych dla funkcji biznesowych i nie jest współdzielona z innymi grupami, złożoność opakowania i wymiary opóźnienia staną się kluczem do osiągnięcia. Zaleca się hostowanie tych modeli w jednym kontenerze za pojedynczym punktem końcowym SageMaker.
- Efektywne wykorzystanie sprzętu (CPU, GPU) – Grupuj modele oparte na procesorach i hostuj je na tym samym hoście, aby efektywnie wykorzystywać procesor. Podobnie, pogrupuj razem modele oparte na GPU, aby móc efektywnie z nich korzystać i skalować. Istnieją obciążenia hybrydowe, które wymagają zarówno CPU, jak i GPU na tym samym hoście. Hostowanie modeli tylko z procesorem i tylko z procesorem graficznym na tym samym hoście powinno być oparte na wysokich wymaganiach dotyczących spójności i opóźnień aplikacji. Ponadto koszt, możliwość skalowania i promień wybuchu w przypadku awarii to kluczowe wymiary, na które należy zwrócić uwagę.
- Funkcje fitness – Użyj funkcji fitness jako wskazówek przy wyborze opcji hostingu ML.
Wnioski
Jeśli chodzi o hosting ML, nie ma jednego uniwersalnego podejścia. Praktycy ML muszą wybrać odpowiedni wzorzec projektowy, aby sprostać wyzwaniom związanym z hostingiem ML. Ocena funkcji fitness zapewnia wskazówki dotyczące wyboru odpowiedniej opcji hostingu ML.
Aby uzyskać więcej informacji na temat każdej z opcji hostingu, zapoznaj się z następującymi wpisami z tej serii:
O autorach
Dawal Patel jest głównym architektem uczenia maszynowego w AWS. Pracował z organizacjami od dużych przedsiębiorstw po średniej wielkości start-upy w zakresie problemów związanych z przetwarzaniem rozproszonym i sztuczną inteligencją. Koncentruje się na uczeniu głębokim, w tym w domenach NLP i Computer Vision. Pomaga klientom uzyskać wnioskowanie o wysokiej wydajności modelu w SageMaker.
Deepali Rajale jest kierownikiem ds. kont technicznych specjalisty AI/ML w Amazon Web Services. Współpracuje z klientami korporacyjnymi, udzielając wskazówek technicznych dotyczących wdrażania rozwiązań uczenia maszynowego z wykorzystaniem najlepszych praktyk. W wolnym czasie lubi chodzić po górach, oglądać filmy i spotykać się z rodziną i przyjaciółmi.
Saurabha Trikande jest starszym menedżerem produktu w firmie Amazon SageMaker Inference. Pasjonuje go praca z klientami i motywuje go cel, jakim jest demokratyzacja uczenia maszynowego. Koncentruje się na podstawowych wyzwaniach związanych z wdrażaniem złożonych aplikacji ML, wielodostępnych modeli ML, optymalizacji kosztów oraz zwiększaniem dostępności wdrażania modeli uczenia głębokiego. W wolnym czasie Saurabh lubi wędrować, poznawać innowacyjne technologie, śledzić TechCrunch i spędzać czas z rodziną.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- Platoblockchain. Web3 Inteligencja Metaverse. Wzmocniona wiedza. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/machine-learning/model-hosting-patterns-in-amazon-sagemaker-part-1-common-design-patterns-for-building-ml-applications-on-amazon-sagemaker/
- 1
- 10
- 100
- 11
- 39
- 7
- 70
- a
- zdolność
- Zdolny
- O nas
- przyśpieszony
- dostęp
- dostęp
- dostępny
- pomieścić
- Konto
- dokładny
- Osiągać
- osiągnięcia
- w poprzek
- Działania
- aktywnie
- dodatek
- Dodatkowy
- do tego
- adres
- awansować
- zaawansowany
- Korzyść
- Reklama
- oddziaływać
- Po
- zbiór
- Agregator
- agresywny
- umowy
- AI
- AI / ML
- alarm
- Algorytmy
- Wszystkie kategorie
- Pozwalać
- pozwala
- już
- zawsze
- Amazonka
- Amazon EC2
- Amazon Sage Maker
- Amazon Web Services
- ilość
- analiza
- w czasie rzeczywistym sprawiają,
- i
- i infrastruktura
- roczny
- Inne
- Apache
- api
- Apple
- Zastosowanie
- aplikacje
- podejście
- właściwy
- mobilne i webowe
- architektura
- ARM
- sztuczny
- sztuczna inteligencja
- aspekty
- oszacowanie
- powiązany
- atrybuty
- audio
- kontrole
- samochód
- zautomatyzowane
- automatycznie
- automatycznie
- dostępność
- dostępny
- średni
- AWS
- z powrotem
- poparła
- Bankowość
- baza
- na podstawie
- bo
- stają się
- staje się
- zanim
- za
- jest
- korzyści
- BEST
- Najlepsze praktyki
- Ulepsz Swój
- pomiędzy
- biomedyczny
- Blokować
- Pożyczanie
- Granice
- Pudełko
- naruszenie
- przerwa
- przynieść
- Przynosi
- Budżety
- budować
- Budowanie
- wybudowany
- wbudowany
- biznes
- Aplikacje biznesowe
- Proces biznesowy
- biznes
- Cache
- obliczony
- wezwanie
- nazywa
- Gość
- kandydatów
- możliwości
- Pojemność
- który
- walizka
- Etui
- kategorie
- Przyczyny
- pewien
- Dyplomowani
- wyzwania
- zmiana
- Zmiany
- Charakterystyka
- naładowany
- chatbot
- ZOBACZ
- żeton
- wybór
- wybory
- Dodaj
- Wybierając
- klasa
- klasyfikacja
- Klasyfikuj
- klient
- klientów
- Zamknij
- Chmura
- Grupa
- kod
- wymyślony
- koledzy
- zbierać
- zwalczania
- połączenie
- połączyć
- połączony
- wspólny
- Firmy
- sukcesy firma
- w porównaniu
- kompletny
- całkowicie
- kompleks
- kompleksowość
- spełnienie
- składniki
- w składzie
- kompromis
- moc obliczeniowa
- obliczać
- komputer
- Wizja komputerowa
- computing
- pojęcie
- Troska
- równoległy
- systemu
- połączenie
- zgodny
- spożywane
- Konsumenci
- Pojemnik
- Pojemniki
- zawiera
- kontynuować
- ciągły
- ciągły
- kontrola
- rdzeń
- Odpowiedni
- Koszty:
- oszczędności
- opłacalne
- Koszty:
- mógłby
- Stwórz
- tworzy
- krytyczny
- istotny
- Aktualny
- zwyczaj
- klient
- Klientów
- DZIEŃ
- dane
- analiza danych
- nauka danych
- naukowiec danych
- Baza danych
- zbiory danych
- dzień
- czynienia
- Decyzje
- dedykowane
- głęboko
- głęboka nauka
- Domyślnie
- definiowanie
- dostarczyć
- Kreowanie
- wymagania
- Demokratyzować
- W zależności
- zależy
- rozwijać
- wdrażane
- wdrażanie
- Wdrożenie
- wdrożenia
- Wnętrze
- wzorce projektowe
- zaprojektowany
- detal
- detale
- Wykrywanie
- Ustalać
- Deweloper
- oprogramowania
- schematy
- różne
- trudny
- Wymiary
- kierować
- odrębny
- dystrybuowane
- przetwarzanie rozproszone
- inny
- Doker
- dokumenty
- Nie
- domeny
- nie
- na dół
- pobieranie
- minusem
- napędzany
- porzucone
- Rzut
- podczas
- dynamiczny
- każdy
- Wcześniej
- łatwiej
- z łatwością
- Efektywne
- faktycznie
- skuteczność
- efektywność
- wydajny
- skutecznie
- wysiłek
- bądź
- eliminując
- umożliwiać
- Umożliwia
- szyfrowanie
- koniec końców
- Punkt końcowy
- Inżynieria
- Inżynierowie
- dość
- zapewnić
- zapewnia
- Enterprise
- przedsiębiorstwa
- Cały
- Środowisko
- błąd
- Błędy
- szczególnie
- oceniane
- oceny
- Parzyste
- wydarzenie
- wszystko
- ewolucja
- przykład
- przykłady
- wymiana
- eksponaty
- oczekiwać
- spodziewany
- doświadczenie
- Doświadczenia
- odkryj
- wyrażeń
- zewnętrzny
- dodatkowy
- Twarz
- Czynniki
- Brak
- dość
- rodzin
- członków Twojej rodziny
- szybciej
- Cecha
- Korzyści
- karmienie
- kilka
- finał
- i terminów, a
- pierwszy raz
- ZDROWIE I FITNESS
- FLOTA
- Elastyczność
- pływ
- oscylować
- koncentruje
- następujący
- następujący sposób
- Ford
- Nasz formularz
- formularze
- frakcyjny
- Framework
- Ramy
- oszustwo
- wykrywanie oszustw
- Darmowy
- Częstotliwość
- często
- przyjaciele
- od
- Owoce
- pełny
- w pełni
- funkcjonować
- funkcjonalności
- Funkcjonalność
- Funkcje
- dalej
- `RODO
- Ogólne
- wygenerowane
- generujący
- otrzymać
- Dać
- dany
- cel
- Gole
- dobry
- GPU
- GPU
- wykres
- wspaniały
- większy
- bardzo
- Zarządzanie
- Grupy
- Rosnąć
- poprowadzi
- uchwyt
- Uchwyty
- poręczny
- sprzęt komputerowy
- mający
- Zdrowie
- opieki zdrowotnej
- pomoc
- pomoc
- pomaga
- tutaj
- Wysoki
- wysoka wydajność
- wysoka rozdzielczość
- wyższy
- Dobranie (Hit)
- Poziomy
- gospodarz
- hostowane
- Hosting
- koszty hostingu
- usługi hostingowe
- W jaki sposób
- Jednak
- HTML
- HTTPS
- Setki
- Hybrydowy
- idealny
- tożsamość
- Idle
- obraz
- Klasyfikacja obrazu
- zdjęcia
- niezmienny
- Rezultat
- wpływ
- Oddziaływania
- wdrożenia
- realizowane
- wykonawczych
- ważny
- podnieść
- poprawy
- in
- zawierać
- obejmuje
- Włącznie z
- Przybywający
- Zwiększać
- wzrosła
- Zwiększenia
- wzrastający
- niezależny
- niezależnie
- indywidualny
- Informacja
- Infrastruktura
- początkowy
- Innowacyjny
- innowacyjne technologie
- wkład
- Instalacja
- przykład
- zamiast
- integrować
- integracja
- Inteligencja
- interaktywne
- angażować
- ISO
- izolacja
- IT
- Praca
- Oferty pracy
- Klawisz
- Klawisze
- Wiedzieć
- znany
- duży
- większe
- Utajenie
- uruchomić
- uruchamia
- wodowanie
- prowadzić
- prowadzący
- Wyprowadzenia
- UCZYĆ SIĘ
- nauka
- Pozostawiać
- Doprowadziło
- poziom
- biblioteki
- Modernizacja
- Ograniczony
- Limity
- Lista
- relacja na żywo
- załadować
- załadunek
- masa
- lokalizacja
- długo
- dłużej
- Popatrz
- utraty
- Partia
- niski
- maszyna
- uczenie maszynowe
- zrobiony
- Główny
- utrzymać
- utrzymuje
- poważny
- robić
- WYKONUJE
- Dokonywanie
- zarządzanie
- zarządzane
- i konserwacjami
- kierownik
- zarządza
- zarządzający
- wiele
- Marketing
- matematyczny
- Materia
- Maksymalizuj
- maksymalny
- znaczy
- Poznaj nasz
- Pamięć
- metoda
- metody
- metryczny
- Metryka
- może
- minimalny
- minimum
- minut
- Mieszanie
- ML
- Moda
- model
- modele
- monitor
- monitorowanie
- Miesiąc
- miesięcy
- jeszcze
- większość
- zmotywowani
- Kino
- Wielomodelowy punkt końcowy
- wielokrotność
- wielość
- Natura
- niezbędny
- Potrzebować
- wymagania
- sieć
- Nowości
- Następny
- nlp
- powiadomienie
- Powiadomienia
- numer
- Nvidia
- przedmiot
- cel
- Cele
- uzyskiwanie
- okolicznościowy
- oferta
- Oferty
- nieaktywny
- ONE
- Online
- open source
- działać
- działa
- operacyjny
- operacyjny
- operacje
- operatorzy
- Optymalny
- optymalizacja
- Optymalizacja
- zoptymalizowane
- Optymalizuje
- optymalizacji
- Option
- Opcje
- Orange
- zamówienie
- organizacji
- Inne
- wybitny
- ogólny
- własny
- własność
- pakiet
- opakowania
- parametry
- część
- szczególny
- partnerem
- minęło
- namiętny
- Łatki
- Wzór
- wzory
- Zapłacić
- Szczyt
- wykonać
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- wykonywania
- okres
- periodycznie
- okresy
- personalizacja
- Personalizowany
- wybierać
- rurociąg
- Miejsce
- Miejsca
- planowany
- plany
- Platforma
- Platformy
- plato
- Analiza danych Platona
- PlatoDane
- Grać
- plus
- polityka
- polityka
- Popularny
- możliwy
- Post
- Wiadomości
- power
- praktyka
- praktyki
- Możliwy do przewidzenia
- przewidywanie
- przepowiednia
- Przewidywania
- Korzystny
- poprzednio
- Cena
- Główny
- priorytet
- prywatny
- Problem
- problemy
- wygląda tak
- Obrobiony
- procesów
- przetwarzanie
- Procesory
- Produkt
- product manager
- Produkcja
- Produkty
- Profil
- właściwy
- zapewniać
- pod warunkiem,
- zapewnia
- że
- zaopatrzenie
- pełnomocnik
- cel
- Naciskać
- płomień
- szybko
- zasięg
- nośny
- szybko
- Kurs
- ceny
- dosięgnąć
- Osiąga
- Czytaj
- gotowy
- real
- Prawdziwy świat
- w czasie rzeczywistym
- otrzymać
- Odebrane
- otrzymuje
- polecić
- Rekomendacja
- zalecenia
- Zalecana
- polecający
- zaleca
- powtarzające się
- zmniejszyć
- zmniejsza
- odnosi
- Bez względu
- regularny
- związane z
- prasowe
- szczątki
- składnica
- reprezentowane
- reprezentuje
- zażądać
- wywołań
- wymagać
- wymagany
- wymaganie
- wymagania
- Wymaga
- Zasób
- Zasoby
- odpowiedź
- REST
- dalsze
- wynikły
- Efekt
- detaliczny
- powraca
- przeglądu
- Ryzyko
- Rola
- korzeń
- Trasa
- Zasada
- run
- bieganie
- SaaS
- sagemaker
- Wnioskowanie SageMakera
- wynagrodzenie
- taki sam
- Zapisz
- oszczędność
- Oszczędności
- skalowalny
- Skala
- waga
- skalowaniem
- scenariusze
- rozkład
- zaplanowane
- nauka
- Naukowiec
- druga
- sekund
- Sekcja
- działy
- bezpiecznie
- bezpieczeństwo
- wybierając
- wybór
- senior
- wrażliwy
- Sekwencja
- seryjny
- Serie
- służyć
- Bezserwerowe
- Serwery
- służy
- usługa
- Usługi
- służąc
- zestaw
- ustawienie
- kilka
- modelacja
- Share
- shared
- Przesunięcia
- powinien
- Targi
- znaczący
- znacznie
- podobny
- Podobnie
- Prosty
- pojedynczy
- Rozmiar
- rozmiary
- mały
- mniejszy
- So
- Tworzenie
- rozwiązanie
- Rozwiązania
- kilka
- Źródła
- Typ przestrzeni
- specjalista
- wyspecjalizowanym
- specyficzny
- swoiście
- określony
- prędkość
- Spędzanie
- kolce
- stabilny
- stos
- Półki na książki
- początek
- rozpoczęty
- rozpocznie
- startup
- Startups
- stały
- Ewolucja krok po kroku
- Cel
- Nadal
- Zatrzymuje
- przechowywanie
- sklep
- strategie
- Streaming
- Ścisły
- strongly
- kolejny
- sukces
- udany
- taki
- wystarczający
- odpowiedni
- wsparcie
- Utrzymany
- podpory
- powstaje
- stół
- Brać
- trwa
- cel
- ukierunkowane
- Zadanie
- zadania
- zespół
- Zespoły
- TechCrunch
- Techniczny
- Technologies
- najemca
- tensorflow
- test
- Testowanie
- Połączenia
- ich
- sami
- a tym samym
- w związku z tym
- tysiące
- trzy
- próg
- Przez
- poprzez
- wydajność
- czas
- czasy
- do
- razem
- także
- narzędzie
- Kwota produktów:
- Tps
- Śledzenie
- ruch drogowy
- Pociąg
- przeszkolony
- Trening
- transakcyjny
- transakcje
- Przekształcać
- Transformacja
- transformatorowy
- tranzyt
- przezroczysty
- wyzwalać
- Tryton
- SKRĘCAĆ
- typy
- typowy
- zazwyczaj
- dla
- zasadniczy
- zrozumieć
- wyjątkowy
- jednostek
- nieobliczalny
- nieużywana
- Aktualizacja
- Nowości
- uaktualnienie
- zmodernizowane
- uptime
- Stosowanie
- posługiwać się
- przypadek użycia
- Użytkownik
- Użytkownicy
- zazwyczaj
- wykorzystać
- wykorzystany
- UPRAWOMOCNIĆ
- wartość
- Wartości
- Wariant
- różnorodny
- przez
- Wideo
- Filmy
- Zobacz i wysłuchaj
- Wirtualny
- wizja
- Tom
- Głosować
- głosów
- Marnotrawstwo
- sieć
- usługi internetowe
- tydzień
- Co
- Co to jest
- który
- Podczas
- szeroki
- Szeroki zasięg
- będzie
- w ciągu
- bez
- Praca
- pracował
- pracownik
- pracowników
- pracujący
- działa
- świat
- by
- XGBoost
- rok
- You
- Twój
- zefirnet
- zero