Stworzenie platformy operacji uczenia maszynowego (MLops) w szybko rozwijającym się środowisku sztucznej inteligencji (AI) i uczenia maszynowego (ML) dla organizacji jest niezbędne do płynnego wypełnienia luki między eksperymentowaniem w zakresie analizy danych a wdrażaniem, przy jednoczesnym spełnieniu wymagań dotyczących wydajności modelu, bezpieczeństwo i zgodność.
Aby spełnić wymagania regulacyjne i zgodności, kluczowymi wymaganiami przy projektowaniu takiej platformy są:
- Adresowanie dryfu danych
- Monitoruj wydajność modelu
- Ułatwienie automatycznego ponownego uczenia modelu
- Zapewnij proces zatwierdzania modelu
- Przechowuj modele w bezpiecznym środowisku
W tym poście pokazujemy, jak stworzyć framework MLOps, aby zaspokoić te potrzeby, korzystając z kombinacji usług AWS i zestawów narzędzi innych firm. Rozwiązanie obejmuje konfigurację wielośrodowiskową z automatycznym ponownym uczeniem modelu, wnioskowaniem wsadowym i monitorowaniem Monitor modelu Amazon SageMaker, wersjonowanie modelu za pomocą Rejestr modeli SageMakeroraz potok CI/CD ułatwiający promowanie kodu ML i potoków w różnych środowiskach za pomocą Amazon Sage Maker, Most zdarzeń Amazona, Usługa prostego powiadomienia Amazon (Amazonka S3), Terraforma HashiCorp, GitHub, Jenkins CI/CD. Budujemy model umożliwiający przewidywanie ciężkości (łagodnych lub złośliwych) zmian masowych mammograficznych wyszkolonych za pomocą narzędzia Algorytm XGBoost korzystając z publicznie dostępnych Msza Mammograficzna UCI zestawu danych i wdrożyć go przy użyciu platformy MLOps. Pełna instrukcja wraz z kodem dostępna jest w pliku Repozytorium GitHub.
Omówienie rozwiązania
Poniższy diagram architektury przedstawia przegląd struktury MLOps z następującymi kluczowymi komponentami:
- Strategia wielu kont – Dwa różne środowiska (dev i prod) są konfigurowane na dwóch różnych kontach AWS zgodnie z najlepszymi praktykami AWS Well-Architected, a trzecie konto jest konfigurowane w centralnym rejestrze modeli:
- Środowisko deweloperskie – Gdzie np Domena Amazon SageMaker Studio jest skonfigurowany tak, aby umożliwić opracowywanie modeli, uczenie modeli i testowanie potoków uczenia maszynowego (trenowanie i wnioskowanie), zanim model będzie gotowy do awansu do wyższych środowisk.
- Środowisko produkcyjne – Miejsce, do którego w pierwszym kroku promowane są potoki uczenia maszynowego od dewelopera, a także planowane i monitorowane w czasie.
- Centralny rejestr modeli - Rejestr modelu Amazon SageMaker jest konfigurowany na oddzielnym koncie AWS w celu śledzenia wersji modeli generowanych w środowiskach deweloperskich i prod.
- CI/CD i kontrola źródła – Wdrażanie potoków ML w różnych środowiskach odbywa się za pośrednictwem CI/CD skonfigurowanego w Jenkins, a kontrola wersji jest obsługiwana przez GitHub. Zmiany w kodzie połączone z odpowiednią gałęzią git środowiska uruchamiają przepływ pracy CI/CD w celu wprowadzenia odpowiednich zmian w danym środowisku docelowym.
- Prognozy zbiorcze z monitorowaniem modelu – Potok wnioskowania zbudowany za pomocą Rurociągi Amazon SageMaker działa zgodnie z harmonogramem w celu generowania prognoz wraz z monitorowaniem modelu za pomocą SageMaker Model Monitor w celu wykrywania dryftu danych.
- Zautomatyzowany mechanizm przekwalifikowania – Potok szkoleniowy zbudowany za pomocą SageMaker Pipelines jest uruchamiany za każdym razem, gdy w potoku wnioskowania zostanie wykryty dryf danych. Po przeszkoleniu model jest rejestrowany w centralnym rejestrze modeli w celu zatwierdzenia przez osobę zatwierdzającą model. Po zatwierdzeniu zaktualizowana wersja modelu jest używana do generowania prognoz za pośrednictwem potoku wnioskowania.
- Infrastruktura jako kod – Infrastruktura jako kod (IaC), tworzona przy użyciu Terraforma HashiCorp, obsługuje planowanie potoku wnioskowania za pomocą EventBridge, wyzwalanie potoku pociągu na podstawie Reguła EventBridge i wysyłanie powiadomień za pomocą Usługa prostego powiadomienia Amazon (Amazonskie SNS) ilość tematów.
Przepływ pracy MLOps obejmuje następujące kroki:
- Uzyskaj dostęp do domeny SageMaker Studio na koncie programistycznym, sklonuj repozytorium GitHub, przejdź przez proces tworzenia modelu przy użyciu dostarczonego przykładowego modelu i wygeneruj potoki uczenia i wnioskowania.
- Uruchom potok pociągów na koncie programistycznym, które generuje artefakty modelu dla przeszkolonej wersji modelu i rejestruje model w rejestrze modeli SageMaker na centralnym koncie rejestru modeli.
- Zatwierdź model w rejestrze modeli SageMaker na koncie rejestru modeli centralnych.
- Wciśnij kod (potoki uczenia i wnioskowania oraz kod Terraform IaC do tworzenia harmonogramu EventBridge, reguły EventBridge i tematu SNS) do gałęzi funkcji repozytorium GitHub. Utwórz żądanie ściągnięcia, aby scalić kod z główną gałęzią repozytorium GitHub.
- Uruchom potok Jenkins CI/CD, który jest skonfigurowany w repozytorium GitHub. Potok CI/CD wdraża kod na koncie prod w celu utworzenia potoków uczenia i wnioskowania wraz z kodem Terraform w celu udostępnienia harmonogramu EventBridge, reguły EventBridge i tematu SNS.
- Potok wnioskowania ma działać codziennie, natomiast potok pociągów jest skonfigurowany tak, aby działał za każdym razem, gdy zostanie wykryty dryf danych z potoku wnioskowania.
- Powiadomienia są wysyłane za pośrednictwem tematu SNS w przypadku awarii pociągu lub potoku wnioskowania.
Wymagania wstępne
W przypadku tego rozwiązania należy spełnić następujące wymagania wstępne:
- Trzy konta AWS (konta deweloperskie, prod i centralny rejestr modeli)
- Domena SageMaker Studio skonfigurowana na każdym z trzech kont AWS (patrz Na pokładzie do Amazon SageMaker Studio lub obejrzyj wideo Szybko dołącz do Amazon SageMaker Studio instrukcje konfiguracji)
- Jenkins (używamy Jenkins 2.401.1) z uprawnieniami administracyjnymi zainstalowanymi na AWS
- Terraform w wersji 1.5.5 lub nowszej zainstalowany na serwerze Jenkins
W przypadku tego postu pracujemy w us-east-1
Region, w którym ma zostać wdrożone rozwiązanie.
Udostępnij klucze KMS na kontach deweloperskich i prod
Naszym pierwszym krokiem jest tworzenie Usługa zarządzania kluczami AWS (AWS KMS) na kontach deweloperskich i prod.
Utwórz klucz KMS na koncie deweloperskim i daj dostęp do konta prod
Wykonaj następujące kroki, aby utworzyć klucz KMS na koncie dewelopera:
- W konsoli AWS KMS wybierz Klucze zarządzane przez klienta w okienku nawigacji.
- Dodaj Utwórz klucz.
- W razie zamówieenia projektu Typ klucza, Wybierz Symetryczny.
- W razie zamówieenia projektu Zastosowanie klucza, Wybierz Szyfruj i deszyfruj.
- Dodaj Następna.
- Wprowadź numer konta produkcyjnego, aby zapewnić kontu produkcyjnemu dostęp do klucza KMS udostępnionego na koncie deweloperskim. Jest to wymagany krok, ponieważ przy pierwszym szkoleniu modelu na koncie deweloperskim artefakty modelu są szyfrowane kluczem KMS przed zapisaniem w zasobniku S3 na koncie rejestru modelu centralnego. Konto produkcyjne potrzebuje dostępu do klucza KMS, aby odszyfrować artefakty modelu i uruchomić potok wnioskowania.
- Dodaj Następna i zakończ tworzenie klucza.
Po udostępnieniu klucza powinien być widoczny na konsoli AWS KMS.
Utwórz klucz KMS na koncie prod
Wykonaj te same kroki, co w poprzedniej sekcji, aby utworzyć klucz KMS zarządzany przez klienta na koncie prod. Możesz pominąć krok udostępniania klucza KMS innemu kontu.
Skonfiguruj zasobnik artefaktów modelu S3 na koncie rejestru modeli centralnych
Za pomocą sznurka utwórz wybrane wiadro S3 sagemaker
w konwencji nazewnictwa jako część nazwy zasobnika na koncie rejestru modeli centralnych i zaktualizuj zasady zasobnika w zasobniku S3, aby nadać uprawnienia zarówno kontom deweloperskim, jak i prod. do odczytu i zapisu artefaktów modelu w zasobniku S3.
Poniższy kod to zasady zasobnika, które należy zaktualizować w zasobniku S3:
Skonfiguruj role IAM na swoich kontach AWS
Następnym krokiem jest konfiguracja AWS Zarządzanie tożsamością i dostępem (IAM) na kontach AWS z uprawnieniami do AWS Lambda, SageMaker i Jenkins.
Rola wykonania lambda
Ustawiać Role wykonawcze Lambda na kontach dev i prod, które będą wykorzystywane przez funkcję Lambda uruchamianą w ramach pliku Krok Lambda rurociągów SageMaker. Ten krok zostanie uruchomiony z potoku wnioskowania w celu pobrania najnowszego zatwierdzonego modelu, na podstawie którego generowane są wnioski. Utwórz role IAM na kontach deweloperskich i prod, stosując konwencję nazewnictwa arn:aws:iam::<account-id>:role/lambda-sagemaker-role
i dołącz następujące zasady uprawnień:
- Polityka 1 – Utwórz politykę inline o nazwie
cross-account-model-registry-access
, który daje dostęp do pakietu modeli ustawionego w rejestrze modeli na koncie centralnym: - Polityka 2 - Przytwierdzać AmazonSageMakerPełny dostęp, który jest Polityka zarządzana przez AWS który zapewnia pełny dostęp do SageMaker. Zapewnia także wybrany dostęp do powiązanych usług, takich jak Automatyczne skalowanie aplikacji AWS, Amazonka S3, Rejestr elastycznego pojemnika Amazon (Amazon ECR) i Dzienniki Amazon CloudWatch.
- Polityka 3 - Przytwierdzać AWSLambda_FullAccess, czyli polityka zarządzana przez AWS, która zapewnia pełny dostęp do funkcji Lambda, konsoli Lambda i innych powiązanych usług AWS.
- Polityka 4 – Użyj następującej polityki zaufania IAM dla roli IAM:
Rola wykonawcza SageMaker
Domeny SageMaker Studio skonfigurowane na kontach dev i prod powinny mieć przypisaną rolę wykonawczą, którą można znaleźć na stronie ustawienia domeny na stronie szczegółów domeny, jak pokazano na poniższym zrzucie ekranu. Ta rola służy do uruchamiania zadań szkoleniowych, zadań przetwarzania i innych w domenie SageMaker Studio.
Dodaj następujące zasady do roli wykonawczej SageMaker na obu kontach:
- Polityka 1 – Utwórz politykę inline o nazwie
cross-account-model-artifacts-s3-bucket-access
, który daje dostęp do segmentu S3 na centralnym koncie rejestru modeli, w którym przechowywane są artefakty modelu: - Polityka 2 – Utwórz politykę inline o nazwie
cross-account-model-registry-access
, który daje dostęp do pakietu modeli w rejestrze modeli na koncie centralnego rejestru modeli: - Polityka 3 – Utwórz politykę inline o nazwie
kms-key-access-policy
, który daje dostęp do klucza KMS utworzonego w poprzednim kroku. Podaj identyfikator konta, na którym tworzona jest polityka, oraz identyfikator klucza KMS utworzonego na tym koncie. - Polityka 4 - Przytwierdzać AmazonSageMakerPełny dostęp, który jest Polityka zarządzana przez AWS który zapewnia pełny dostęp do SageMaker i wybrany dostęp do powiązanych usług.
- Polityka 5 - Przytwierdzać AWSLambda_FullAccess, czyli polityka zarządzana przez AWS, która zapewnia pełny dostęp do funkcji Lambda, konsoli Lambda i innych powiązanych usług AWS.
- Polityka 6 - Przytwierdzać CloudWatchEventsPełny dostęp, czyli zasada zarządzana przez AWS, która zapewnia pełny dostęp do zdarzeń CloudWatch.
- Polityka 7 – Dodaj następującą politykę zaufania IAM dla roli IAM wykonania SageMaker:
- Zasada 8 (specyficzna dla roli wykonawczej SageMaker na koncie prod) – Utwórz politykę inline o nazwie
cross-account-kms-key-access-policy
, który daje dostęp do klucza KMS utworzonego na koncie deweloperskim. Jest to wymagane, aby potok wnioskowania mógł odczytywać artefakty modelu przechowywane na koncie centralnego rejestru modeli, gdzie artefakty modelu są szyfrowane przy użyciu klucza KMS z konta dewelopera, gdy tworzona jest pierwsza wersja modelu z konta dewelopera.
Rola Jenkinsa obejmująca wiele kont
Skonfiguruj rolę uprawnień o nazwie cross-account-jenkins-role
na koncie prod, które Jenkins przyjmie na siebie w celu wdrożenia potoków ML i odpowiedniej infrastruktury na koncie prod.
Dodaj do roli następujące zarządzane zasady uprawnień:
CloudWatchFullAccess
AmazonS3FullAccess
AmazonSNSFullAccess
AmazonSageMakerFullAccess
AmazonEventBridgeFullAccess
AWSLambda_FullAccess
Zaktualizuj relację zaufania w roli, aby nadać uprawnienia kontu AWS hostującemu serwer Jenkins:
Zaktualizuj uprawnienia roli IAM powiązanej z serwerem Jenkins
Zakładając, że Jenkins został skonfigurowany na AWS, zaktualizuj rolę IAM powiązaną z Jenkinsem, aby dodać następujące zasady, które dadzą Jenkinsowi dostęp do wdrażania zasobów na koncie prod:
- Polityka 1 – Utwórz następującą politykę inline o nazwie
assume-production-role-policy
: - Polityka 2 – Dołącz
CloudWatchFullAccess
zarządzane zasady uprawnień.
Skonfiguruj grupę pakietów modeli na koncie centralnego rejestru modeli
W domenie SageMaker Studio na koncie rejestru modeli centralnych utwórz grupę pakietów modeli o nazwie mammo-severity-model-package
używając następującego fragmentu kodu (który można uruchomić za pomocą notatnika Jupyter):
Skonfiguruj dostęp do pakietu modelu dla ról IAM na kontach deweloperskich i prod
Zapewnij dostęp do ról wykonawczych SageMaker utworzonych na kontach deweloperskich i prod, aby móc rejestrować wersje modelu w pakiecie modelu mammo-severity-model-package
w centralnym rejestrze modeli z obu rachunków. W domenie SageMaker Studio na koncie rejestru modeli centralnych uruchom następujący kod w notatniku Jupyter:
Skonfiguruj Jenkinsa
W tej sekcji konfigurujemy Jenkinsa do tworzenia potoków ML i odpowiedniej infrastruktury Terraform na koncie prod za pośrednictwem potoku Jenkins CI/CD.
- W konsoli CloudWatch utwórz grupę dzienników o nazwie
jenkins-log
w ramach konta prod, na które Jenkins będzie przesyłać logi z potoku CI/CD. Grupę dzienników należy utworzyć w tym samym regionie, w którym skonfigurowano serwer Jenkins. - Zainstaluj następujące wtyczki na twoim serwerze Jenkins:
- Skonfiguruj poświadczenia AWS w Jenkins przy użyciu roli IAM dla wielu kont (
cross-account-jenkins-role
) udostępnione na koncie prod. - W razie zamówieenia projektu Konfiguracja systemuwybierz AWS.
- Podaj poświadczenia i utworzoną wcześniej grupę dzienników CloudWatch.
- Skonfiguruj poświadczenia GitHub w Jenkins.
- Utwórz nowy projekt w Jenkins.
- Wprowadź nazwę projektu i wybierz Rurociąg.
- Na Ogólne kartę, wybierz Projekt GitHub i wprowadź rozwidlenie Repozytorium GitHub URL.
- Wybierz Projekt ten jest sparametryzowany.
- Na Dodaj parametr menu, wybierz Parametr ciągu.
- W razie zamówieenia projektu Imię, wchodzić
prodAccount
. - W razie zamówieenia projektu Domyślna wartość, wprowadź identyfikator konta prod.
- Pod Zaawansowane opcje projektu, Dla Definicja, Wybierz Skrypt potoku z SCM.
- W razie zamówieenia projektu SCMwybierz git.
- W razie zamówieenia projektu URL repozytorium, wprowadź rozwidlenie Repozytorium GitHub URL.
- W razie zamówieenia projektu Listy uwierzytelniającewprowadź poświadczenia GitHub zapisane w Jenkins.
- Wchodzę
main
Gałęzie do zbudowania sekcję, na podstawie której zostanie uruchomiony potok CI/CD. - W razie zamówieenia projektu Ścieżka skryptu, wchodzić
Jenkinsfile
. - Dodaj Zapisz.
Potok Jenkins powinien zostać utworzony i widoczny na pulpicie nawigacyjnym.
Udostępnij zasobniki S3, zbierz i przygotuj dane
Wykonaj następujące kroki, aby skonfigurować zasobniki i dane S3:
- Za pomocą sznurka utwórz wybrane wiadro S3
sagemaker
w konwencji nazewnictwa jako część nazwy segmentu zarówno na kontach deweloperskich, jak i prod, do przechowywania zestawów danych i artefaktów modeli. - Skonfiguruj segment S3, aby zachować stan Terraform na koncie prod.
- Pobierz i zapisz publicznie dostępne Msza Mammograficzna UCI dataset do zasobnika S3 utworzonego wcześniej na koncie dewelopera.
- Rozwidlaj i klonuj Repozytorium GitHub w domenie SageMaker Studio na koncie deweloperskim. Repozytorium ma następującą strukturę folderów:
- /environments – Skrypt konfiguracyjny dla środowiska prod
- /mlops-infra – Kod do wdrażania usług AWS przy użyciu kodu Terraform
- /rurociągi – Kod komponentów potoku SageMaker
- Plik Jenkinsa – Skrypt do wdrożenia za pośrednictwem potoku Jenkins CI/CD
- konfiguracja.py – Wymagane zainstalowanie wymaganych modułów Pythona i utworzenie polecenia run-pipeline
- mammografia-severity-modeling.ipynb – Umożliwia tworzenie i uruchamianie przepływu pracy ML
- Utwórz folder o nazwie data w sklonowanym folderze repozytorium GitHub i zapisz kopię pliku dostępnego publicznie Msza Mammograficzna UCI zestaw danych.
- Podążaj za notatnikiem Jupytera
mammography-severity-modeling.ipynb
. - Uruchom następujący kod w notatniku, aby wstępnie przetworzyć zestaw danych i przesłać go do segmentu S3 na koncie dewelopera:
Kod wygeneruje następujące zbiory danych:
-
- dane/ mammo-train-dataset-part1.csv – Będzie używany do uczenia pierwszej wersji modelu.
- dane/ mammo-train-dataset-part2.csv – Będzie używany do uczenia drugiej wersji modelu wraz ze zbiorem danych mammo-train-dataset-part1.csv.
- dane/mammo-batch-dataset.csv – Będzie używany do generowania wniosków.
- data/mammo-batch-dataset-outliers.csv – Wprowadzi wartości odstające do zbioru danych, aby zawieść potok wnioskowania. Umożliwi nam to przetestowanie wzorca w celu uruchomienia automatycznego ponownego uczenia modelu.
- Prześlij zbiór danych
mammo-train-dataset-part1.csv
pod prefiksemmammography-severity-model/train-dataset
i prześlij zbiory danychmammo-batch-dataset.csv
imammo-batch-dataset-outliers.csv
do przedrostkamammography-severity-model/batch-dataset
segmentu S3 utworzonego na koncie deweloperskim: - Prześlij zbiory danych
mammo-train-dataset-part1.csv
imammo-train-dataset-part2.csv
pod prefiksemmammography-severity-model/train-dataset
do segmentu S3 utworzonego na koncie prod za pośrednictwem konsoli Amazon S3. - Prześlij zbiory danych
mammo-batch-dataset.csv
imammo-batch-dataset-outliers.csv
do przedrostkamammography-severity-model/batch-dataset
segmentu S3 na koncie prod.
Uruchom rurociąg kolejowy
Pod <project-name>/pipelines/train
, możesz zobaczyć następujące skrypty Pythona:
- scripts/raw_preprocess.py – Integruje się z SageMaker Processing w celu inżynierii funkcji
- scripts/evaluate_model.py – W tym przypadku umożliwia obliczenie metryk modelu
auc_score
- train_pipeline.py – Zawiera kod potoku uczenia modelu
Wykonaj następujące kroki:
- Prześlij skrypty do Amazon S3:
- Pobierz instancję rurociągu kolejowego:
- Prześlij rurociąg pociągu i uruchom go:
Poniższy rysunek przedstawia pomyślne uruchomienie potoku szkoleniowego. Ostatnim krokiem w potoku jest rejestracja modelu na koncie centralnego rejestru modeli.
Zatwierdź model w centralnym rejestrze modeli
Zaloguj się na konto centralnego rejestru modeli i uzyskaj dostęp do rejestru modeli SageMaker w domenie SageMaker Studio. Zmień status wersji modelu na Zatwierdzony.
Po zatwierdzeniu należy zmienić status wersji modelu.
Uruchom potok wnioskowania (opcjonalnie)
Ten krok nie jest wymagany, ale nadal możesz uruchomić potok wnioskowania, aby wygenerować prognozy na koncie dewelopera.
Pod <project-name>/pipelines/inference
, możesz zobaczyć następujące skrypty Pythona:
- scripts/lambda_helper.py – Pobiera najnowszą zatwierdzoną wersję modelu z centralnego konta rejestru modeli przy użyciu kroku Lambda SageMaker Pipelines
- inference_pipeline.py – Zawiera kod potoku wnioskowania modelu
Wykonaj następujące kroki:
- Prześlij skrypt do segmentu S3:
- Pobierz instancję potoku wnioskowania przy użyciu normalnego wsadowego zestawu danych:
- Prześlij potok wnioskowania i uruchom go:
Poniższy rysunek przedstawia pomyślne uruchomienie potoku wnioskowania. Ostatni krok w potoku generuje prognozy i przechowuje je w segmencie S3. Używamy Monitoruj krok transformacji wsadowej do monitorowania danych wejściowych zadania transformacji wsadowej. Jeśli istnieją jakieś wartości odstające, potok wnioskowania przechodzi w stan niepowodzenia.
Uruchom potok Jenkins
Połączenia environment/
folder w repozytorium GitHub zawiera skrypt konfiguracyjny dla konta prod. Wykonaj następujące kroki, aby uruchomić potok Jenkins:
- Zaktualizuj skrypt konfiguracyjny
prod.tfvars.json
w oparciu o zasoby utworzone w poprzednich krokach: - Po zaktualizowaniu wepchnij kod do rozwidlonego repozytorium GitHub i połącz kod z gałęzią główną.
- Przejdź do interfejsu użytkownika Jenkins, wybierz Kompiluj z parametramii uruchom potok CI/CD utworzony w poprzednich krokach.
Gdy kompilacja zostanie ukończona i pomyślna, możesz zalogować się na konto prod i zobaczyć potoki uczenia i wnioskowania w domenie SageMaker Studio.
Dodatkowo zobaczysz trzy reguły EventBridge w konsoli EventBridge na koncie prod:
- Zaplanuj potok wnioskowania
- Wyślij powiadomienie o awarii na rurociągu kolejowym
- Jeśli potok wnioskowania nie uruchomi potoku pociągu, wyślij powiadomienie
Na koniec zobaczysz temat powiadomień SNS na konsoli Amazon SNS, która wysyła powiadomienia e-mailem. Otrzymasz wiadomość e-mail z prośbą o potwierdzenie akceptacji tych wiadomości e-mail z powiadomieniami.
Przetestuj potok wnioskowania przy użyciu wsadowego zestawu danych bez wartości odstających
Aby sprawdzić, czy potok wnioskowania na koncie prod działa zgodnie z oczekiwaniami, możemy zalogować się na konto prod i uruchomić potok wnioskowania, korzystając z wsadowego zbioru danych bez wartości odstających.
Uruchom potok za pomocą konsoli SageMaker Pipelines w domenie SageMaker Studio konta prod, gdzie transform_input
będzie identyfikatorem URI S3 zbioru danych bez wartości odstających (s3://<s3-bucket-in-prod-account>/mammography-severity-model/data/mammo-batch-dataset.csv
).
Potok wnioskowania powiedzie się i zapisuje przewidywania z powrotem do segmentu S3.
Przetestuj potok wnioskowania przy użyciu wsadowego zestawu danych z wartościami odstającymi
Można uruchomić potok wnioskowania, korzystając z wsadowego zestawu danych z wartościami odstającymi, aby sprawdzić, czy mechanizm automatycznego ponownego uczenia działa zgodnie z oczekiwaniami.
Uruchom potok za pomocą konsoli SageMaker Pipelines w domenie SageMaker Studio konta prod, gdzie transform_input
będzie identyfikatorem URI S3 zbioru danych z wartościami odstającymi (s3://<s3-bucket-in-prod-account>/mammography-severity-model/data/mammo-batch-dataset-outliers.csv
).
Potok wnioskowania nie działa zgodnie z oczekiwaniami, co wyzwala regułę EventBridge, która z kolei wyzwala potok pociągu.
Po kilku chwilach powinieneś zobaczyć nowy przebieg rurociągu pociągu na konsoli SageMaker Pipelines, który pobiera dwa różne zestawy danych pociągu (mammo-train-dataset-part1.csv
i mammo-train-dataset-part2.csv
) przesłane do zasobnika S3 w celu ponownego nauczenia modelu.
Zobaczysz także powiadomienie wysłane na adres e-mail subskrybowany w temacie SNS.
Aby użyć zaktualizowanej wersji modelu, zaloguj się na konto centralnego rejestru modeli i zatwierdź wersję modelu, która zostanie pobrana podczas następnego uruchomienia potoku wnioskowania wyzwalanego przez zaplanowaną regułę EventBridge.
Chociaż potoki uczenia i wnioskowania używają statycznego adresu URL zestawu danych, adres URL zestawu danych można przekazać do potoków uczenia i wnioskowania jako zmienne dynamiczne, aby używać zaktualizowanych zestawów danych do ponownego uczenia modelu i generowania prognoz w scenariuszu ze świata rzeczywistego.
Sprzątać
Aby uniknąć przyszłych opłat, wykonaj następujące czynności:
- Usuń domenę SageMaker Studio ze wszystkich kont AWS.
- Usuń wszystkie zasoby utworzone poza SageMaker, w tym zasobniki S3, role IAM, reguły EventBridge i tematy SNS skonfigurowane za pomocą Terraform na koncie prod.
- Usuń potoki SageMaker utworzone na różnych kontach za pomocą narzędzia Interfejs wiersza poleceń AWS (interfejs wiersza poleceń AWS).
Wnioski
Organizacje często muszą dostosować się do zestawów narzędzi obowiązujących w całym przedsiębiorstwie, aby umożliwić współpracę między różnymi obszarami funkcjonalnymi i zespołami. Ta współpraca gwarantuje, że Twoja platforma MLOps będzie mogła dostosować się do zmieniających się potrzeb biznesowych i przyspiesza wdrażanie uczenia maszynowego w zespołach. W tym poście wyjaśniono, jak utworzyć platformę MLOps w konfiguracji wielośrodowiskowej, aby umożliwić automatyczne ponowne uczenie modelu, wnioskowanie wsadowe i monitorowanie za pomocą Amazon SageMaker Model Monitor, wersjonowanie modelu za pomocą SageMaker Model Registry oraz promowanie kodu ML i potoków w różnych środowiskach z Rurociąg CI/CD. Zaprezentowaliśmy to rozwiązanie, wykorzystując połączenie usług AWS i zestawów narzędzi innych firm. Instrukcje dotyczące wdrażania tego rozwiązania można znaleźć w artykule Repozytorium GitHub. Możesz także rozszerzyć to rozwiązanie, wprowadzając własne źródła danych i struktury modelowania.
O autorach
Gajatri Ghanakota jest starszym inżynierem uczenia maszynowego w AWS Professional Services. Pasjonuje się tworzeniem, wdrażaniem i wyjaśnianiem rozwiązań AI/ML w różnych dziedzinach. Przed objęciem tej roli kierowała wieloma inicjatywami jako analityk danych i inżynier ML w czołowych globalnych firmach z branży finansowej i detalicznej. Posiada tytuł magistra informatyki ze specjalizacją Data Science uzyskany na Uniwersytecie Kolorado w Boulder.
Sunita Koppar jest starszym architektem Data Lake w AWS Professional Services. Jej pasją jest rozwiązywanie problemów klientów poprzez przetwarzanie dużych zbiorów danych i dostarczanie długoterminowych, skalowalnych rozwiązań. Przed objęciem tej roli opracowywała produkty w dziedzinach Internetu, telekomunikacji i motoryzacji i była klientem AWS. Uzyskała tytuł magistra w dziedzinie analityki danych na Uniwersytecie Kalifornijskim w Riverside.
Saswata Dash jest konsultantem DevOps w AWS Professional Services. Współpracowała z klientami z branży opieki zdrowotnej i nauk przyrodniczych, lotnictwa i produkcji. Pasjonuje się automatyzacją i ma wszechstronne doświadczenie w projektowaniu i budowaniu rozwiązań dla klientów na skalę korporacyjną w AWS. Poza pracą realizuje swoją pasję związaną z fotografią i łapaniem wschodów słońca.
- 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. 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.
- Źródło: https://aws.amazon.com/blogs/machine-learning/promote-pipelines-in-a-multi-environment-setup-using-amazon-sagemaker-model-registry-hashicorp-terraform-github-and-jenkins-ci-cd/
- :ma
- :Jest
- :nie
- :Gdzie
- $W GÓRĘ
- 1
- 10
- 100
- 12
- 13
- 14
- 16
- 17
- 19
- 23
- 27
- 31
- 320
- 7
- 8
- 9
- a
- O nas
- przyspiesza
- akceptacja
- dostęp
- Konto
- Konta
- w poprzek
- Działania
- przystosować
- Dodaj
- adres
- administracyjny
- Przyjęcie
- Po
- wiek
- AI
- wyrównać
- Wszystkie kategorie
- dopuszczać
- pozwala
- wzdłuż
- również
- Amazonka
- Amazon Sage Maker
- Amazon Web Services
- an
- i
- Inne
- każdy
- Zastosowanie
- właściwy
- Zatwierdzać
- zatwierdzony
- architektura
- SĄ
- obszary
- na około
- sztuczny
- sztuczna inteligencja
- Sztuczna inteligencja (AI)
- AS
- pytanie
- powiązany
- założyć
- dołączać
- samochód
- zautomatyzowane
- automatycznie
- Automatyzacja
- motoryzacyjny
- dostępny
- lotnictwo
- uniknąć
- AWS
- Klient AWS
- Usługi profesjonalne AWS
- z powrotem
- na podstawie
- podstawa
- BE
- bo
- być
- zanim
- jest
- BEST
- Najlepsze praktyki
- pomiędzy
- Duży
- Big Data
- obie
- Oddział
- mostkowanie
- Bringing
- budować
- Budowanie
- wybudowany
- biznes
- ale
- by
- obliczenie
- California
- nazywa
- CAN
- walizka
- centralny
- zmiana
- zmieniony
- Zmiany
- Opłaty
- ZOBACZ
- wybór
- Dodaj
- kod
- współpraca
- zbierać
- Kolorado
- Kolumna
- kolumny
- COM
- połączenie
- kompletny
- spełnienie
- składniki
- wszechstronny
- komputer
- Computer Science
- warunek
- systemu
- Potwierdzać
- Konsola
- konsultant
- Pojemnik
- zawiera
- kontrola
- Konwencja
- konwertować
- Odpowiedni
- Stwórz
- stworzony
- Tworzenie
- Listy uwierzytelniające
- Krzyż
- klient
- Rozwiązania dla klientów
- Klientów
- codziennie
- tablica rozdzielcza
- dane
- Jezioro danych
- nauka danych
- naukowiec danych
- zbiory danych
- Odszyfruj
- Domyślnie
- Stopień
- rozwijać
- wdrażanie
- Wdrożenie
- wdraża się
- projektowanie
- detale
- wykryć
- wykryte
- dev
- rozwinięty
- rozwijanie
- oprogramowania
- DICT
- różne
- domena
- domeny
- podczas
- dynamiczny
- każdy
- Wcześniej
- efekt
- bądź
- e-maile
- umożliwiać
- szyfrowane
- inżynier
- zapewnia
- Wchodzę
- Środowisko
- środowiska
- niezbędny
- wydarzenia
- ewoluuje
- egzekucja
- spodziewany
- doświadczenie
- wyjaśnione
- wyjaśniając
- rozciągać się
- ułatwiać
- FAIL
- Failed
- nie
- Brak
- Cecha
- Korzyści
- kilka
- Postać
- filet
- finał
- budżetowy
- koniec
- firmy
- i terminów, a
- pierwszy raz
- następujący
- W razie zamówieenia projektu
- znaleziono
- Framework
- Ramy
- od
- Spełnić
- pełny
- funkcjonować
- funkcjonalny
- przyszłość
- szczelina
- Generować
- wygenerowane
- generuje
- otrzymać
- git
- GitHub
- Dać
- dany
- daje
- Globalne
- Go
- Goes
- Dotacje
- Zarządzanie
- Have
- opieki zdrowotnej
- jej
- wyższy
- posiada
- Hosting
- W jaki sposób
- How To
- HTML
- http
- HTTPS
- ID
- tożsamość
- if
- wykonawczych
- importować
- in
- obejmuje
- Włącznie z
- wskaźnik
- Infrastruktura
- początkowo
- inicjatywy
- Wejścia
- zainstalować
- zainstalowany
- przykład
- instrukcje
- Integruje się
- Inteligencja
- Internet
- najnowszych
- przedstawiać
- IT
- Praca
- Oferty pracy
- jpg
- json
- Klawisz
- Klawisze
- Etykieta
- jezioro
- krajobraz
- później
- firmy
- nauka
- Doprowadziło
- dźwignia
- życie
- Life Sciences
- Linia
- log
- długoterminowy
- maszyna
- uczenie maszynowe
- Główny
- utrzymać
- robić
- zarządzane
- i konserwacjami
- produkcja
- Margines
- Masa
- mistrzowski
- mechanizm
- Spotkanie
- Menu
- Łączyć
- Metryka
- brakujący
- ML
- MLOps
- model
- modelowanie
- modele
- modyfikować
- Moduły
- Chwile
- monitor
- monitorowane
- monitorowanie
- jeszcze
- wielokrotność
- Nazwa
- O imieniu
- nazywania
- Nawigacja
- Potrzebować
- potrzebne
- wymagania
- Nowości
- Następny
- normalna
- notatnik
- powiadomienie
- Powiadomienia
- numer
- tępy
- of
- często
- on
- ONE
- operacje
- or
- zamówienie
- organizacji
- Inne
- na zewnątrz
- zewnętrzne
- koniec
- przegląd
- własny
- pakiet
- strona
- Ból
- pandy
- chleb
- część
- strony
- minęło
- pasja
- namiętny
- Wzór
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- uprawnienia
- fotografia
- doborowy
- Wybiera
- rurociąg
- Platforma
- plato
- Analiza danych Platona
- PlatoDane
- zwrotnica
- polityka
- polityka
- Post
- praktyki
- przewidzieć
- Przewidywania
- Przygotować
- warunki wstępne
- poprzedni
- Główny
- Wcześniejszy
- przywileje
- wygląda tak
- przetwarzanie
- Produkcja
- Produkty
- profesjonalny
- projekt
- promować
- Lansowany
- promocja
- zapewniać
- pod warunkiem,
- zapewnia
- że
- zaopatrzenie
- publicznie
- Ściąga
- dąży
- Naciskać
- Python
- szybko
- szybko
- Surowy
- Czytaj
- gotowy
- Prawdziwy świat
- region
- zarejestrować
- zarejestrowany
- rejestry
- rejestr
- regulacyjne
- związane z
- związek
- usunąć
- składnica
- zażądać
- wymagany
- wymagania
- Zasób
- Zasoby
- odpowiedź
- detaliczny
- powrót
- Nadrzeczny
- Rola
- role
- korzeń
- Zasada
- reguły
- run
- działa
- sagemaker
- Rurociągi SageMaker
- taki sam
- Zapisz
- zapisywane
- skalowalny
- scenariusz
- rozkład
- zaplanowane
- szeregowanie
- nauka
- NAUKI
- Naukowiec
- scenariusz
- skrypty
- płynnie
- druga
- Sekcja
- bezpieczne
- bezpieczeństwo
- widzieć
- wysłać
- wysyłanie
- wysyła
- wysłany
- oddzielny
- serwer
- usługa
- Usługi
- zestaw
- w panelu ustawień
- ustawienie
- Shape
- Share
- ona
- powinien
- pokazać
- prezentowany
- pokazane
- Targi
- Prosty
- skrawek
- So
- rozwiązanie
- Rozwiązania
- Rozwiązywanie
- Źródło
- Źródła
- Typ przestrzeni
- wyspecjalizowanym
- specyficzny
- dzielić
- Stan
- Zestawienie sprzedaży
- statyczny
- Rynek
- Ewolucja krok po kroku
- Cel
- Nadal
- sklep
- przechowywany
- sklep
- sznur
- Struktura
- studio
- udany
- taki
- podpory
- cel
- Zespoły
- Telecom
- Terraform
- test
- Testowanie
- że
- Połączenia
- Im
- następnie
- Tam.
- Te
- rzeczy
- Trzeci
- innych firm
- to
- trzy
- Przez
- czas
- do
- zestawy narzędzi
- Top
- aktualny
- śledzić
- Pociąg
- przeszkolony
- Trening
- Przekształcać
- wyzwalać
- rozsierdzony
- wyzwalanie
- prawdziwy
- Zaufaj
- SKRĘCAĆ
- drugiej
- ui
- dla
- uniwersytet
- University of California
- Aktualizacja
- zaktualizowane
- przesłanych
- URL
- us
- posługiwać się
- używany
- za pomocą
- użyteczność
- Wartości
- różnorodny
- wersja
- Wersje
- przez
- Wideo
- widoczny
- Oglądaj
- we
- sieć
- usługi internetowe
- jeśli chodzi o komunikację i motywację
- ilekroć
- natomiast
- który
- Podczas
- będzie
- w
- w ciągu
- bez
- Praca
- pracował
- workflow
- pracujący
- działa
- napisać
- napisany
- You
- Twój
- youtube
- zefirnet