Operationalisieren Sie Ihre Amazon SageMaker Studio-Notizbücher als geplante Notizbuchjobs mit PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Operationalisieren Sie Ihre Amazon SageMaker Studio-Notebooks als geplante Notebook-Jobs

Amazon SageMaker-Studio bietet eine vollständig verwaltete Lösung für Data Scientists zum interaktiven Erstellen, Trainieren und Bereitstellen von Modellen für maschinelles Lernen (ML). Neben der interaktiven ML-Erfahrung suchen Data Worker auch nach Lösungen, um Notebooks als kurzlebige Jobs auszuführen, ohne Code in Python-Module umgestalten oder DevOps-Tools und Best Practices zur Automatisierung ihrer Bereitstellungsinfrastruktur erlernen zu müssen. Einige häufige Anwendungsfälle dafür sind:

  • Regelmäßig ausgeführte Modellinferenz zum Generieren von Berichten
  • Hochskalieren eines Feature-Engineering-Schritts nach dem Testen in Studio anhand einer Teilmenge von Daten auf einer kleinen Instanz
  • Umschulen und Bereitstellen von Modellen mit einer gewissen Kadenz
  • Analyse Ihres Teams Amazon Sage Maker Nutzung bei regelmäßiger Trittfrequenz

Wenn Data Scientists den Code, den sie interaktiv auf Notebooks erstellten, als Batch-Jobs ausführen wollten, sahen sie sich zuvor mit einer steilen Lernkurve konfrontiert Amazon SageMaker-Pipelines, AWS Lambda, Amazon EventBridge, oder andere Lösungen die schwierig einzurichten, zu verwenden und zu verwalten sind.

Mit der SageMaker-Notebook-Jobs, können Sie Ihre Notebooks jetzt unverändert oder in parametrisierter Form mit nur wenigen einfachen Klicks aus dem SageMaker Studio oder ausführen SageMaker Studio Lab Schnittstelle. Sie können diese Notebooks nach einem Zeitplan oder sofort ausführen. Der Endbenutzer muss seinen vorhandenen Notebook-Code nicht ändern. Wenn der Job abgeschlossen ist, können Sie die ausgefüllten Notebook-Zellen einschließlich aller Visualisierungen anzeigen!

In diesem Beitrag teilen wir mit, wie Sie Ihre SageMaker Studio-Notebooks als geplante Notebook-Jobs operationalisieren.

Lösungsüberblick

Das folgende Diagramm veranschaulicht unsere Lösungsarchitektur. Wir verwenden die vorinstallierte SageMaker-Erweiterung, um Notebooks sofort oder nach Zeitplan als Job auszuführen.

In den folgenden Abschnitten gehen wir durch die Schritte zum Erstellen eines Notizbuchs, zum Parametrieren von Zellen, zum Anpassen zusätzlicher Optionen und zum Planen Ihres Jobs. Wir fügen auch einen Beispielanwendungsfall hinzu.

Voraussetzungen:

Um SageMaker-Notebook-Jobs verwenden zu können, müssen Sie eine JupyterLab 3 JupyterServer-App in Studio ausführen. Weitere Informationen zum Upgrade auf JupyterLab 3 finden Sie unter Anzeigen und Aktualisieren der JupyterLab-Version einer App über die Konsole. Sicher sein zu Beenden und aktualisieren Sie SageMaker Studio um die neuesten Updates zu erhalten.

Um Jobdefinitionen zu definieren, die Notebooks nach einem Zeitplan ausführen, müssen Sie Ihrer SageMaker-Ausführungsrolle möglicherweise zusätzliche Berechtigungen hinzufügen.

Fügen Sie zunächst eine Vertrauensbeziehung zu Ihrer SageMaker-Ausführungsrolle hinzu, die dies zulässt events.amazonaws.com um Ihre Rolle zu übernehmen:

{
    "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"
        }
    ]
}

Darüber hinaus müssen Sie möglicherweise eine Inline-Richtlinie erstellen und an Ihre Ausführungsrolle anhängen. Die folgende Richtlinie ergänzt die sehr freizügige AmazonSageMakerFullAccess Politik. Einen vollständigen und minimalen Satz von Berechtigungen finden Sie unter Richtlinien und Berechtigungen installieren.

{
    "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/*/*"
        }
    ]
}

Erstellen Sie einen Notebook-Job

Um Ihr Notebook als SageMaker-Notebook-Job zu operationalisieren, wählen Sie die Erstellen Sie einen Notebook-Job klicken.

Operationalisieren Sie Ihre Amazon SageMaker Studio-Notizbücher als geplante Notizbuchjobs mit PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Alternativ können Sie Ihr Notebook im Dateisystem auswählen (Rechtsklick) und auswählen Notebook-Auftrag erstellen.

Operationalisieren Sie Ihre Amazon SageMaker Studio-Notizbücher als geplante Notizbuchjobs mit PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Im Job erstellen Wählen Sie im Abschnitt einfach den richtigen Instance-Typ für Ihren geplanten Job basierend auf Ihrer Workload aus: Standard-Instances, rechenoptimierte Instances oder beschleunigte Computing-Instances, die GPUs enthalten. Sie können jede der für SageMaker-Schulungsaufträge verfügbaren Instanzen auswählen. Die vollständige Liste der verfügbaren Instanzen finden Sie unter Amazon SageMaker Preise.

Operationalisieren Sie Ihre Amazon SageMaker Studio-Notizbücher als geplante Notizbuchjobs mit PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Wenn ein Job abgeschlossen ist, können Sie die Ausgabe-Notebook-Datei mit den gefüllten Zellen sowie die zugrunde liegenden Protokolle der Jobausführungen anzeigen.

Operationalisieren Sie Ihre Amazon SageMaker Studio-Notizbücher als geplante Notizbuchjobs mit PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Zellen parametrisieren

Beim Verschieben eines Notebooks in einen Produktionsworkflow ist es wichtig, dasselbe Notebook mit unterschiedlichen Parametersätzen für die Modularität wiederverwenden zu können. Beispielsweise möchten Sie möglicherweise den Datensatzspeicherort oder die Hyperparameter Ihres Modells parametrisieren, sodass Sie dasselbe Notebook für viele verschiedene Modelltrainings wiederverwenden können. SageMaker-Notizbuchjobs unterstützen dies durch Zell-Tags. Wählen Sie einfach das doppelte Zahnradsymbol im rechten Bereich und wählen Sie aus Tag hinzufügen. Beschriften Sie das Tag dann als Parameter.

Operationalisieren Sie Ihre Amazon SageMaker Studio-Notizbücher als geplante Notizbuchjobs mit PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Standardmäßig verwendet die Notebook-Auftragsausführung die im Notebook angegebenen Parameterwerte, aber Sie können diese alternativ als Konfiguration für Ihren Notebook-Auftrag ändern.

Operationalisieren Sie Ihre Amazon SageMaker Studio-Notizbücher als geplante Notizbuchjobs mit PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Konfigurieren Sie zusätzliche Optionen

Beim Erstellen eines Notebook-Jobs können Sie die erweitern Dieses Formular beschänkt sich auf einige wesentliche Grundfunktionen Abschnitt, um Ihre Jobdefinition anzupassen. Studio erkennt automatisch das Image oder den Kernel, den Sie in Ihrem Notebook verwenden, und wählt es für Sie vorab aus. Stellen Sie sicher, dass Sie diese Auswahl validiert haben.

Sie können auch Umgebungsvariablen oder Startskripts angeben, um Ihre Notebook-Ausführungsumgebung anzupassen. Die vollständige Liste der Konfigurationen finden Sie unter Basics.

Planen Sie Ihren Job

Um Ihren Job zu planen, wählen Sie Nach einem Zeitplan ausführen und stellen Sie ein geeignetes Intervall und eine geeignete Zeit ein. Dann können Sie wählen Notebook-Jobs Registerkarte, die nach Auswahl des Home-Symbols sichtbar ist. Wählen Sie nach dem Laden des Notebooks die Notebook-Auftragsdefinitionen Tab, um Ihren Zeitplan zu pausieren oder zu entfernen.

Operationalisieren Sie Ihre Amazon SageMaker Studio-Notizbücher als geplante Notizbuchjobs mit PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Beispielanwendungsfall

In unserem Beispiel zeigen wir einen End-to-End-ML-Workflow, der Daten aus einer Ground-Truth-Quelle aufbereitet, ein aktualisiertes Modell aus diesem Zeitraum trainiert und dann Rückschlüsse auf die neuesten Daten zieht, um umsetzbare Erkenntnisse zu generieren. In der Praxis können Sie einen kompletten End-to-End-Workflow ausführen oder einfach nur einen Schritt Ihres Workflows operationalisieren. Sie können einen Termin vereinbaren AWS-Kleber interaktive Sitzung für die tägliche Datenvorbereitung oder führen Sie einen Batch-Inferenz-Job aus, der grafische Ergebnisse direkt in Ihrem Ausgabe-Notebook generiert.

Das vollständige Notebook für dieses Beispiel finden Sie in unserem SageMaker-Beispiele im GitHub-Repository. Der Anwendungsfall geht davon aus, dass wir ein Telekommunikationsunternehmen sind, das ein Notebook planen möchte, das die wahrscheinliche Kundenabwanderung basierend auf einem Modell vorhersagt, das mit den neuesten verfügbaren Daten trainiert wurde.

Zu Beginn sammeln wir die neuesten verfügbaren Kundendaten und führen eine Vorverarbeitung durch:

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)

Wir trainieren unser aktualisiertes Modell mit diesen aktualisierten Trainingsdaten, um genaue Vorhersagen zu treffen 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)

Da wir dieses Notebook als täglichen Bericht planen, möchten wir erfassen, wie gut unser aktualisiertes Modell in unserem Validierungssatz abgeschnitten hat, damit wir uns auf seine zukünftigen Vorhersagen verlassen können. Die Ergebnisse im folgenden Screenshot stammen aus unserem geplanten Inferenzbericht.

Operationalisieren Sie Ihre Amazon SageMaker Studio-Notizbücher als geplante Notizbuchjobs mit PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Schließlich möchten Sie die vorhergesagten Ergebnisse der heutigen Daten in einer Datenbank erfassen, damit auf der Grundlage der Ergebnisse dieses Modells Maßnahmen ergriffen werden können.

Operationalisieren Sie Ihre Amazon SageMaker Studio-Notizbücher als geplante Notizbuchjobs mit PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Nachdem das Notebook verstanden wurde, können Sie dies gerne als flüchtigen Job mit dem ausführen Lauf jetzt oben beschriebene Option oder testen Sie die Planungsfunktion.

Aufräumen

Wenn Sie unserem Beispiel gefolgt sind, stellen Sie sicher, dass Sie den Zeitplan Ihres Notebook-Auftrags anhalten oder löschen, um laufende Kosten zu vermeiden.

Zusammenfassung

Notebooks mit SageMaker-Notebook-Jobs in die Produktion zu bringen, vereinfacht das undifferenzierte schwere Heben, das von Data Workern benötigt wird, erheblich. Egal, ob Sie End-to-End-ML-Workflows oder ein Puzzleteil planen, wir empfehlen Ihnen, einige Notebooks mit SageMaker Studio oder SageMaker Studio Lab in Produktion zu bringen! Weitere Informationen finden Sie unter Notebook-basierte Workflows.


Über die Autoren

SeanMorganSeanMorgan ist Senior ML Solutions Architect bei AWS. Er verfügt über Erfahrung in den Bereichen Halbleiter und akademische Forschung und nutzt seine Erfahrung, um Kunden dabei zu helfen, ihre Ziele auf AWS zu erreichen. In seiner Freizeit ist Sean ein aktiver Mitwirkender/Betreuer von Open Source und Leiter der Interessengruppe für TensorFlow-Add-Ons.

Operationalisieren Sie Ihre Amazon SageMaker Studio-Notizbücher als geplante Notizbuchjobs mit PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Sumedha Swamy ist Principal Product Manager bei Amazon Web Services. Er leitet das Team von SageMaker Studio, um es in die IDE der Wahl für interaktive Data-Science- und Data-Engineering-Workflows zu integrieren. Er hat die letzten 15 Jahre damit verbracht, kundenorientierte Verbraucher- und Unternehmensprodukte mithilfe von maschinellem Lernen zu entwickeln. In seiner Freizeit fotografiert er gerne die erstaunliche Geologie des amerikanischen Südwestens.

Operationalisieren Sie Ihre Amazon SageMaker Studio-Notizbücher als geplante Notizbuchjobs mit PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Eduard Sonne ist Senior SDE und arbeitet für SageMaker Studio bei Amazon Web Services. Er konzentriert sich auf den Aufbau interaktiver ML-Lösungen und die Vereinfachung der Kundenerfahrung, um SageMaker Studio mit gängigen Technologien im Data Engineering und ML-Ökosystem zu integrieren. In seiner Freizeit ist Edward ein großer Fan von Camping, Wandern und Angeln und genießt die Zeit, die er mit seiner Familie verbringt.

Zeitstempel:

Mehr von AWS Maschinelles Lernen