Amazon Sage Maker i Punkty końcowe wnioskowania SageMaker zapewnić możliwość szkolenia i wdrażania obciążeń związanych z AI i uczeniem maszynowym (ML). Dzięki punktom końcowym wnioskowania możesz wdrażać modele do wnioskowania w czasie rzeczywistym lub wsadowego. Punkty końcowe obsługują różne typy modeli ML hostowanych przy użyciu Kontenery AWS Deep Learning lub własne kontenery z niestandardowymi algorytmami AI/ML. Kiedy uruchamiasz punkty końcowe wnioskowania SageMaker z wieloma instancjami, SageMaker rozdziela instancje w wielu Strefach Dostępności (w jednym Regionie) w celu zapewnienia wysokiej dostępności.
Jednak w niektórych przypadkach, aby zapewnić możliwie najmniejsze opóźnienia dla klientów w różnych obszarach geograficznych, może być konieczne wdrożenie punktów końcowych wnioskowania w wielu regionach. Wieloregionalne wdrażanie punktów końcowych SageMaker oraz innych powiązanych aplikacji i komponentów infrastruktury może również stanowić część strategii odzyskiwania po awarii dla obciążeń o znaczeniu krytycznym, mającej na celu ograniczenie ryzyka awarii regionalnej.
Projekty SageMakera implementuje zestaw gotowych szablonów MLOps, które mogą pomóc w zarządzaniu wdrożeniami punktów końcowych. W tym poście pokazujemy, jak można rozszerzyć potok projektów MLOps SageMaker, aby umożliwić wieloregionalne wdrażanie punktów końcowych wnioskowania AI/ML.
Omówienie rozwiązania
SageMaker Projects wdraża zarówno szkolenia, jak i potoki MLOPs; można ich użyć do trenowania modelu i wdrażania go przy użyciu punktu końcowego wnioskowania. Aby zmniejszyć złożoność i koszt rozwiązania obejmującego wiele regionów, zakładamy, że trenujesz model w jednym regionie i wdrażasz punkty końcowe wnioskowania w co najmniej dwóch regionach.
Ten post przedstawia rozwiązanie, które nieznacznie modyfikuje szablon projektu SageMaker w celu obsługi wdrażania w wielu regionach. Aby lepiej zilustrować zmiany, poniższy rysunek przedstawia zarówno standardowy potok MLOps utworzony automatycznie przez SageMaker (kroki 1-5), jak i zmiany wymagane do rozszerzenia go na region pomocniczy (kroki 6-11).
Szablon SageMaker Projects automatycznie wdraża standardowe rozwiązanie MLOps, które obejmuje następujące komponenty:
- Most zdarzeń Amazona monitory Zatwierdzenie kodu AWS repozytoria zmian i rozpoczyna się seria AWS Code Pipeline jeśli wykryto zatwierdzenie kodu.
- Jeśli nastąpi zmiana kodu, Tworzenie kodu AWS organizuje szkolenie modelu przy użyciu zadań szkoleniowych programu SageMaker.
- Po zakończeniu pracy szkoleniowej, Rejestr modeli SageMaker rejestruje i kataloguje przeszkolony model.
- Aby przygotować się do etapu wdrożenia, CodeBuild rozszerza domyślny Tworzenie chmury AWS szablonowe pliki konfiguracyjne z parametrami zatwierdzonego modelu z rejestru modeli.
- Na koniec CodePipeline uruchamia szablony CloudFormation, aby wdrożyć zatwierdzony model w punktach końcowych wnioskowania tymczasowego i produkcyjnego.
Poniższe dodatkowe kroki modyfikują szablon projektów MLOps, aby umożliwić wdrożenie modelu AI/ML w regionie pomocniczym:
- Replika Usługa Amazon Simple Storage Zasobnik (Amazon S3) w regionie podstawowym przechowujący artefakty modelu jest wymagany w regionie dodatkowym.
- Szablon CodePipeline został rozszerzony o więcej etapów, aby uruchomić wdrożenie zatwierdzonego modelu w wielu regionach.
- W ramach procesu wdrażania w wielu regionach szablon CodePipeline używa nowego szablonu CloudFormation do wdrażania punktu końcowego wnioskowania w regionie pomocniczym. Szablon CloudFormation wdraża model z artefaktów modelu z zasobnika repliki S3 utworzonego w kroku 6.
9–11 opcjonalnie utwórz zasoby w Amazon trasy 53, Brama Amazon API, AWS Lambda do kierowania ruchu aplikacji do punktów końcowych wnioskowania w regionie pomocniczym.
Wymagania wstępne
Utwórz projekt SageMaker w swoim regionie podstawowym (w tym poście us-east-2). Wykonaj kroki w Tworzenie, automatyzowanie, zarządzanie i skalowanie przepływów pracy ML przy użyciu Amazon SageMaker Pipelines aż do sekcji Modyfikowanie przykładowego kodu dla niestandardowego przypadku użycia.
Zaktualizuj swój potok w CodePipeline
W tej sekcji omówimy, jak dodać ręczne zatwierdzanie CodePipeline i etapy wdrażania modelu między regionami do istniejącego potoku utworzonego dla Ciebie przez SageMaker.
- W konsoli CodePipeline w regionie podstawowym znajdź i wybierz potok zawierający nazwę projektu i kończący się wdrażaniem. Ten potok został już stworzony dla Ciebie przez SageMaker Projects. Zmodyfikuj ten potok, aby dodać etapy wdrażania punktu końcowego AI/ML dla regionu pomocniczego.
- Dodaj Edytuj.
- Dodaj Dodaj etap.
- W razie zamówieenia projektu Pseudonim artystyczny, wchodzić
SecondaryRegionDeployment
. - Dodaj Dodaj etap.
- W
SecondaryRegionDeployment
scena, wybierz Dodaj grupę akcjiW tej grupie akcji dodajesz krok ręcznego zatwierdzania wdrażania modelu w regionie pomocniczym. - W razie zamówieenia projektu Nazwa akcji, wchodzić
ManualApprovaltoDeploytoSecondaryRegion
. - W razie zamówieenia projektu Dostawca akcjiwybierz Zatwierdzenie ręczne.
- Pozostaw wszystkie inne ustawienia domyślne i wybierz Gotowe .
- W
SecondaryRegionDeployment
scena, wybierz Dodaj grupę akcji (poManualApprovaltoDeploytoSecondaryRegion
).W tej grupie akcji dodajesz krok wdrażania między regionami AWS CloudFormation. Określasz nazwy artefaktów kompilacji, które utworzysz później w tym poście. - W razie zamówieenia projektu Nazwa akcji, wchodzić
DeploytoSecondaryRegion
. - W razie zamówieenia projektu Dostawca akcjiwybierz Tworzenie chmury AWS.
- W razie zamówieenia projektu Region, wprowadź nazwę regionu dodatkowego (na przykład
us-west-2
). - W razie zamówieenia projektu Artefakty wejściowe, wchodzić
BuildArtifact
. - W razie zamówieenia projektu Tryb akcji, wchodzić
CreateorUpdateStack
. - W razie zamówieenia projektu Nazwa stosu, wchodzić
DeploytoSecondaryRegion
. - Pod szablon, Dla Nazwa artefaktu, Wybierz
BuildArtifact
. - Pod szablon, Dla Nazwa pliku, wchodzić
template-export-secondary-region.yml
. - wieża Użyj pliku konfiguracyjnego jeden.
- Pod szablon, Dla Nazwa artefaktu, Wybierz
BuildArtifact
. - Pod szablon, Dla Nazwa pliku, wchodzić
secondary-region-config-export.json
. - Pod Nasze możliwościwybierz
CAPABILITY_NAMED_IAM
. - W razie zamówieenia projektu Rolawybierz
AmazonSageMakerServiceCatalogProductsUseRole
stworzony przez SageMaker Projects. - Dodaj Gotowe .
- Dodaj Zapisz.
- Jeśli Zapisz zmiany potoku pojawi się okno dialogowe, wybierz Zapisz ponownie.
Zmodyfikuj rolę uprawnień
Musimy dodać dodatkowe uprawnienia do AWS Zarządzanie tożsamością i dostępem (IAM) rola AmazonSageMakerServiceCatalogProductsUseRole
stworzone przez Katalog usług AWS aby włączyć dostęp do zasobnika CodePipeline i S3 na potrzeby wdrażania w wielu regionach.
- W konsoli IAM wybierz role w okienku nawigacji.
- Wyszukaj i wybierz
AmazonSageMakerServiceCatalogProductsUseRole
. - Wybierz politykę uprawnień w Nazwa polityki:
AmazonSageMakerServiceCatalogProductsUseRole-XXXXXXXXX
. - Dodaj Edytuj zasady , a następnie JSON.
- Zmodyfikuj uprawnienia AWS CloudFormation, aby umożliwić CodePipeline synchronizację zasobnika S3 w regionie pomocniczym. Możesz zastąpić istniejącą zasadę uprawnień zaktualizowaną spośród następujących GitHub repo (patrz wiersze: 16-18, 198, 213)
- Dodaj Zasady weryfikacji.
- Dodaj Zapisz zmiany.
Dodaj szablon wdrożenia dla regionu pomocniczego
Aby uruchomić punkt końcowy wnioskowania w regionie drugorzędnym, SecondaryRegionDeployment
stage potrzebuje szablonu CloudFormation (dla endpoint-config-template-secondary-region.yml
) oraz plik konfiguracyjny (secondary-region-config.json
).
Szablon CloudFormation jest konfigurowany całkowicie za pomocą parametrów; możesz go dalej modyfikować, aby dopasować go do swoich potrzeb. Podobnie możesz użyć pliku konfiguracyjnego do zdefiniowania parametrów konfiguracji uruchamiania punktu końcowego, takich jak typ instancji i liczba instancji:
Aby dodać te pliki do swojego projektu, pobierz je z podanych linków i prześlij je do Studio Amazon SageMaker w regionie podstawowym. W Studio wybierz Przeglądarka plików a następnie folder zawierający nazwę projektu i kończący się na modeldeploy
.
Prześlij te pliki do folderu głównego repozytorium wdrożenia, wybierając ikonę przesyłania. Upewnij się, że pliki znajdują się w folderze głównym, jak pokazano na poniższym zrzucie ekranu.
Zmodyfikuj plik kompilacji Python
Następnie musimy dostosować wdrożenie build.py
plik, aby umożliwić wdrożenie punktu końcowego programu SageMaker w regionie pomocniczym, aby wykonać następujące czynności:
- Pobierz lokalizację artefaktów modelu i Rejestr elastycznego pojemnika Amazon (Amazon ECR) URI dla obrazu modelu w regionie drugorzędnym
- Przygotuj plik parametrów, który jest używany do przekazywania argumentów specyficznych dla modelu do szablonu CloudFormation, który wdraża model w regionie pomocniczym
Możesz pobrać zaktualizowaną wersję build.py
plik i zastąp istniejący w swoim folderze. W Studio wybierz Przeglądarka plików a następnie folder zawierający nazwę projektu i kończący się na modeldeploy
. Znajdź plik build.py i zastąp go pobranym.
Szablon CloudFormation używa artefaktów modelu przechowywanych w zasobniku S3 i ścieżki obrazu Amazon ECR do wdrożenia punktu końcowego wnioskowania w regionie pomocniczym. Różni się to od wdrożenia z rejestru modeli w regionie podstawowym, ponieważ nie trzeba mieć rejestru modeli w regionie pomocniczym.
Zmodyfikuj plik buildspec
buildspec.yml
zawiera instrukcje uruchamiane przez CodeBuild. Modyfikujemy ten plik, aby wykonać następujące czynności:
- Zainstaluj bibliotekę SageMaker Python potrzebną do obsługi uruchamiania kodu
- Przejść przez –region drugorzędny i parametry specyficzne dla modelu do
build.py
- Dodaj synchronizację zawartości zasobnika S3 z regionu podstawowego do dodatkowego
- Wyeksportuj pomocniczy szablon regionu CloudFormation i skojarzony plik parametrów jako artefakty kroku CodeBuild
Otwórz buildspec.yml
plik z folderu wdrażania modelu i wprowadź podświetlone modyfikacje, jak pokazano na poniższym zrzucie ekranu.
Alternatywnie możesz pobrać następujące buildspec.yml
plik, aby zastąpić plik domyślny.
Dodaj zmienne środowiskowe CodeBuild
W tym kroku dodajesz parametry konfiguracyjne wymagane dla CodeBuild do tworzenia plików konfiguracyjnych wdrażania modelu w regionie pomocniczym.
- W konsoli CodeBuild w regionie podstawowym znajdź projekt zawierający nazwę projektu i kończący się na wdrażanie. Ten projekt został już stworzony dla Ciebie przez SageMaker Projects.
- Wybierz projekt i na Edytuj menu, wybierz Środowisko.
- W Zaawansowana konfiguracja sekcja, odznacz Zezwól AWS CodeBuild na modyfikowanie tej roli usługi, aby można było jej używać z tym projektem kompilacji.
- Dodaj następujące zmienne środowiskowe, definiując nazwy dodatkowych szablonów CloudFormation, regionu pomocniczego i parametrów specyficznych dla modelu:
- EXPORT_TEMPLATE_NAME_SECONDARY_REGION - Dla wartość, wchodzić
template-export-secondary-region.yml
i dla Rodzaj Nieruchomościwybierz Zwykły tekst. - EXPORT_TEMPLATE_SECONDARY_REGION_CONFIG - Dla wartość, wchodzić
secondary-region-config-export.json
i dla Rodzaj Nieruchomościwybierz Zwykły tekst. - AWS_SECONDARY_REGION - Dla wartość, wpisz us-west-2 i for Rodzaj Nieruchomościwybierz Zwykły tekst.
- STRUKTURA - Dla wartość, wchodzić
xgboost
(zastąp swoim frameworkiem) i dla Rodzaj Nieruchomościwybierz Zwykły tekst. - MODEL_WERSJA - Dla wartość, wpisz 1.0-1 (zastąp wersją swojego modelu) i dla Rodzaj Nieruchomościwybierz Zwykły tekst.
- EXPORT_TEMPLATE_NAME_SECONDARY_REGION - Dla wartość, wchodzić
- Skopiuj wartość
ARTIFACT_BUCKET
do Notatnika lub innego edytora tekstu. Potrzebujesz tej wartości w następnym kroku. - Dodaj Zaktualizuj środowisko.
Potrzebujesz wartości, które określiłeś do trenowania modelu dla FRAMEWORK
i MODEL_VERSION
. Na przykład, aby znaleźć te wartości dla modelu Abalone używanego we wdrożeniu wzorcowym MLOps, otwórz Studio i na Przeglądarka plików menu, otwórz folder z nazwą projektu i kończąc na modelbuild. Nawigować do pipelines/abalone
i otwórz pipeline.py
plik. Szukaj sagemaker.image_uris.retrieve
i skopiuj odpowiednie wartości.
Utwórz zasobnik repliki S3 w regionie dodatkowym
Musimy utworzyć zasobnik S3 do przechowywania artefaktów modelu w regionie pomocniczym. SageMaker używa tego zasobnika, aby pobrać najnowszą wersję modelu, aby uruchomić punkt końcowy wnioskowania. Wystarczy to zrobić tylko raz. CodeBuild automatycznie synchronizuje zawartość zasobnika w regionie podstawowym z zasobnikiem replikacji przy każdym uruchomieniu potoku.
- Na konsoli Amazon S3 wybierz Utwórz wiadro.
- W razie zamówieenia projektu Nazwa wiadra, wprowadź wartość
ARTEFACT_BUCKET
skopiowane w poprzednim kroku i dołączyć-replica
do końca (na przykładsagemaker-project-X-XXXXXXXX-replica
. - W razie zamówieenia projektu Region AWS, wprowadź swój region dodatkowy (
us-west-2
). - Wszystkie inne wartości pozostaw domyślne i wybierz Utwórz wiadro.
Zatwierdź model do wdrożenia
Etap wdrażania potoku wymaga do rozpoczęcia zatwierdzonego modelu. Jest to wymagane do wdrożenia w regionie podstawowym.
- W Studio (region podstawowy) wybierz Zasoby SageMaker w okienku nawigacji.
- W razie zamówieenia projektu Wybierz zasób do wyświetleniawybierz Rejestr modeli.
- Wybierz nazwę grupy modeli zaczynając od nazwy projektu.
- W prawym okienku sprawdź wersję modelu, etap i status.
- Jeśli status pokazuje Oczekuje, wybierz wersję modelu, a następnie wybierz Stan aktualizacji.
- Zmień stan na Zatwierdzony, A następnie wybierz Stan aktualizacji.
Wdróż i zweryfikuj zmiany
Wszystkie zmiany wymagane do wdrożenia w wielu regionach punktu końcowego wnioskowania SageMaker są teraz zakończone i można rozpocząć proces wdrażania.
- W Studio zapisz wszystkie edytowane pliki, wybierz giti wybierz repozytorium zawierające nazwę projektu i kończące się na wdrażanie.
- Wybierz znak plus, aby wprowadzić zmiany.
- Pod Zmieniono, Dodaj
build.py
ibuildspec.yml
. - Pod Nieśledzone, Dodaj
endpoint-config-template-secondary-region.yml
isecondary-region-config.json
. - Wpisz komentarz w Podsumowanie pole i wybierz Popełnić.
- Prześlij zmiany do repozytorium, wybierając Naciskać.
Wypchnięcie tych zmian do repozytorium CodeCommit wyzwala nowe uruchomienie potoku, ponieważ zdarzenie EventBridge monitoruje pod kątem wypchniętych zatwierdzeń. Po kilku chwilach możesz monitorować przebieg, przechodząc do potoku w konsoli CodePipeline.
Upewnij się, że zapewniasz ręczne zatwierdzenie wdrożenia w środowisku produkcyjnym i regionie pomocniczym.
Możesz sprawdzić, czy drugorzędny punkt końcowy regionu został utworzony w konsoli SageMaker, wybierając Panel Użytkownika w okienku nawigacji i potwierdzanie statusu punktu końcowego w Ostatnia aktywność.
Dodaj bramę interfejsu API i trasę 53 (opcjonalnie)
Możesz opcjonalnie postępować zgodnie z instrukcjami w Wywołaj punkt końcowy modelu Amazon SageMaker za pomocą Amazon API Gateway i AWS Lambda aby udostępnić punkt końcowy wnioskowania SageMaker w regionie drugorzędnym jako API za pomocą API Gateway i Lambda.
Sprzątać
Aby usunąć projekt SageMaker, zobacz Usuń projekt MLOps za pomocą Amazon SageMaker Studio. Aby upewnić się, że dodatkowy punkt końcowy wnioskowania zostanie zniszczony, przejdź do konsoli AWS CloudFormation i usuń powiązane stosy w regionach podstawowym i pomocniczym; to niszczy punkty końcowe wnioskowania SageMaker.
Wnioski
W tym poście pokazaliśmy, jak specjalista MLOps może zmodyfikować wstępnie skonfigurowany szablon MLOps dla własnego przypadku użycia w wielu regionach, takiego jak wdrażanie obciążeń w wielu lokalizacjach geograficznych lub w ramach wdrażania wieloregionalnej strategii odzyskiwania po awarii. Dzięki takiemu podejściu do wdrażania nie trzeba konfigurować usług w regionie pomocniczym i można ponownie użyć konfiguracji CodePipeline i CloudBuild w regionie podstawowym w celu wdrożenia międzyregionalnego. Ponadto możesz zaoszczędzić na kosztach, kontynuując szkolenie modeli w regionie podstawowym, jednocześnie wykorzystując wnioskowanie SageMaker w wielu regionach, aby globalnie skalować wdrożenie AI/ML.
Przekaż nam swoją opinię w sekcji komentarzy.
O autorach
dr Mehrana Najafiego, jest starszym architektem rozwiązań dla AWS skoncentrowanym na rozwiązaniach AI/ML i SaaS w Scale.
Stevena Alechina jest starszym architektem rozwiązań dla AWS skoncentrowanym na MLOps at Scale.
- Zaawansowane (300)
- AI
- ai sztuka
- generator sztuki ai
- masz robota
- Amazon Sage Maker
- sztuczna inteligencja
- certyfikacja sztucznej inteligencji
- sztuczna inteligencja w bankowości
- robot sztucznej inteligencji
- roboty sztucznej inteligencji
- oprogramowanie sztucznej inteligencji
- Uczenie maszynowe AWS
- blockchain
- konferencja blockchain ai
- pomysłowość
- sztuczna inteligencja konwersacyjna
- konferencja kryptograficzna
- Dall's
- głęboka nauka
- google to
- Poziomy nauki
- uczenie maszynowe
- plato
- Platon Ai
- Analiza danych Platona
- Gra Platona
- PlatoDane
- platogaming
- skala ai
- składnia
- Instrukcje techniczne
- zefirnet