Operacionalize seus notebooks do Amazon SageMaker Studio como tarefas de notebook agendadas PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Operacionalize seus notebooks do Amazon SageMaker Studio como trabalhos de notebook agendados

Estúdio Amazon SageMaker fornece uma solução totalmente gerenciada para que os cientistas de dados criem, treinem e implantem modelos de machine learning (ML) de forma interativa. Além da experiência interativa de ML, os trabalhadores de dados também buscam soluções para executar notebooks como trabalhos efêmeros sem a necessidade de refatorar o código como módulos Python ou aprender ferramentas DevOps e práticas recomendadas para automatizar sua infraestrutura de implantação. Alguns casos de uso comuns para fazer isso incluem:

  • Inferência de modelo em execução regular para gerar relatórios
  • Escalar uma etapa de engenharia de recursos após ter testado no Studio em um subconjunto de dados em uma instância pequena
  • Retreinar e implantar modelos em alguma cadência
  • Analisando a sua equipe Amazon Sage Maker uso em uma cadência regular

Anteriormente, quando os cientistas de dados queriam pegar o código que construíam interativamente em notebooks e executá-los como trabalhos em lote, eles enfrentavam uma curva de aprendizado acentuada usando Pipelines Amazon SageMaker, AWS Lambda, Amazon Event Bridgeou outras soluções que são difíceis de configurar, usar e gerenciar.

Com o Tarefas do notebook SageMaker, agora você pode executar seus notebooks como estão ou de maneira parametrizada com apenas alguns cliques simples no SageMaker Studio ou Laboratório SageMaker Studio interface. Você pode executar esses notebooks em um agendamento ou imediatamente. Não há necessidade de o usuário final modificar seu código de notebook existente. Quando o trabalho estiver concluído, você poderá visualizar as células preenchidas do bloco de anotações, incluindo quaisquer visualizações!

Nesta postagem, compartilhamos como operacionalizar seus notebooks do SageMaker Studio como trabalhos de notebook agendados.

Visão geral da solução

O diagrama a seguir ilustra nossa arquitetura de solução. Utilizamos a extensão SageMaker pré-instalada para executar notebooks como um trabalho imediatamente ou em um cronograma.

Nas seções a seguir, percorremos as etapas para criar um notebook, parametrizar células, personalizar opções adicionais e agendar seu trabalho. Também incluímos um exemplo de caso de uso.

Pré-requisitos

Para usar trabalhos de notebook do SageMaker, você precisa executar um aplicativo JupyterLab 3 JupyterServer no Studio. Para obter mais informações sobre como atualizar para o JupyterLab 3, consulte Visualize e atualize a versão do JupyterLab de um aplicativo no console. Certifique-se de Desligue e atualize o SageMaker Studio para obter as atualizações mais recentes.

Para definir as definições de trabalho que executam notebooks em um agendamento, pode ser necessário adicionar permissões adicionais à sua função de execução do SageMaker.

Primeiro, adicione uma relação de confiança à função de execução do SageMaker que permita events.amazonaws.com para assumir o seu papel:

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

Além disso, pode ser necessário criar e anexar uma política em linha à sua função de execução. A política abaixo é complementar à muito permissiva AmazonSageMakerFullAccess política. Para obter um conjunto completo e mínimo de permissões, consulte Instalar políticas e permissões.

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

Criar um trabalho de bloco de anotações

Para operacionalizar seu notebook como um trabalho de notebook do SageMaker, escolha o Criar um trabalho de bloco de anotações ícone.

Operacionalize seus notebooks do Amazon SageMaker Studio como tarefas de notebook agendadas PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Como alternativa, você pode escolher (clique com o botão direito do mouse) seu notebook no sistema de arquivos e escolher Criar trabalho de bloco de anotações.

Operacionalize seus notebooks do Amazon SageMaker Studio como tarefas de notebook agendadas PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

No Criar emprego seção, basta escolher o tipo de instância certo para seu trabalho agendado com base em sua carga de trabalho: instâncias padrão, instâncias de computação otimizada ou instâncias de computação acelerada que contêm GPUs. Você pode escolher qualquer uma das instâncias disponíveis para trabalhos de treinamento do SageMaker. Para obter a lista completa de instâncias disponíveis, consulte Preços do Amazon SageMaker.

Operacionalize seus notebooks do Amazon SageMaker Studio como tarefas de notebook agendadas PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Quando um trabalho é concluído, você pode visualizar o arquivo de notebook de saída com suas células preenchidas, bem como os logs subjacentes das execuções do trabalho.

Operacionalize seus notebooks do Amazon SageMaker Studio como tarefas de notebook agendadas PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Parametrizar células

Ao mover um notebook para um fluxo de trabalho de produção, é importante poder reutilizar o mesmo notebook com diferentes conjuntos de parâmetros para modularidade. Por exemplo, você pode querer parametrizar a localização do conjunto de dados ou os hiperparâmetros do seu modelo para que possa reutilizar o mesmo notebook para muitos treinamentos de modelo distintos. Os trabalhos de bloco de anotações do SageMaker oferecem suporte a isso por meio de tags de célula. Basta escolher o ícone de engrenagem dupla no painel direito e escolher Adicionar etiqueta. Em seguida, rotule a tag como parâmetros.

Operacionalize seus notebooks do Amazon SageMaker Studio como tarefas de notebook agendadas PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Por padrão, a execução do trabalho do notebook usa os valores de parâmetro especificados no notebook, mas, como alternativa, você pode modificá-los como uma configuração para o trabalho do notebook.

Operacionalize seus notebooks do Amazon SageMaker Studio como tarefas de notebook agendadas PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Configurar opções adicionais

Ao criar um trabalho de notebook, você pode expandir o Opções adicionais seção para personalizar sua definição de trabalho. O Studio detectará automaticamente a imagem ou o kernel que você está usando em seu notebook e o pré-selecionará para você. Assegure-se de ter validado esta seleção.

Você também pode especificar variáveis ​​de ambiente ou scripts de inicialização para personalizar seu ambiente de execução de notebook. Para obter a lista completa de configurações, consulte Opções adicionais.

Agende seu trabalho

Para agendar seu trabalho, escolha Executar em um cronograma e defina um intervalo e tempo apropriados. Então você pode escolher o Trabalhos de Notebook guia que fica visível depois de escolher o ícone inicial. Depois que o notebook for carregado, escolha o Definições de Tarefas do Notebook guia para pausar ou remover sua programação.

Operacionalize seus notebooks do Amazon SageMaker Studio como tarefas de notebook agendadas PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Caso de uso de exemplo

Para nosso exemplo, mostramos um fluxo de trabalho de ML de ponta a ponta que prepara dados de uma fonte de informações básicas, treina um modelo atualizado desse período e, em seguida, executa inferência nos dados mais recentes para gerar insights acionáveis. Na prática, você pode executar um fluxo de trabalho completo de ponta a ponta ou simplesmente operacionalizar uma etapa de seu fluxo de trabalho. Você pode agendar um Cola AWS sessão interativa para preparação diária de dados ou execute um trabalho de inferência em lote que gere resultados gráficos diretamente em seu notebook de saída.

O notebook completo para este exemplo pode ser encontrado em nosso Repositório GitHub de exemplos do SageMaker. O caso de uso supõe que somos uma empresa de telecomunicações que deseja programar um notebook que preveja a provável rotatividade de clientes com base em um modelo treinado com os dados mais recentes disponíveis.

Para começar, reunimos os dados do cliente disponíveis mais recentemente e realizamos algum pré-processamento neles:

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)

Treinamos nosso modelo atualizado nesses dados de treinamento atualizados para fazer previsões precisas sobre 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)

Como vamos agendar este notebook como um relatório diário, queremos capturar o desempenho do nosso modelo atualizado em nosso conjunto de validação para que possamos ter confiança em suas previsões futuras. Os resultados na captura de tela a seguir são de nosso relatório de inferência agendado.

Operacionalize seus notebooks do Amazon SageMaker Studio como tarefas de notebook agendadas PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Por fim, você deseja capturar os resultados previstos dos dados de hoje em um banco de dados para que ações possam ser executadas com base nos resultados desse modelo.

Operacionalize seus notebooks do Amazon SageMaker Studio como tarefas de notebook agendadas PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Depois que o notebook for entendido, sinta-se à vontade para executá-lo como um trabalho efêmero usando o Corra agora opção descrita anteriormente ou teste a funcionalidade de agendamento.

limpar

Se você seguiu nosso exemplo, certifique-se de pausar ou excluir a programação do trabalho do notebook para evitar cobranças contínuas.

Conclusão

Colocar os notebooks em produção com as tarefas de notebook do SageMaker simplifica muito o trabalho pesado indiferenciado exigido pelos data workers. Esteja você agendando fluxos de trabalho de ML de ponta a ponta ou uma peça do quebra-cabeça, recomendamos que você coloque alguns notebooks em produção usando o SageMaker Studio ou o SageMaker Studio Lab! Para saber mais, consulte Fluxos de trabalho baseados em notebook.


Sobre os autores

Sean MorganSean Morgan é arquiteto de soluções de ML sênior na AWS. Ele tem experiência nas áreas de semicondutores e pesquisa acadêmica e usa sua experiência para ajudar os clientes a atingirem seus objetivos na AWS. Em seu tempo livre, Sean é um colaborador/mantenedor de código aberto ativo e é o líder do grupo de interesse especial para os complementos do TensorFlow.

Operacionalize seus notebooks do Amazon SageMaker Studio como tarefas de notebook agendadas PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Sumedha Swami é gerente de produto principal da Amazon Web Services. Ele lidera a equipe do SageMaker Studio para integrá-lo ao IDE de escolha para fluxos de trabalho interativos de ciência de dados e engenharia de dados. Ele passou os últimos 15 anos criando produtos para consumidores e empresas obcecados pelo cliente usando Machine Learning. Em seu tempo livre, ele gosta de fotografar a incrível geologia do sudoeste americano.

Operacionalize seus notebooks do Amazon SageMaker Studio como tarefas de notebook agendadas PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Eduardo Sol é um SDE sênior que trabalha para o SageMaker Studio na Amazon Web Services. Ele está focado na criação de soluções de ML interativas e na simplificação da experiência do cliente para integrar o SageMaker Studio com tecnologias populares em engenharia de dados e ecossistema de ML. Em seu tempo livre, Edward é um grande fã de camping, caminhadas e pesca e gosta de passar o tempo com sua família.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS