Opérationnalisez vos blocs-notes Amazon SageMaker Studio en tant que tâches de bloc-notes planifiées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Opérationnalisez vos blocs-notes Amazon SageMaker Studio en tant que tâches de bloc-notes planifiées

Amazon SageMakerStudio fournit une solution entièrement gérée permettant aux scientifiques des données de créer, former et déployer de manière interactive des modèles d'apprentissage automatique (ML). En plus de l'expérience ML interactive, les travailleurs des données recherchent également des solutions pour exécuter des blocs-notes en tant que tâches éphémères sans avoir besoin de refactoriser le code en tant que modules Python ou d'apprendre les outils DevOps et les meilleures pratiques pour automatiser leur infrastructure de déploiement. Certains cas d'utilisation courants pour ce faire incluent :

  • Exécution régulière de l'inférence de modèle pour générer des rapports
  • Mise à l'échelle d'une étape d'ingénierie de fonctionnalités après avoir testé dans Studio un sous-ensemble de données sur une petite instance
  • Recyclage et déploiement de modèles à une certaine cadence
  • Analyse de votre équipe Amazon Sage Maker utilisation à cadence régulière

Auparavant, lorsque les scientifiques des données voulaient prendre le code qu'ils construisaient de manière interactive sur des ordinateurs portables et les exécuter en tant que tâches par lots, ils étaient confrontés à une courbe d'apprentissage abrupte en utilisant Pipelines Amazon SageMaker, AWS Lambda, Amazon Event Bridgeou d'autres solutions difficiles à configurer, à utiliser et à gérer.

Avec Tâches de bloc-notes SageMaker, vous pouvez maintenant exécuter vos blocs-notes tels quels ou de manière paramétrée en quelques clics depuis SageMaker Studio ou Laboratoire SageMaker Studio interface. Vous pouvez exécuter ces blocs-notes selon un calendrier ou immédiatement. L'utilisateur final n'a pas besoin de modifier son code de bloc-notes existant. Lorsque le travail est terminé, vous pouvez afficher les cellules de bloc-notes remplies, y compris toutes les visualisations !

Dans cet article, nous vous expliquons comment opérationnaliser vos blocs-notes SageMaker Studio en tant que tâches de bloc-notes planifiées.

Vue d'ensemble de la solution

Le schéma suivant illustre l'architecture de notre solution. Nous utilisons l'extension SageMaker préinstallée pour exécuter des ordinateurs portables en tant que travail immédiatement ou selon un calendrier.

Dans les sections suivantes, nous passons en revue les étapes pour créer un bloc-notes, paramétrer des cellules, personnaliser des options supplémentaires et planifier votre tâche. Nous incluons également un exemple de cas d'utilisation.

Pré-requis

Pour utiliser les travaux de bloc-notes SageMaker, vous devez exécuter une application JupyterLab 3 JupyterServer dans Studio. Pour plus d'informations sur la mise à niveau vers JupyterLab 3, reportez-vous à Afficher et mettre à jour la version JupyterLab d'une application à partir de la console. Assurez-vous de Arrêter et mettre à jour SageMaker Studio afin de récupérer les dernières mises à jour.

Pour définir des définitions de travail qui exécutent des blocs-notes selon une planification, vous devrez peut-être ajouter des autorisations supplémentaires à votre rôle d'exécution SageMaker.

Tout d'abord, ajoutez une relation d'approbation à votre rôle d'exécution SageMaker qui permet events.amazonaws.com pour assumer votre rôle :

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

En outre, vous devrez peut-être créer et attacher une stratégie en ligne à votre rôle d'exécution. La politique ci-dessous est complémentaire à la très permissive AmazonSageMakerFullAccess politique. Pour un ensemble complet et minimal d'autorisations, voir Installer des politiques et des autorisations.

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

Créer une tâche de bloc-notes

Pour opérationnaliser votre bloc-notes en tant que tâche de bloc-notes SageMaker, choisissez l'option Créer une tâche de bloc-notes icône.

Opérationnalisez vos blocs-notes Amazon SageMaker Studio en tant que tâches de bloc-notes planifiées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Alternativement, vous pouvez choisir (clic droit) votre bloc-notes sur le système de fichiers et choisir Créer une tâche de bloc-notes.

Opérationnalisez vos blocs-notes Amazon SageMaker Studio en tant que tâches de bloc-notes planifiées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Dans le Créer un emploi section, choisissez simplement le bon type d'instance pour votre tâche planifiée en fonction de votre charge de travail : instances standard, instances optimisées pour le calcul ou instances de calcul accéléré contenant des GPU. Vous pouvez choisir l'une des instances disponibles pour les tâches de formation SageMaker. Pour la liste complète des instances disponibles, reportez-vous à Tarification d'Amazon SageMaker.

Opérationnalisez vos blocs-notes Amazon SageMaker Studio en tant que tâches de bloc-notes planifiées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Lorsqu'une tâche est terminée, vous pouvez afficher le fichier de bloc-notes de sortie avec ses cellules remplies, ainsi que les journaux sous-jacents des exécutions de la tâche.

Opérationnalisez vos blocs-notes Amazon SageMaker Studio en tant que tâches de bloc-notes planifiées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Paramétrer les cellules

Lors du déplacement d'un ordinateur portable vers un workflow de production, il est important de pouvoir réutiliser le même ordinateur portable avec différents ensembles de paramètres de modularité. Par exemple, vous souhaiterez peut-être paramétrer l'emplacement du jeu de données ou les hyperparamètres de votre modèle afin de pouvoir réutiliser le même bloc-notes pour de nombreux entraînements de modèle distincts. Les travaux de bloc-notes SageMaker prennent en charge cela via des balises de cellule. Choisissez simplement l'icône à double engrenage dans le volet de droite et choisissez Ajouter une étiquette. Ensuite, étiquetez la balise en tant que paramètres.

Opérationnalisez vos blocs-notes Amazon SageMaker Studio en tant que tâches de bloc-notes planifiées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Par défaut, l'exécution de la tâche de bloc-notes utilise les valeurs de paramètre spécifiées dans le bloc-notes, mais vous pouvez également les modifier en tant que configuration pour votre tâche de bloc-notes.

Opérationnalisez vos blocs-notes Amazon SageMaker Studio en tant que tâches de bloc-notes planifiées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Configurer des options supplémentaires

Lors de la création d'une tâche de bloc-notes, vous pouvez développer la Options additionelles afin de personnaliser votre définition de poste. Studio détectera automatiquement l'image ou le noyau que vous utilisez dans votre notebook et le présélectionnera pour vous. Assurez-vous d'avoir validé cette sélection.

Vous pouvez également spécifier des variables d'environnement ou des scripts de démarrage pour personnaliser l'environnement d'exécution de votre notebook. Pour la liste complète des configurations, voir Options supplémentaires.

Planifiez votre travail

Pour planifier votre travail, choisissez Exécuter selon un calendrier et définissez un intervalle et une durée appropriés. Ensuite, vous pouvez choisir le Tâches de bloc-notes onglet qui est visible après avoir choisi l'icône d'accueil. Une fois le bloc-notes chargé, choisissez le Définitions de travail de bloc-notes onglet pour mettre en pause ou supprimer votre emploi du temps.

Opérationnalisez vos blocs-notes Amazon SageMaker Studio en tant que tâches de bloc-notes planifiées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Exemple de cas d'utilisation

Pour notre exemple, nous présentons un flux de travail ML de bout en bout qui prépare les données à partir d'une source de vérité terrain, forme un modèle actualisé à partir de cette période, puis exécute l'inférence sur les données les plus récentes pour générer des informations exploitables. En pratique, vous pouvez exécuter un flux de travail complet de bout en bout ou simplement opérationnaliser une étape de votre flux de travail. Vous pouvez programmer un Colle AWS séance interactive pour la préparation quotidienne des données, ou exécutez une tâche d'inférence par lots qui génère des résultats graphiques directement dans votre bloc-notes de sortie.

Le cahier complet de cet exemple se trouve dans notre Référentiel GitHub d'exemples SageMaker. Le cas d'utilisation suppose que nous sommes une entreprise de télécommunications qui cherche à planifier un bloc-notes qui prédit l'attrition probable des clients sur la base d'un modèle formé avec les données les plus récentes dont nous disposons.

Pour commencer, nous rassemblons les données client les plus récentes disponibles et effectuons un prétraitement dessus :

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)

Nous formons notre modèle actualisé sur ces données de formation mises à jour afin de faire des prédictions précises sur 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)

Étant donné que nous allons planifier ce bloc-notes sous forme de rapport quotidien, nous souhaitons capturer les performances de notre modèle actualisé sur notre ensemble de validation afin que nous puissions avoir confiance dans ses prévisions futures. Les résultats de la capture d'écran suivante proviennent de notre rapport d'inférence planifié.

Opérationnalisez vos blocs-notes Amazon SageMaker Studio en tant que tâches de bloc-notes planifiées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Enfin, vous souhaitez capturer les résultats prévus des données d'aujourd'hui dans une base de données afin que des actions puissent être prises en fonction des résultats de ce modèle.

Opérationnalisez vos blocs-notes Amazon SageMaker Studio en tant que tâches de bloc-notes planifiées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Une fois le bloc-notes compris, n'hésitez pas à l'exécuter comme un travail éphémère à l'aide de la Cours maintenant l'option décrite précédemment ou testez la fonctionnalité de planification.

Nettoyer

Si vous avez suivi notre exemple, assurez-vous de mettre en pause ou de supprimer la planification de votre travail de bloc-notes pour éviter d'encourir des frais permanents.

Conclusion

La mise en production des blocs-notes avec les travaux de bloc-notes SageMaker simplifie considérablement le travail lourd indifférencié requis par les travailleurs des données. Que vous planifiiez des flux de travail ML de bout en bout ou une pièce du puzzle, nous vous encourageons à mettre des blocs-notes en production à l'aide de SageMaker Studio ou de SageMaker Studio Lab ! Pour en savoir plus, consultez Workflows basés sur des notebooks.


À propos des auteurs

Sean MorganSean Morgan est architecte senior de solutions ML chez AWS. Il a de l'expérience dans les domaines des semi-conducteurs et de la recherche universitaire, et utilise son expérience pour aider les clients à atteindre leurs objectifs sur AWS. Pendant son temps libre, Sean est un contributeur/mainteneur open source activé et est le responsable du groupe d'intérêt spécial pour TensorFlow Addons.

Opérationnalisez vos blocs-notes Amazon SageMaker Studio en tant que tâches de bloc-notes planifiées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Sumedha Swamy est chef de produit principal chez Amazon Web Services. Il dirige l'équipe SageMaker Studio pour l'intégrer dans l'IDE de choix pour les workflows interactifs de science des données et d'ingénierie des données. Il a passé les 15 dernières années à créer des produits grand public et d'entreprise axés sur le client à l'aide de l'apprentissage automatique. Pendant son temps libre, il aime photographier l'incroyable géologie du sud-ouest américain.

Opérationnalisez vos blocs-notes Amazon SageMaker Studio en tant que tâches de bloc-notes planifiées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Edouard Soleil est un SDE senior travaillant pour SageMaker Studio chez Amazon Web Services. Il se concentre sur la création d'une solution ML interactive et la simplification de l'expérience client pour intégrer SageMaker Studio aux technologies populaires d'ingénierie des données et d'écosystème ML. Dans ses temps libres, Edward est un grand amateur de camping, de randonnée et de pêche et aime passer du temps avec sa famille.

Horodatage:

Plus de Apprentissage automatique AWS