Utrzymanie przepływów pracy uczenia maszynowego (ML) w środowisku produkcyjnym jest trudnym zadaniem, ponieważ wymaga tworzenia potoków ciągłej integracji i ciągłego dostarczania (CI/CD) dla kodu i modeli ML, wersjonowania modelu, monitorowania dryfu danych i koncepcji, ponownego szkolenia modelu oraz podręcznika proces zatwierdzania, aby upewnić się, że nowe wersje modelu spełniają zarówno wymagania dotyczące wydajności, jak i zgodności.
W tym poście opisujemy, jak utworzyć przepływ pracy MLOps na potrzeby wnioskowania wsadowego, który automatyzuje planowanie zadań, monitorowanie modelu, przekwalifikowanie i rejestrację, a także obsługę błędów i powiadamianie za pomocą Amazon Sage Maker, Most zdarzeń Amazona, AWS Lambda, Usługa prostego powiadomienia Amazon (Amazon SNS), HashiCorp Terraform i GitLab CI/CD. Przedstawiony przepływ pracy MLOps zapewnia szablon wielokrotnego użytku do zarządzania cyklem życia ML poprzez automatyzację, monitorowanie, możliwość audytu i skalowalność, redukując w ten sposób złożoność i koszty utrzymywania obciążeń wnioskowania wsadowego w produkcji.
Omówienie rozwiązania
Poniższy rysunek ilustruje proponowaną docelową architekturę MLOps do wnioskowania wsadowego w przedsiębiorstwie dla organizacji korzystających z infrastruktury GitLab CI/CD i Terraform jako kodu (IaC) w połączeniu z narzędziami i usługami AWS. GitLab CI/CD służy jako makroorkiestrator, orkiestrujący model build
i model deploy
rurociągów, co obejmuje zaopatrzenie, budowę i zaopatrzenie Rurociągi Amazon SageMaker oraz zasoby pomocnicze przy użyciu pakietu SDK SageMaker Python SDK i Terraform. SageMaker Python SDK służy do tworzenia lub aktualizowania potoków SageMaker na potrzeby uczenia, trenowania z optymalizacją hiperparametrów (HPO) i wnioskowania wsadowego. Terraform służy do tworzenia dodatkowych zasobów, takich jak reguły EventBridge, funkcje Lambda i tematy SNS do monitorowania potoków SageMaker i wysyłania powiadomień (na przykład w przypadku niepowodzenia lub powodzenia kroku potoku). SageMaker Pipelines pełni funkcję koordynatora procesów uczenia i wnioskowania modeli ML.
Ten projekt architektury reprezentuje strategię wielu kont, w której modele uczenia maszynowego są kompilowane, szkolone i rejestrowane w centralnym rejestrze modeli w ramach konta rozwoju analizy danych (które ma więcej kontroli niż typowe konto tworzenia aplikacji). Następnie potoki wnioskowania są wdrażane na kontach przejściowych i produkcyjnych przy użyciu automatyzacji z narzędzi DevOps, takich jak GitLab CI/CD. Centralny rejestr modeli można opcjonalnie umieścić również na koncie usług wspólnych. Odnosić się do Model operacyjny w celu uzyskania najlepszych praktyk dotyczących strategii wielu kont dla ML.
W kolejnych podrozdziałach szczegółowo omawiamy różne aspekty projektowania architektury.
Infrastruktura jako kod
IaC oferuje sposób zarządzania infrastrukturą IT za pomocą plików do odczytu maszynowego, zapewniając skuteczną kontrolę wersji. W tym poście i towarzyszącym mu przykładzie kodu pokazujemy, jak używać Terraforma HashiCorp z GitLab CI/CD do efektywnego zarządzania zasobami AWS. Takie podejście podkreśla kluczową zaletę IaC, oferując przejrzysty i powtarzalny proces zarządzania infrastrukturą IT.
Szkolenie modelowe i przekwalifikowanie
W tym projekcie potok szkoleniowy SageMaker działa zgodnie z harmonogramem (za pośrednictwem EventBridge) lub w oparciu o plik Usługa Amazon Simple Storage (Amazon S3) wyzwalacz zdarzenia (na przykład, gdy plik wyzwalacza lub nowe dane treningowe, w przypadku pojedynczego obiektu danych szkoleniowych, są umieszczane w Amazon S3), aby regularnie kalibrować model z nowymi danymi. Ten potok nie wprowadza zmian strukturalnych ani istotnych w modelu, ponieważ wykorzystuje stałe hiperparametry, które zostały zatwierdzone podczas procesu przeglądu modelu korporacyjnego.
Potok szkoleniowy rejestruje nowo wyszkoloną wersję modelu w pliku Rejestr modelu Amazon SageMaker jeśli model przekracza wstępnie zdefiniowany próg wydajności modelu (na przykład RMSE dla regresji i wynik F1 dla klasyfikacji). Rejestracja nowej wersji modelu w rejestrze modeli powoduje powiadomienie odpowiedzialnego analityka danych za pośrednictwem Amazon SNS. Analityk danych musi następnie przejrzeć i ręcznie zatwierdzić najnowszą wersję modelu w pliku Studio Amazon SageMaker interfejsu użytkownika lub poprzez wywołanie API za pomocą Interfejs wiersza poleceń AWS (AWS CLI) lub AWS SDK dla Pythona (Boto3), zanim nowa wersja modelu będzie mogła zostać wykorzystana do wnioskowania.
Potok szkoleniowy SageMaker i jego zasoby pomocnicze są tworzone przez GitLab model build
potok, albo poprzez ręczne uruchomienie potoku GitLab, albo automatycznie, gdy kod zostanie scalony z potokiem main
oddział model build
Repozytorium Gita.
Wnioskowanie wsadowe
Potok wnioskowania wsadowego SageMaker działa zgodnie z harmonogramem (za pośrednictwem EventBridge) lub również w oparciu o wyzwalacz zdarzenia S3. Potok wnioskowania wsadowego automatycznie pobiera najnowszą zatwierdzoną wersję modelu z rejestru modeli i używa jej do wnioskowania. Potok wnioskowania wsadowego obejmuje kroki służące do sprawdzania jakości danych względem linii bazowej utworzonej przez potok szkoleniowy, a także jakości modelu (wydajności modelu), jeśli dostępne są podstawowe etykiety prawdy.
Jeśli potok wnioskowania wsadowego wykryje problemy z jakością danych, powiadomi odpowiedzialnego analityka danych za pośrednictwem Amazon SNS. Jeśli wykryje problemy z jakością modelu (na przykład RMSE jest większe niż wstępnie określony próg), krok potoku w celu sprawdzenia jakości modelu zakończy się niepowodzeniem, co z kolei wyzwoli zdarzenie EventBridge w celu rozpoczęcia uczenia z potokiem HPO.
Potok wnioskowania wsadowego SageMaker i jego zasoby pomocnicze są tworzone przez GitLab model deploy
potok, albo poprzez ręczne uruchomienie potoku GitLab, albo automatycznie, gdy kod zostanie scalony z potokiem main
oddział model deploy
Repozytorium Gita.
Strojenie i przestrajanie modeli
Szkolenie SageMaker z potokiem HPO jest wyzwalane, gdy zakończy się niepowodzeniem etap kontroli jakości modelu w potoku wnioskowania wsadowego. Kontrolę jakości modelu przeprowadza się poprzez porównanie przewidywań modelu z rzeczywistymi etykietami prawdy podstawowej. Jeśli metryka jakości modelu (na przykład RMSE dla regresji i wynik F1 dla klasyfikacji) nie spełnia wcześniej określonego kryterium, etap sprawdzania jakości modelu jest oznaczany jako zakończony niepowodzeniem. W razie potrzeby szkolenie SageMaker z potokiem HPO może być również uruchomione ręcznie (w interfejsie użytkownika SageMaker Studio lub poprzez wywołanie API przy użyciu AWS CLI lub SageMaker Python SDK) przez odpowiedzialnego analityka danych. Ponieważ hiperparametry modelu ulegają zmianie, odpowiedzialny analityk danych musi uzyskać zgodę komisji ds. przeglądu modeli korporacyjnych, zanim nowa wersja modelu będzie mogła zostać zatwierdzona w rejestrze modeli.
Szkolenie SageMaker z potokiem HPO i jego zasobami pomocniczymi jest tworzone przez GitLab model build
potok, albo poprzez ręczne uruchomienie potoku GitLab, albo automatycznie, gdy kod zostanie scalony z potokiem main
oddział model build
Repozytorium Gita.
Monitorowanie modelu
Statystyki danych i linie bazowe ograniczeń są generowane w ramach szkoleń i szkoleń z potokami HPO. Są one zapisywane w usłudze Amazon S3 i rejestrowane wraz z wyszkolonym modelem w rejestrze modeli, jeśli model przejdzie ocenę. Proponowana architektura wykorzystuje potok wnioskowania wsadowego Monitor modelu Amazon SageMaker do kontroli jakości danych podczas korzystania z niestandardowego Przetwarzanie Amazon SageMaker kroki kontroli jakości modelu. Taka konstrukcja oddziela kontrolę jakości danych i modelu, co z kolei umożliwia wysyłanie powiadomienia z ostrzeżeniem tylko w przypadku wykrycia dryfu danych; i wyzwalaj szkolenie za pomocą potoku HPO po wykryciu naruszenia jakości modelu.
Zatwierdzenie modelu
Po zarejestrowaniu nowo wyszkolonego modelu w rejestrze modeli odpowiedzialny analityk danych otrzymuje powiadomienie. Jeśli model został przeszkolony za pomocą potoku szkoleniowego (ponowna kalibracja przy użyciu nowych danych szkoleniowych po naprawieniu hiperparametrów), nie ma potrzeby zatwierdzania przez komisję ds. przeglądu modeli korporacyjnych. Analityk danych może niezależnie sprawdzić i zatwierdzić nową wersję modelu. Z drugiej strony, jeśli model został przeszkolony poprzez szkolenie z potokiem HPO (ponowne dostrojenie poprzez zmianę hiperparametrów), nowa wersja modelu musi przejść proces przeglądu korporacyjnego, zanim będzie mogła zostać wykorzystana do wnioskowania w produkcji. Po zakończeniu procesu przeglądu analityk danych może kontynuować i zatwierdzić nową wersję modelu w rejestrze modeli. Zmiana statusu pakietu modelowego na Approved
uruchomi funkcję Lambda poprzez EventBridge, co z kolei uruchomi GitLab model deploy
potok za pośrednictwem wywołania API. Spowoduje to automatyczną aktualizację potoku wnioskowania wsadowego SageMaker w celu wykorzystania najnowszej zatwierdzonej wersji modelu do wnioskowania.
Istnieją dwa główne sposoby zatwierdzania lub odrzucania nowej wersji modelu w rejestrze modeli: przy użyciu pakietu AWS SDK dla języka Python (Boto3) lub z poziomu interfejsu użytkownika SageMaker Studio. Domyślnie ustawiony jest zarówno potok szkoleniowy, jak i trening z potokiem HPO ModelApprovalStatus
do PendingManualApproval
. Odpowiedzialny analityk danych może zaktualizować status zatwierdzenia modelu, dzwoniąc pod numer update_model_package
API z Boto3. Odnosić się do Zaktualizuj stan zatwierdzenia modelu aby uzyskać szczegółowe informacje na temat aktualizowania statusu zatwierdzenia modelu za pośrednictwem interfejsu użytkownika SageMaker Studio.
Projekt wejścia/wyjścia danych
SageMaker współpracuje bezpośrednio z Amazon S3 w celu odczytywania danych wejściowych i przechowywania wyników poszczególnych kroków w potokach uczenia i wnioskowania. Poniższy diagram ilustruje, jak różne skrypty Pythona, surowe i przetworzone dane szkoleniowe, surowe i przetworzone dane wnioskowania, wyniki wnioskowania i podstawowe etykiety prawdy (jeśli są dostępne do monitorowania jakości modelu), artefakty modelu, metryki uczenia i oceny wnioskowania (monitorowanie jakości modelu), a także podstawowe wartości jakości danych i raporty o naruszeniach (do monitorowania jakości danych) można organizować w ramach segmentu S3. Kierunek strzałek na diagramie wskazuje, które pliki są wejściami, a które wyjściami odpowiednich kroków w potokach SageMaker. Strzałki zostały oznaczone kolorami w zależności od typu kroku potoku, aby ułatwić ich odczytanie. Potok automatycznie prześle skrypty Pythona z repozytorium GitLab i zapisze pliki wyjściowe lub artefakty modelu z każdego kroku w odpowiedniej ścieżce S3.
Inżynier danych jest odpowiedzialny za:
- Przesyłanie oznaczonych danych treningowych do odpowiedniej ścieżki w Amazon S3. Obejmuje to regularne dodawanie nowych danych szkoleniowych, aby zapewnić, że potok szkoleniowy i trening z potokiem HPO będą miały dostęp do najnowszych danych szkoleniowych na potrzeby odpowiednio ponownego uczenia i dostrajania modelu.
- Przesyłanie danych wejściowych do wnioskowania do odpowiedniej ścieżki w segmencie S3 przed planowanym uruchomieniem potoku wnioskowania.
- Przesyłanie etykiet prawdy podstawowej do odpowiedniej ścieżki S3 w celu monitorowania jakości modelu.
Analityk danych jest odpowiedzialny za:
- Przygotowywanie etykiet prawdy i udostępnianie ich zespołowi inżynierii danych w celu przesłania do Amazon S3.
- Przeprowadzenie wersji modelu przeszkolonych w ramach szkolenia z rurociągiem HPO przez proces przeglądu przedsiębiorstwa i uzyskanie niezbędnych zgód.
- Ręczne zatwierdzanie lub odrzucanie nowo wyszkolonych wersji modelu w rejestrze modeli.
- Zatwierdzanie bramki produkcyjnej dla potoku wnioskowania i zasobów pomocniczych, które mają zostać awansowane do produkcji.
Przykładowy kod
W tej sekcji przedstawiamy przykładowy kod operacji wnioskowania wsadowego z konfiguracją jednego konta, jak pokazano na poniższym diagramie architektury. Przykładowy kod można znaleźć w pliku Repozytorium GitHubi może służyć jako punkt wyjścia do wnioskowania wsadowego z monitorowaniem modelu i automatycznym ponownym szkoleniem przy użyciu bramek jakości często wymaganych w przedsiębiorstwach. Przykładowy kod różni się od architektury docelowej w następujący sposób:
- Wykorzystuje jedno konto AWS do budowania i wdrażania modelu ML oraz zasobów pomocniczych. Odnosić się do Organizowanie środowiska AWS za pomocą wielu kont aby uzyskać wskazówki dotyczące konfiguracji wielu kont w AWS.
- Wykorzystuje pojedynczy potok CI/CD GitLab do budowania i wdrażania modelu ML oraz zasobów pomocniczych.
- Po wytrenowaniu i zatwierdzeniu nowej wersji modelu potok CI/CD GitLab nie jest uruchamiany automatycznie i musi zostać uruchomiony ręcznie przez odpowiedzialnego analityka danych, aby zaktualizować potok wnioskowania wsadowego SageMaker za pomocą najnowszej zatwierdzonej wersji modelu.
- Obsługuje wyłącznie wyzwalacze oparte na zdarzeniach S3 do uruchamiania potoków uczenia i wnioskowania SageMaker.
Wymagania wstępne
Przed wdrożeniem tego rozwiązania należy spełnić następujące wymagania wstępne:
- Konto AWS
- Studio SageMaker
- Rola wykonawcza SageMaker z odczytem/zapisem Amazon S3 i Usługa zarządzania kluczami AWS (AWS KMS) szyfruje/odszyfrowuje uprawnienia
- Wiadro S3 do przechowywania danych, skryptów i artefaktów modeli
- Terraform wersja 0.13.5 lub nowsza
- GitLab z działającym modułem Docker do uruchamiania potoków
- Interfejs wiersza polecenia AWS
- jq
- rozsunąć suwak
- Python3 (Python 3.7 lub nowszy) i następujące pakiety Pythona:
- boto3
- sagemaker
- pandy
- pyyaml
Struktura repozytorium
Połączenia Repozytorium GitHub zawiera następujące katalogi i pliki:
/code/lambda_function/
– Ten katalog zawiera plik Pythona dla funkcji Lambda, która przygotowuje i wysyła powiadomienia (za pośrednictwem Amazon SNS) o zmianach stanu kroków potoków SageMaker/data/
– Ten katalog zawiera surowe pliki danych (dane szkoleniowe, wnioskowania i podstawowe dane)/env_files/
– Ten katalog zawiera plik wejściowych zmiennych Terraform/pipeline_scripts/
– Ten katalog zawiera trzy skrypty Pythona do tworzenia i aktualizowania uczenia, wnioskowania i uczenia za pomocą potoków HPO SageMaker, a także pliki konfiguracyjne do określania parametrów każdego potoku/scripts/
– Ten katalog zawiera dodatkowe skrypty Pythona (takie jak przetwarzanie wstępne i ocena), do których odwołują się szkolenia, wnioskowanie i szkolenia za pomocą potoków HPO.gitlab-ci.yml
– Ten plik określa konfigurację potoku CI/CD GitLab/events.tf
– Ten plik definiuje zasoby EventBridge/lambda.tf
– Ten plik definiuje funkcję powiadamiania Lambda i powiązane z nią funkcje AWS Zarządzanie tożsamością i dostępem (IAM) zasoby/main.tf
– Ten plik definiuje źródła danych Terraform i zmienne lokalne/sns.tf
– Ten plik definiuje zasoby Amazon SNS/tags.json
– Ten plik JSON pozwala zadeklarować pary klucz-wartość tagu niestandardowego i dołączyć je do zasobów Terraform za pomocą zmiennej lokalnej/variables.tf
– Ten plik deklaruje wszystkie zmienne Terraform
Zmienne i konfiguracja
Poniższa tabela przedstawia zmienne, które służą do parametryzacji tego rozwiązania. Patrz ./env_files/dev_env.tfvars
plik, aby uzyskać więcej szczegółów.
Imię | Opis |
bucket_name |
Wiadro S3 używane do przechowywania danych, skryptów i artefaktów modelu |
bucket_prefix |
Przedrostek S3 dla projektu ML |
bucket_train_prefix |
Przedrostek S3 dla danych szkoleniowych |
bucket_inf_prefix |
Przedrostek S3 dla danych wnioskowania |
notification_function_name |
Nazwa funkcji Lambda, która przygotowuje i wysyła powiadomienia o zmianach stanu kroków potoków SageMaker |
custom_notification_config |
Konfiguracja dostosowywania komunikatu powiadomienia dla określonych kroków potoku SageMaker w przypadku wykrycia określonego stanu uruchomienia potoku |
email_recipient |
Lista adresów e-mail służących do otrzymywania powiadomień o zmianie stanu kroków potoków SageMaker |
pipeline_inf |
Nazwa potoku wnioskowania SageMaker |
pipeline_train |
Nazwa potoku szkoleniowego SageMaker |
pipeline_trainwhpo |
Nazwa szkolenia SageMaker z potokiem HPO |
recreate_pipelines |
Jeśli ustawione na true , trzy istniejące potoki SageMaker (trenowanie, wnioskowanie, szkolenie z HPO) zostaną usunięte, a nowe zostaną utworzone po uruchomieniu GitLab CI/CD |
model_package_group_name |
Nazwa grupy pakietów modeli |
accuracy_mse_threshold |
Maksymalna wartość MSE przed wymaganiem aktualizacji modelu |
role_arn |
Rola IAM ARN roli wykonawczej potoku SageMaker |
kms_key |
Klucz KMS ARN do szyfrowania Amazon S3 i SageMaker |
subnet_id |
Identyfikator podsieci dla konfiguracji sieci SageMaker |
sg_id |
Identyfikator grupy zabezpieczeń dla konfiguracji sieci SageMaker |
upload_training_data |
Jeśli ustawione na true , dane szkoleniowe zostaną przesłane do usługi Amazon S3, a ta operacja przesyłania spowoduje uruchomienie potoku szkoleniowego |
upload_inference_data |
Jeśli ustawione na true , dane wnioskowania zostaną przesłane do Amazon S3, a ta operacja przesyłania uruchomi potok wnioskowania |
user_id |
Identyfikator pracownika użytkownika SageMaker dodawany jako tag do zasobów SageMaker |
Wdróż rozwiązanie
Wykonaj następujące kroki, aby wdrożyć rozwiązanie na swoim koncie AWS:
- Sklonuj repozytorium GitHub do swojego katalogu roboczego.
- Przejrzyj i zmodyfikuj konfigurację potoku CI/CD GitLab, aby dopasować ją do swojego środowiska. Konfiguracja jest określona w pliku
./gitlab-ci.yml
plik. - Aby zaktualizować ogólne zmienne rozwiązania w pliku README, zapoznaj się z plikiem README
./env_files/dev_env.tfvars
plik. Ten plik zawiera zmienne zarówno dla skryptów Pythona, jak i automatyzacji Terraform.- Sprawdź dodatkowe parametry potoków SageMaker, które są zdefiniowane w plikach YAML w sekcji
./batch_scoring_pipeline/pipeline_scripts/
. Przejrzyj i w razie potrzeby zaktualizuj parametry.
- Sprawdź dodatkowe parametry potoków SageMaker, które są zdefiniowane w plikach YAML w sekcji
- Przejrzyj skrypty tworzenia potoków SageMaker w
./pipeline_scripts/
a także skrypty, do których odwołują się w pliku./scripts/
teczka. Przykładowe skrypty udostępnione w repozytorium GitHub są oparte na Zbiór danych uchowca. Jeśli zamierzasz używać innego zbioru danych, upewnij się, że zaktualizowałeś skrypty, aby odpowiadały konkretnemu problemowi. - Umieść swoje pliki danych w
./data/
folderu, stosując następującą konwencję nazewnictwa. Jeśli używasz zbioru danych Abalone wraz z dostarczonymi przykładowymi skryptami, upewnij się, że pliki danych nie są nagłówkowe, dane uczące zawierają zarówno zmienne niezależne, jak i docelowe z zachowaniem oryginalnej kolejności kolumn, dane wnioskowane obejmują tylko zmienne niezależne i podstawową prawdę plik zawiera tylko zmienną docelową.training-data.csv
inference-data.csv
ground-truth.csv
- Zatwierdź i wypchnij kod do repozytorium, aby uruchomić potok GitLab CI/CD (pierwsze uruchomienie). Należy pamiętać, że pierwsze uruchomienie potoku zakończy się niepowodzeniem
pipeline
etapie, ponieważ nie ma jeszcze zatwierdzonej wersji modelu, której mógłby używać skrypt potoku wnioskowania. Przejrzyj dziennik kroków i zweryfikuj nazwę nowego potoku SageMakerTrainingPipeline
został pomyślnie utworzony.
-
- Otwórz interfejs użytkownika SageMaker Studio, a następnie przejrzyj i uruchom potok szkoleniowy.
- Po pomyślnym uruchomieniu potoku szkoleniowego zatwierdź zarejestrowaną wersję modelu w rejestrze modeli, a następnie ponownie uruchom cały potok CI/CD GitLab.
- Przejrzyj dane wyjściowe planu Terraform w pliku
build
scena. Zatwierdź instrukcjęapply
etap w potoku GitLab CI/CD, aby wznowić działanie potoku i autoryzować Terraform do tworzenia zasobów monitorowania i powiadamiania na Twoim koncie AWS. - Na koniec przejrzyj stan działania potoków SageMaker i dane wyjściowe w interfejsie użytkownika SageMaker Studio i sprawdź, czy w skrzynce e-mail nie znajdują się powiadomienia, jak pokazano na poniższym zrzucie ekranu. Domyślna treść wiadomości jest w formacie JSON.
Potoki SageMakera
W tej sekcji opisujemy trzy potoki SageMaker w ramach przepływu pracy MLOps.
Potok szkoleń
Potok szkoleniowy składa się z następujących kroków:
- Etap wstępnego przetwarzania, obejmujący transformację i kodowanie funkcji
- Etap kontroli jakości danych służący do generowania statystyk danych i linii bazowych ograniczeń przy użyciu danych szkoleniowych
- Etap szkolenia
- Etap oceny szkolenia
- Krok warunku, aby sprawdzić, czy przeszkolony model spełnia wstępnie określony próg wydajności
- Krok rejestracji modelu, aby zarejestrować nowo przeszkolony model w rejestrze modelu, jeśli przeszkolony model spełnia wymagany próg wydajności
Oboje skip_check_data_quality
i register_new_baseline_data_quality
parametry są ustawione na True
w przygotowaniu szkoleniowym. Parametry te instruują potok, aby pominął kontrolę jakości danych i po prostu utworzył i zarejestrował nowe statystyki danych lub linie bazowe ograniczeń przy użyciu danych szkoleniowych. Poniższy rysunek przedstawia pomyślne uruchomienie potoku szkoleniowego.
Potok wnioskowania wsadowego
Potok wnioskowania wsadowego składa się z następujących kroków:
- Tworzenie modelu z najnowszej zatwierdzonej wersji modelu w rejestrze modeli
- Etap wstępnego przetwarzania, obejmujący transformację i kodowanie funkcji
- Krok wnioskowania wsadowego
- Etap wstępnego przetwarzania kontroli jakości danych, podczas którego tworzony jest nowy plik CSV zawierający zarówno dane wejściowe, jak i przewidywania modelu, które można wykorzystać do kontroli jakości danych
- Etap kontroli jakości danych, który sprawdza dane wejściowe pod kątem statystyk bazowych i ograniczeń związanych z zarejestrowanym modelem
- Krok warunkujący sprawdzający, czy dostępne są podstawowe dane. Jeśli dostępne są podstawowe dane, zostanie przeprowadzony etap kontroli jakości modelu
- Krok obliczenia jakości modelu, który oblicza wydajność modelu w oparciu o podstawowe etykiety prawdy
Oboje skip_check_data_quality
i register_new_baseline_data_quality
parametry są ustawione na False
w potoku wnioskowania. Parametry te instruują potok, aby przeprowadził kontrolę jakości danych przy użyciu statystyk danych lub linii bazowej ograniczeń skojarzonych z zarejestrowanym modelem (supplied_baseline_statistics_data_quality
i supplied_baseline_constraints_data_quality
) i pomiń tworzenie lub rejestrowanie nowych statystyk danych i linii bazowych ograniczeń podczas wnioskowania. Poniższy rysunek ilustruje przebieg potoku wnioskowania wsadowego, w przypadku którego etap sprawdzania jakości danych nie powiódł się ze względu na słabą wydajność modelu na danych wnioskowania. W tym konkretnym przypadku szkolenie z potokiem HPO zostanie uruchomione automatycznie w celu dostrojenia modelu.
Szkolenie z rurociągiem HPO
Szkolenie z rurociągu HPO składa się z następujących kroków:
- Etap wstępnego przetwarzania (transformacja i kodowanie funkcji)
- Etap kontroli jakości danych służący do generowania statystyk danych i linii bazowych ograniczeń przy użyciu danych szkoleniowych
- Krok dostrajania hiperparametrów
- Etap oceny szkolenia
- Krok warunku sprawdzający, czy przeszkolony model spełnia wcześniej określony próg dokładności
- Krok rejestracji modelu, jeśli najlepiej wytrenowany model spełnia wymagany próg dokładności
Oboje skip_check_data_quality
i register_new_baseline_data_quality
parametry są ustawione na True
na szkoleniu z rurociągiem HPO. Poniższy rysunek przedstawia pomyślny przebieg szkolenia z rurociągiem HPO.
Sprzątać
Wykonaj następujące kroki, aby wyczyścić zasoby:
- Zatrudnij
destroy
etap w potoku CI/CD GitLab, mający na celu wyeliminowanie wszystkich zasobów udostępnianych przez Terraform. - Użyj interfejsu CLI AWS, aby podstęp i usunąć wszelkie pozostałe potoki utworzone przez skrypty języka Python.
- Opcjonalnie usuń inne zasoby AWS, takie jak zasobnik S3 lub rola IAM utworzona poza potokiem CI/CD.
Wnioski
W tym poście pokazaliśmy, jak przedsiębiorstwa mogą tworzyć przepływy pracy MLOps dla swoich zadań wnioskowania wsadowego przy użyciu Amazon SageMaker, Amazon EventBridge, AWS Lambda, Amazon SNS, HashiCorp Terraform i GitLab CI/CD. Przedstawiony przepływ pracy automatyzuje monitorowanie danych i modeli, ponowne szkolenie modeli, a także uruchamianie zadań wsadowych, wersjonowanie kodu i udostępnianie infrastruktury. Może to prowadzić do znacznego zmniejszenia złożoności i kosztów utrzymania zadań wnioskowania wsadowego w produkcji. Aby uzyskać więcej informacji na temat szczegółów implementacji, przejrzyj plik GitHub repo.
O autorach
Hasana Shojaei jest starszym analitykiem danych w AWS Professional Services, gdzie pomaga klientom z różnych branż, takich jak sport, ubezpieczenia i usługi finansowe, rozwiązywać problemy biznesowe dzięki wykorzystaniu dużych zbiorów danych, uczenia maszynowego i technologii chmurowych. Przed objęciem tej roli Hasan kierował wieloma inicjatywami mającymi na celu opracowanie nowatorskich technik modelowania opartych na fizyce i danych dla czołowych firm energetycznych. Poza pracą Hasan pasjonuje się książkami, turystyką pieszą, fotografią i historią.
Wenxin Liu jest starszym architektem infrastruktury chmurowej. Wenxin doradza przedsiębiorstwom, jak przyspieszyć wdrażanie chmury i wspiera ich innowacje w chmurze. Jest miłośnikiem zwierząt, jego pasją jest snowboard i podróże.
Wiwek Lakszmanan jest inżynierem uczenia maszynowego w Amazon. Posiada tytuł magistra inżynierii oprogramowania ze specjalizacją w Data Science i kilkuletnie doświadczenie jako MLE. Vivek jest podekscytowany stosowaniem najnowocześniejszych technologii i tworzeniem rozwiązań AI/ML dla klientów w chmurze. Pasjonuje się statystyką, NLP i wyjaśnialnością modeli w AI/ML. W wolnym czasie lubi grać w krykieta i podróżować.
Andy’ego Cracchiolo jest architektem infrastruktury chmurowej. Dzięki ponad 15-letniemu doświadczeniu w infrastrukturze IT Andy jest utalentowanym i nastawionym na wyniki specjalistą IT. Oprócz optymalizacji infrastruktury IT, operacji i automatyzacji Andy ma udokumentowane doświadczenie w analizowaniu operacji IT, identyfikowaniu niespójności i wdrażaniu ulepszeń procesów, które zwiększają wydajność, redukują koszty i zwiększają zyski.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Motoryzacja / pojazdy elektryczne, Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- ChartPrime. Podnieś poziom swojej gry handlowej dzięki ChartPrime. Dostęp tutaj.
- Przesunięcia bloków. Modernizacja własności offsetu środowiskowego. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/machine-learning/mlops-for-batch-inference-with-model-monitoring-and-retraining-using-amazon-sagemaker-hashicorp-terraform-and-gitlab-ci-cd/
- :ma
- :Jest
- :nie
- :Gdzie
- $W GÓRĘ
- 100
- 125
- 13
- 15 roku
- 15%
- 26%
- 29
- 500
- 7
- a
- O nas
- przyśpieszyć
- dostęp
- realizowane
- Konto
- Konta
- precyzja
- w poprzek
- rzeczywisty
- w dodatku
- dodanie
- dodatek
- Dodatkowy
- adres
- Przyjęcie
- przed
- AI / ML
- Wszystkie kategorie
- pozwala
- wzdłuż
- również
- Amazonka
- Amazon Sage Maker
- Amazon Web Services
- an
- Analizując
- i
- i infrastruktura
- każdy
- api
- Zastosowanie
- Application Development
- Stosowanie
- podejście
- właściwy
- zatwierdzenie
- Zatwierdzenia
- Zatwierdzać
- zatwierdzony
- architektura
- SĄ
- AS
- aspekty
- powiązany
- At
- audytowalność
- autoryzować
- samochód
- automaty
- automatycznie
- automatycznie
- Automatyzacja
- dostępny
- AWS
- AWS Lambda
- Usługi profesjonalne AWS
- na podstawie
- Baseline
- BE
- bo
- być
- zanim
- korzyści
- BEST
- Najlepsze praktyki
- Duży
- Big Data
- deska
- ciało
- Książki
- obie
- Oddział
- Budowanie
- wybudowany
- biznes
- by
- oblicza
- obliczenie
- wezwanie
- powołanie
- CAN
- walizka
- centralny
- wyzwania
- wyzwanie
- zmiana
- Zmiany
- wymiana pieniędzy
- ZOBACZ
- kontrola
- Wykrywanie urządzeń szpiegujących
- klasyfikacja
- Chmura
- adopcja chmury
- infrastruktura chmurowa
- kod
- kolumny
- Firmy
- porównanie
- kompletny
- złożoności
- spełnienie
- w składzie
- pojęcie
- systemu
- spójnik
- Ograniczenia
- zawiera
- ciągły
- kontrola
- kontroli
- Konwencja
- Koszty:
- mógłby
- Stwórz
- stworzony
- tworzy
- Tworzenie
- tworzenie
- krykiet
- zwyczaj
- Klientów
- pionierski nowatorski
- dane
- nauka danych
- naukowiec danych
- sterowane danymi
- deklaruje
- Domyślnie
- zdefiniowane
- Definiuje
- Stopień
- dostawa
- wykazać
- wykazać
- rozwijać
- wdrażane
- wdrażanie
- opisać
- Wnętrze
- detal
- detale
- wykryte
- rozwijać
- oprogramowania
- różne
- kierunek
- bezpośrednio
- katalogi
- Odkrywa
- dyskutować
- Doker
- robi
- Nie
- z powodu
- podczas
- każdy
- łatwiej
- faktycznie
- efektywność
- wydajny
- bądź
- wyeliminować
- Pracownik
- energia
- inżynier
- Inżynieria
- ulepszenia
- zapewnić
- zapewnienie
- Enterprise
- przedsiębiorstwa
- Cały
- Środowisko
- błąd
- ewaluację
- wydarzenie
- przykład
- przekracza
- podniecony
- egzekucja
- Przede wszystkim system został opracowany
- doświadczenie
- f1
- FAIL
- Failed
- nie
- Cecha
- Postać
- filet
- Akta
- budżetowy
- usługi finansowe
- i terminów, a
- ustalony
- następujący
- W razie zamówieenia projektu
- format
- znaleziono
- od
- funkcjonować
- Funkcje
- Bramy
- Ogólne
- wygenerowane
- generujący
- git
- GitHub
- Go
- będzie
- większy
- Ziemia
- Zarządzanie
- poradnictwo
- ręka
- Prowadzenie
- Have
- he
- pomaga
- jego
- historia
- W jaki sposób
- How To
- HTML
- http
- HTTPS
- Optymalizacja hiperparametrów
- ID
- identyfikacja
- tożsamość
- if
- ilustruje
- realizacja
- wykonawczych
- in
- zawierać
- obejmuje
- Włącznie z
- Zwiększać
- niezależny
- niezależnie
- wskazuje
- indywidualny
- przemysłowa
- Informacja
- Infrastruktura
- inicjatywy
- innowacje
- wkład
- Wejścia
- ubezpieczenie
- integracja
- współdziała
- najnowszych
- przedstawiać
- problemy
- IT
- JEGO
- Praca
- Oferty pracy
- jpg
- json
- właśnie
- Klawisz
- Etykiety
- firmy
- prowadzić
- nauka
- Doprowadziło
- wifecycwe
- Linia
- Lista
- miejscowy
- log
- maszyna
- uczenie maszynowe
- Główny
- Utrzymywanie
- robić
- zarządzanie
- i konserwacjami
- zarządzający
- podręcznik
- ręcznie
- wyraźny
- mistrzowski
- materiał
- Poznaj nasz
- Spełnia
- wiadomość
- wiadomości
- metryczny
- Metryka
- ML
- MLOps
- model
- modelowanie
- modele
- modyfikować
- monitorowanie
- jeszcze
- wielokrotność
- O imieniu
- nazywania
- niezbędny
- Potrzebować
- potrzebne
- wymagania
- sieci
- Nowości
- nowo
- nlp
- Nie
- powiadomienie
- Powiadomienia
- powieść
- przedmiot
- uzyskać
- uzyskiwanie
- of
- oferuje
- Oferty
- często
- on
- te
- tylko
- działanie
- operacje
- optymalizacja
- optymalizacji
- or
- zamówienie
- organizacji
- Zorganizowany
- oryginalny
- Inne
- wydajność
- zewnętrzne
- pakiet
- Pakiety
- par
- parametry
- część
- szczególny
- przebiegi
- namiętny
- ścieżka
- wykonać
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- wykonywane
- fotografia
- rurociąg
- krok po kroku
- planowany
- plato
- Analiza danych Platona
- PlatoDane
- gra
- punkt
- biedny
- Post
- praktyki
- Przewidywania
- Przygotowuje
- warunki wstępne
- teraźniejszość
- przedstawione
- Wcześniejszy
- Problem
- kontynuować
- wygląda tak
- Obrobiony
- Produkcja
- profesjonalny
- zyski
- Lansowany
- zaproponowane
- Sprawdzony
- pod warunkiem,
- zapewnia
- że
- Ściąga
- Naciskać
- Python
- jakość
- Surowy
- Czytaj
- Czytający
- otrzymuje
- odbieranie
- niedawny
- rekord
- zmniejszyć
- redukcja
- w sprawie
- zarejestrować
- zarejestrowany
- rejestracji
- rejestry
- Rejestracja
- rejestr
- regularnie
- pozostały
- powtarzalne
- Raporty
- składnica
- reprezentuje
- wymagany
- wymagania
- Wymaga
- Zasoby
- osób
- odpowiednio
- odpowiedzialny
- Efekt
- Resume
- wielokrotnego użytku
- przeglądu
- droga
- Rola
- reguły
- run
- biegacz
- bieganie
- działa
- sagemaker
- Wnioskowanie SageMakera
- Rurociągi SageMaker
- Skalowalność
- rozkład
- szeregowanie
- nauka
- Naukowiec
- wynik
- skrypty
- Sdk
- Sekcja
- wysłać
- wysyłanie
- wysyła
- służyć
- służy
- Usługi
- zestaw
- ustawienie
- kilka
- shared
- powinien
- pokazane
- Targi
- znaczący
- Prosty
- pojedynczy
- Tworzenie
- Inżynieria oprogramowania
- rozwiązanie
- Rozwiązania
- ROZWIĄZANIA
- Źródła
- Sourcing
- specyficzny
- określony
- SPORTOWE
- STAGE
- inscenizacja
- początek
- Startowy
- Stan
- statystyka
- Rynek
- Ewolucja krok po kroku
- Cel
- przechowywanie
- sklep
- przechowywania
- Strategia
- strukturalny
- studio
- udany
- Z powodzeniem
- taki
- Garnitur
- Wspierający
- podpory
- stół
- TAG
- biorąc
- cel
- Zadanie
- zespół
- Techniki
- Technologies
- szablon
- Terraform
- niż
- że
- Połączenia
- ich
- Im
- następnie
- Tam.
- a tym samym
- Te
- one
- to
- trzy
- próg
- Przez
- czas
- do
- narzędzia
- Top
- tematy
- śledzić
- Śledź rekord
- przeszkolony
- Trening
- Transformacja
- przezroczysty
- Podróżowanie
- wyzwalać
- rozsierdzony
- Prawda
- SKRĘCAĆ
- drugiej
- rodzaj
- typowy
- ui
- dla
- podkreślenia
- Aktualizacja
- aktualizowanie
- przesłanych
- Uploading
- posługiwać się
- używany
- Użytkownik
- zastosowania
- za pomocą
- wykorzystać
- wykorzystany
- wartość
- zmienna
- zweryfikować
- wersja
- Wersje
- przez
- NARUSZENIE
- ostrzeżenie
- Droga..
- sposoby
- we
- sieć
- usługi internetowe
- DOBRZE
- jeśli chodzi o komunikację i motywację
- czy
- który
- Podczas
- KIM
- będzie
- w
- w ciągu
- Praca
- workflow
- przepływów pracy
- pracujący
- jamla
- lat
- jeszcze
- You
- Twój
- zefirnet