Operacjonalizuj swoje notatniki Amazon SageMaker Studio jako zaplanowane zadania dotyczące notatników PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Operacjonalizuj swoje notebooki Amazon SageMaker Studio jako zaplanowane zadania notebooków

Studio Amazon SageMaker zapewnia w pełni zarządzane rozwiązanie dla analityków danych do interaktywnego tworzenia, trenowania i wdrażania modeli uczenia maszynowego (ML). Oprócz interaktywnego środowiska uczenia maszynowego pracownicy danych poszukują również rozwiązań do uruchamiania notatników jako efemerycznych zadań bez konieczności refaktoryzacji kodu jako modułów Pythona lub uczenia się narzędzi DevOps i najlepszych praktyk w celu zautomatyzowania infrastruktury wdrożeniowej. Niektóre typowe przypadki użycia w tym celu obejmują:

  • Regularne uruchamianie wnioskowania o modelu w celu generowania raportów
  • Skalowanie w górę kroku inżynierii funkcji po przetestowaniu w Studio na podzbiorze danych w małej instancji
  • Ponowne szkolenie i wdrażanie modeli w określonej kadencji
  • Analiza Twojego zespołu Amazon Sage Maker używanie w regularnym rytmie

Wcześniej, gdy analitycy danych chcieli pobrać kod, który zbudowali interaktywnie na notatnikach, i uruchamiać go jako zadania wsadowe, musieli stawić czoła stromej krzywej uczenia się, używając Rurociągi Amazon SageMaker, AWS Lambda, Most zdarzeń Amazonalub inne rozwiązania które są trudne do skonfigurowania, użytkowania i zarządzania.

Z Zadania z notebooka SageMaker, możesz teraz uruchamiać swoje notebooki bez zmian lub w sposób sparametryzowany za pomocą kilku prostych kliknięć w SageMaker Studio lub Laboratorium studyjne SageMaker interfejs. Notesy te można uruchamiać zgodnie z harmonogramem lub natychmiast. Użytkownik końcowy nie musi modyfikować istniejącego kodu notesu. Po zakończeniu zadania możesz przeglądać wypełnione komórki notatnika, w tym wszelkie wizualizacje!

W tym poście dzielimy się sposobem operacjonalizacji notatników SageMaker Studio jako zaplanowanych zadań notatników.

Omówienie rozwiązania

Poniższy diagram ilustruje architekturę naszego rozwiązania. Korzystamy z preinstalowanego rozszerzenia SageMaker, aby uruchamiać notebooki jako zadanie natychmiast lub zgodnie z harmonogramem.

W poniższych sekcjach przeprowadzimy Cię krok po kroku, aby utworzyć notatnik, sparametryzować komórki, dostosować dodatkowe opcje i zaplanować zadanie. Dołączamy również przykładowy przypadek użycia.

Wymagania wstępne

Aby korzystać z zadań notatnika SageMaker, musisz uruchomić aplikację JupyterLab 3 JupyterServer w Studio. Aby uzyskać więcej informacji na temat aktualizacji do JupyterLab 3, zobacz Przeglądaj i aktualizuj wersję aplikacji JupyterLab z poziomu konsoli. Upewnij się, że Zamknij i zaktualizuj SageMaker Studio w celu pobrania najnowszych aktualizacji.

Aby zdefiniować definicje zadań, które uruchamiają notatniki zgodnie z harmonogramem, może być konieczne dodanie dodatkowych uprawnień do roli wykonawczej SageMaker.

Najpierw dodaj relację zaufania do swojej roli wykonawczej SageMaker, która na to pozwala events.amazonaws.com przyjąć swoją rolę:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "sagemaker.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "events.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

Ponadto może być konieczne utworzenie i dołączenie zasad wbudowanych do roli wykonawczej. Poniższa polityka jest uzupełnieniem bardzo liberalnej polityki AmazonSageMakerFullAccess polityka. Aby uzyskać pełny i minimalny zestaw uprawnień, zobacz Zainstaluj zasady i uprawnienia.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "events:TagResource",
                "events:DeleteRule",
                "events:PutTargets",
                "events:DescribeRule",
                "events:PutRule",
                "events:RemoveTargets",
                "events:DisableRule",
                "events:EnableRule"
            ],
            "Resource": "*",
            "Condition": {
              "StringEquals": {
                "aws:ResourceTag/sagemaker:is-scheduling-notebook-job": "true"
              }
            }
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "events.amazonaws.com"
                }
            }
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": "sagemaker:ListTags",
            "Resource": "arn:aws:sagemaker:*:*:user-profile/*/*"
        }
    ]
}

Utwórz zadanie notatnika

Aby zoperacjonalizować notatnik jako zadanie notatnika SageMaker, wybierz Utwórz zadanie notatnika icon.

Operacjonalizuj swoje notatniki Amazon SageMaker Studio jako zaplanowane zadania dotyczące notatników PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Alternatywnie możesz wybrać (kliknij prawym przyciskiem myszy) swój notatnik w systemie plików i wybrać Utwórz zadanie notatnika.

Operacjonalizuj swoje notatniki Amazon SageMaker Studio jako zaplanowane zadania dotyczące notatników PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

W Utwórz pracę sekcji, po prostu wybierz odpowiedni typ instancji dla zaplanowanego zadania na podstawie obciążenia: instancje standardowe, instancje zoptymalizowane pod kątem obliczeń lub instancje z przyspieszonym przetwarzaniem, które zawierają procesory graficzne. Możesz wybrać dowolną instancję dostępną dla zadań szkoleniowych SageMaker. Aby uzyskać pełną listę dostępnych instancji, zobacz Cennik Amazon SageMaker.

Operacjonalizuj swoje notatniki Amazon SageMaker Studio jako zaplanowane zadania dotyczące notatników PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Po zakończeniu zadania można wyświetlić wyjściowy plik notatnika z wypełnionymi komórkami, a także dzienniki źródłowe z uruchomień zadania.

Operacjonalizuj swoje notatniki Amazon SageMaker Studio jako zaplanowane zadania dotyczące notatników PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Sparametryzuj komórki

Podczas przenoszenia notebooka do produkcyjnego przepływu pracy ważna jest możliwość ponownego użycia tego samego notebooka z różnymi zestawami parametrów w celu zapewnienia modułowości. Na przykład możesz chcieć sparametryzować lokalizację zestawu danych lub hiperparametry swojego modelu, aby móc ponownie używać tego samego notesu do wielu różnych szkoleń modelu. Zadania notatnika SageMaker obsługują to za pomocą znaczników komórek. Po prostu wybierz ikonę podwójnego koła zębatego w prawym okienku i wybierz Dodaj tag. Następnie oznacz tag jako parametry.

Operacjonalizuj swoje notatniki Amazon SageMaker Studio jako zaplanowane zadania dotyczące notatników PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Domyślnie uruchomienie zadania notatnika używa wartości parametrów określonych w notatniku, ale alternatywnie można je zmodyfikować jako konfigurację zadania notatnika.

Operacjonalizuj swoje notatniki Amazon SageMaker Studio jako zaplanowane zadania dotyczące notatników PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Skonfiguruj dodatkowe opcje

Podczas tworzenia zadania notatnika możesz rozwinąć plik Dodatkowe funkcje w celu dostosowania definicji zadania. Studio automatycznie wykryje obraz lub jądro, których używasz w swoim notatniku, i wstępnie je wybierze. Upewnij się, że zweryfikowałeś ten wybór.

Możesz także określić zmienne środowiskowe lub skrypty startowe, aby dostosować środowisko uruchamiania notebooka. Aby uzyskać pełną listę konfiguracji, zobacz Dodatkowe opcje.

Zaplanuj swoją pracę

Aby zaplanować pracę, wybierz Działaj zgodnie z harmonogramem i ustaw odpowiedni interwał i czas. Następnie możesz wybrać Praca z notebookiem zakładka widoczna po wybraniu ikony strony głównej. Po załadowaniu notebooka wybierz plik Definicje zadań notebooka kartę, aby wstrzymać lub usunąć harmonogram.

Operacjonalizuj swoje notatniki Amazon SageMaker Studio jako zaplanowane zadania dotyczące notatników PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Przykładowy przypadek użycia

W naszym przykładzie przedstawiamy kompleksowy przepływ pracy ML, który przygotowuje dane z podstawowego źródła prawdy, trenuje odświeżony model z tego okresu, a następnie przeprowadza wnioskowanie na podstawie najnowszych danych w celu wygenerowania praktycznych spostrzeżeń. W praktyce możesz uruchomić pełny przepływ pracy od końca do końca lub po prostu zoperacjonalizować jeden etap przepływu pracy. Możesz zaplanować np Klej AWS sesja interaktywna do codziennego przygotowywania danych lub uruchomić zadanie wnioskowania wsadowego, które generuje graficzne wyniki bezpośrednio w wyjściowym notatniku.

Pełny notatnik dla tego przykładu można znaleźć w naszym Przykłady SageMaker Repozytorium GitHub. Przypadek użycia zakłada, że ​​jesteśmy firmą telekomunikacyjną, która chce zaplanować notatnik, który przewiduje prawdopodobną utratę klientów na podstawie modelu wytrenowanego z najnowszymi dostępnymi danymi.

Na początek zbieramy najnowsze dostępne dane klientów i przeprowadzamy na nich wstępne przetwarzanie:

import pandas as pd
from synthetic_data import generate_data

previous_two_weeks_data = generate_data(5000, label_known=True)
todays_data = generate_data(300, label_known=False)

processed_prior_data = process_data(previous_two_weeks_data, label_known=True)
processed_todays_data = process_data(todays_data, label_known=False)

Szkolimy nasz odświeżony model na tych zaktualizowanych danych szkoleniowych, aby móc dokładnie prognozować todays_data:

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import f1_score, confusion_matrix, ConfusionMatrixDisplay

y = np.ravel(processed_prior_data[["Churn"]])
x = processed_prior_data.drop(["Churn"], axis=1)

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)

clf = RandomForestClassifier(n_estimators=int(number_rf_estimators), criterion="gini")
clf.fit(x_train, y_train)

Ponieważ zamierzamy zaplanować ten notatnik jako raport dzienny, chcemy uchwycić, jak dobrze nasz odświeżony model działał w naszym zbiorze sprawdzania poprawności, abyśmy mogli mieć pewność co do jego przyszłych prognoz. Wyniki na poniższym zrzucie ekranu pochodzą z naszego zaplanowanego raportu wnioskowania.

Operacjonalizuj swoje notatniki Amazon SageMaker Studio jako zaplanowane zadania dotyczące notatników PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Na koniec chcesz przechwycić przewidywane wyniki dzisiejszych danych do bazy danych, aby można było podjąć działania na podstawie wyników tego modelu.

Operacjonalizuj swoje notatniki Amazon SageMaker Studio jako zaplanowane zadania dotyczące notatników PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Po zrozumieniu notatnika możesz uruchomić to jako efemeryczne zadanie przy użyciu Biegnij teraz opcję opisaną wcześniej lub przetestuj funkcjonalność planowania.

Sprzątać

Jeśli postępowałeś zgodnie z naszym przykładem, pamiętaj o wstrzymaniu lub usunięciu harmonogramu zadania notebooka, aby uniknąć naliczania bieżących opłat.

Wnioski

Wprowadzanie notebooków do produkcji za pomocą zadań notebooków SageMaker znacznie upraszcza niezróżnicowane podnoszenie ciężarów wymagane przez pracowników danych. Niezależnie od tego, czy planujesz kompleksowe przepływy pracy ML, czy element układanki, zachęcamy do wprowadzenia niektórych notatników do produkcji za pomocą SageMaker Studio lub SageMaker Studio Lab! Aby dowiedzieć się więcej, zobacz Przepływy pracy oparte na notatnikach.


O autorach

Seana MorganaSeana Morgana jest starszym architektem rozwiązań ML w AWS. Ma doświadczenie w dziedzinie półprzewodników i badań akademickich i wykorzystuje swoje doświadczenie, aby pomóc klientom osiągnąć ich cele w AWS. W wolnym czasie Sean jest aktywnym współtwórcą/opiekunem oprogramowania open source i jest liderem specjalnej grupy interesu dla TensorFlow Addons.

Operacjonalizuj swoje notatniki Amazon SageMaker Studio jako zaplanowane zadania dotyczące notatników PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Sumedha Swamy jest głównym menedżerem produktu w Amazon Web Services. Kieruje zespołem SageMaker Studio, aby wbudować go w wybrane środowisko IDE do interaktywnej analizy danych i przepływów pracy w inżynierii danych. Spędził ostatnie 15 lat na budowaniu produktów konsumenckich i korporacyjnych, które mają obsesję na punkcie klientów, korzystając z uczenia maszynowego. W wolnym czasie lubi fotografować niesamowitą geologię amerykańskiego południowego zachodu.

Operacjonalizuj swoje notatniki Amazon SageMaker Studio jako zaplanowane zadania dotyczące notatników PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Edwarda Suna jest starszym SDE pracującym dla SageMaker Studio w Amazon Web Services. Koncentruje się na budowaniu interaktywnych rozwiązań ML i upraszczaniu obsługi klienta w celu integracji SageMaker Studio z popularnymi technologiami w inżynierii danych i ekosystemie ML. W wolnym czasie Edward jest wielkim fanem biwakowania, wędrówek i wędkowania, a także lubi spędzać czas z rodziną.

Znak czasu:

Więcej z Uczenie maszynowe AWS