Operationaliser dine Amazon SageMaker Studio-notebooks som planlagte notebook-job PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Operationaliser dine Amazon SageMaker Studio-notebooks som planlagte notebook-job

Amazon SageMaker Studio leverer en fuldt administreret løsning til datavidenskabsfolk til interaktivt at bygge, træne og implementere maskinlæringsmodeller (ML). Ud over den interaktive ML-oplevelse søger dataarbejdere også løsninger til at køre notebooks som flygtige opgaver uden behov for at omstrukturere kode som Python-moduler eller lære DevOps-værktøjer og bedste praksis til at automatisere deres implementeringsinfrastruktur. Nogle almindelige brugstilfælde til at gøre dette inkluderer:

  • Regelmæssigt kørende modelslutning for at generere rapporter
  • Opskalering af et feature engineering-trin efter at have testet i Studio mod en delmængde af data på en lille instans
  • Omskoling og implementering af modeller på en vis kadence
  • Analyser dit teams Amazon SageMaker brug på en almindelig kadence

Tidligere, da datavidenskabsfolk ønskede at tage den kode, de byggede interaktivt på notebooks og køre dem som batchjobs, stod de over for en stejl indlæringskurve ved at bruge Amazon SageMaker Pipelines, AWS Lambda, Amazon Eventbridge eller andre løsninger som er svære at sætte op, bruge og administrere.

Med SageMaker notebook job, kan du nu køre dine notesbøger, som de er eller på en parametriseret måde med blot et par enkle klik fra SageMaker Studio eller SageMaker Studio Lab interface. Du kan køre disse notesbøger efter en tidsplan eller med det samme. Det er ikke nødvendigt for slutbrugeren at ændre deres eksisterende notebook-kode. Når jobbet er fuldført, kan du se de udfyldte notesbogsceller, inklusive eventuelle visualiseringer!

I dette indlæg deler vi, hvordan du operationaliserer dine SageMaker Studio-notesbøger som planlagte notesbogsjob.

Løsningsoversigt

Følgende diagram illustrerer vores løsningsarkitektur. Vi bruger den forudinstallerede SageMaker-udvidelse til at køre notebooks som et job med det samme eller efter en tidsplan.

I de følgende sektioner gennemgår vi trinene for at oprette en notesbog, parametrisere celler, tilpasse yderligere muligheder og planlægge dit job. Vi inkluderer også et eksempel på et use case.

Forudsætninger

For at bruge SageMaker notebook-job skal du køre en JupyterLab 3 JupyterServer-app i Studio. For mere information om, hvordan du opgraderer til JupyterLab 3, se Se og opdater JupyterLab-versionen af ​​en app fra konsollen. Vær sikker på Luk ned og opdater SageMaker Studio for at hente de seneste opdateringer.

For at definere jobdefinitioner, der kører notesbøger efter en tidsplan, skal du muligvis tilføje yderligere tilladelser til din SageMaker-udførelsesrolle.

Først skal du tilføje et tillidsforhold til din SageMaker-udførelsesrolle, der tillader det events.amazonaws.com at påtage sig din rolle:

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

Derudover skal du muligvis oprette og vedhæfte en inline-politik til din eksekveringsrolle. Nedenstående politik er et supplement til den meget eftergivende AmazonSageMakerFullAccess politik. Se et komplet og minimalt sæt tilladelser Installationspolitikker og tilladelser.

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

Opret et notesbogsjob

For at operationalisere din notebook som et SageMaker notebook-job skal du vælge Opret et notesbogsjob .

Operationaliser dine Amazon SageMaker Studio-notebooks som planlagte notebook-job PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Alternativt kan du vælge (højreklikke) din notesbog på filsystemet og vælge Opret notesbogsjob.

Operationaliser dine Amazon SageMaker Studio-notebooks som planlagte notebook-job PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

I Skab job sektion, skal du blot vælge den rigtige instanstype til dit planlagte job baseret på din arbejdsbyrde: standardforekomster, beregningsoptimerede forekomster eller accelererede computerforekomster, der indeholder GPU'er. Du kan vælge enhver af de tilgængelige forekomster til SageMaker-uddannelsesjob. Se den komplette liste over tilgængelige forekomster Amazon SageMaker-priser.

Operationaliser dine Amazon SageMaker Studio-notebooks som planlagte notebook-job PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Når et job er fuldført, kan du se output-notesbogsfilen med dens udfyldte celler, såvel som de underliggende logfiler fra jobkørslerne.

Operationaliser dine Amazon SageMaker Studio-notebooks som planlagte notebook-job PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Parametriser celler

Når du flytter en notesbog til et produktionsworkflow, er det vigtigt at kunne genbruge den samme notesbog med forskellige sæt parametre for modularitet. For eksempel vil du måske indstille datasætplaceringen eller hyperparametrene for din model, så du kan genbruge den samme notesbog til mange forskellige modeltræninger. SageMaker notebook-job understøtter dette gennem celle-tags. Du skal blot vælge det dobbelte tandhjulsikon i højre rude og vælge Tilføj tag. Mærk derefter tagget som parametre.

Operationaliser dine Amazon SageMaker Studio-notebooks som planlagte notebook-job PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Som standard bruger notebook-opgaven de parameterværdier, der er angivet i notesbogen, men alternativt kan du ændre disse som en konfiguration for dit notebook-job.

Operationaliser dine Amazon SageMaker Studio-notebooks som planlagte notebook-job PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Konfigurer yderligere muligheder

Når du opretter et notesbogsjob, kan du udvide Yderligere indstillinger afsnittet for at tilpasse din jobdefinition. Studio vil automatisk finde det billede eller den kerne, du bruger i din notesbog, og forudvælge det for dig. Sørg for, at du har valideret dette valg.

Du kan også angive miljøvariabler eller opstartsscripts for at tilpasse dit notebook-miljø. For den fulde liste over konfigurationer, se Yderligere indstillinger.

Planlæg dit job

Vælg for at planlægge dit job Løb efter en tidsplan og indstil et passende interval og tid. Så kan du vælge Notebook job fanen, der er synlig, når du har valgt hjemmeikonet. Når den bærbare computer er indlæst, skal du vælge Definitioner af bærbare job fanen for at sætte din tidsplan på pause eller fjerne den.

Operationaliser dine Amazon SageMaker Studio-notebooks som planlagte notebook-job PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Eksempel på use case

For vores eksempel viser vi et end-to-end ML-workflow, der forbereder data fra en jordsandhedskilde, træner en opdateret model fra den tidsperiode og derefter kører konklusioner på de seneste data for at generere handlingsegnet indsigt. I praksis kan du køre et komplet end-to-end workflow eller blot operationalisere et trin i dit workflow. Du kan planlægge en AWS Lim interaktiv session til daglig dataforberedelse, eller kør et batch-inferensjob, der genererer grafiske resultater direkte i din output-notesbog.

Den fulde notesbog til dette eksempel kan findes i vores SageMaker Eksempler GitHub repository. Use casen antager, at vi er et teleselskab, der søger at planlægge en notesbog, der forudsiger sandsynlig kundeafgang baseret på en model, der er trænet med de seneste data, vi har til rådighed.

Til at starte med samler vi de senest tilgængelige kundedata og udfører nogle forbehandlinger på dem:

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)

Vi træner vores opdaterede model på disse opdaterede træningsdata for at kunne lave præcise forudsigelser på 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)

Fordi vi planlægger denne notesbog som en daglig rapport, ønsker vi at fange, hvor godt vores opdaterede model klarede sig på vores valideringssæt, så vi kan være sikre på dens fremtidige forudsigelser. Resultaterne i det følgende skærmbillede er fra vores planlagte slutningsrapport.

Operationaliser dine Amazon SageMaker Studio-notebooks som planlagte notebook-job PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Til sidst vil du fange de forudsagte resultater af dagens data i en database, så der kan foretages handlinger baseret på resultaterne af denne model.

Operationaliser dine Amazon SageMaker Studio-notebooks som planlagte notebook-job PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Når notesbogen er forstået, er du velkommen til at køre dette som et flygtigt job ved hjælp af Løb nu mulighed beskrevet tidligere eller test planlægningsfunktionaliteten.

Ryd op

Hvis du fulgte vores eksempel, skal du sørge for at pause eller slette dit notebook-jobs tidsplan for at undgå at pådrage dig løbende gebyrer.

Konklusion

At bringe notebooks til produktion med SageMaker notebook-job forenkler i høj grad de udifferentierede tunge løft, der kræves af dataarbejdere. Uanset om du planlægger end-to-end ML-arbejdsgange eller en del af puslespillet, opfordrer vi dig til at sætte nogle notesbøger i produktion ved hjælp af SageMaker Studio eller SageMaker Studio Lab! For at lære mere, se Notebook-baserede arbejdsgange.


Om forfatterne

Sean MorganSean Morgan er Senior ML Solutions Architect hos AWS. Han har erfaring inden for halvleder- og akademisk forskning og bruger sin erfaring til at hjælpe kunder med at nå deres mål på AWS. I sin fritid er Sean en aktiv open source bidragyder/vedligeholder og er specialinteressegruppeleder for TensorFlow Addons.

Operationaliser dine Amazon SageMaker Studio-notebooks som planlagte notebook-job PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Sumedha Swamy er hovedproduktchef hos Amazon Web Services. Han leder SageMaker Studio-teamet til at bygge det ind i den foretrukne IDE til interaktive datavidenskab og dataingeniørarbejdsgange. Han har brugt de sidste 15 år på at bygge kundebesatte forbruger- og virksomhedsprodukter ved hjælp af Machine Learning. I sin fritid kan han godt lide at fotografere den fantastiske geologi i det amerikanske sydvest.

Operationaliser dine Amazon SageMaker Studio-notebooks som planlagte notebook-job PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Edward Sun er en Senior SDE, der arbejder for SageMaker Studio hos Amazon Web Services. Han er fokuseret på at bygge interaktiv ML-løsning og forenkle kundeoplevelsen for at integrere SageMaker Studio med populære teknologier inden for datateknik og ML-økosystemer. I sin fritid er Edward stor fan af camping, vandreture og fiskeri og nyder tiden med sin familie.

Tidsstempel:

Mere fra AWS maskinindlæring