Pré-processe dados e treine um modelo de aprendizado de máquina com a Amazon SageMaker - AWS Step Functions

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Pré-processe dados e treine um modelo de aprendizado de máquina com a Amazon SageMaker

Este exemplo de projeto demonstra como usar SageMaker e AWS Step Functions para pré-processar dados e treinar um modelo de aprendizado de máquina.

Nesse projeto, o Step Functions usa uma função do Lambda para propagar um bucket do Amazon S3 com um conjunto de dados de teste e um script do Python para processamento de dados. Em seguida, ele treina um modelo de aprendizado de máquina e executa uma transformação em lote, usando a integração SageMaker de serviços.

Para obter mais informações sobre integrações de serviços SageMaker e Step Functions, consulte o seguinte:

nota

Este projeto de exemplo pode incorrer em cobranças.

Para novos AWS usuários, um nível de uso gratuito está disponível. Neste nível, os serviços são gratuitos abaixo de um determinado nível de uso. Para obter mais informações sobre AWS custos e o nível gratuito, consulte SageMaker Preços.

Etapa 1: Criar a máquina de estado

  1. Abra o console do Step Functions e clique em Criar máquina de estado.

  2. Digite Preprocess data and train a machine learning model na caixa de pesquisa e escolha Pré-processar dados e treinar um modelo de machine learning nos resultados da pesquisa que são retornados.

  3. Escolha Próximo para continuar.

  4. Escolha Executar uma demonstração para criar um ready-to-deploy fluxo de trabalho e somente leitura, ou escolha Criar nele para criar uma definição de máquina de estado editável na qual você possa criar e implantar posteriormente.

    ‎Este projeto de exemplo implementa os recursos a seguir.

    • Uma AWS Lambda função

    • Um bucket do Amazon S3

    • Uma AWS Step Functions máquina de estado

    • Relacionado AWS Identity and Access Management (IAM) funções

    A imagem a seguir mostra o gráfico do fluxo de trabalho para o exemplo de projeto Pré-processar dados e treinar um modelo de machine learning:

    Gráfico do fluxo de trabalho para o exemplo de projeto Pré-processar dados e treinar um modelo de machine learning.
  5. Escolha Usar modelo para continuar com a seleção.

As próximas etapas dependem da sua escolha anterior:

  1. Execute uma demonstração — Você pode revisar a máquina de estado antes de criar um projeto somente para leitura com recursos implantados pelo AWS CloudFormation para o seu Conta da AWS.

    Você pode visualizar a definição da máquina de estado e, quando estiver pronto, escolher Implantar e executar para implantar o projeto e criar os recursos.

    A implantação pode levar até 10 minutos para criar recursos e permissões. Você pode usar o link Stack ID para monitorar o progresso no AWS CloudFormation.

    Após a conclusão da implantação, você deverá ver sua nova máquina de estado no console.

  2. Desenvolva com base nisso — você pode revisar e editar a definição do fluxo de trabalho. Talvez seja necessário definir valores para espaços reservados no projeto de amostra antes de tentar executar seu fluxo de trabalho personalizado.

nota

Cobranças padrão podem ser aplicadas aos serviços implantados em sua conta.

Etapa 2: Executar a máquina de estado

  1. Na página Máquinas de estado, escolha seu projeto de exemplo.

  2. Na página do projeto de exemplo, escolha Iniciar execução.

  3. Na caixa de diálogo Iniciar execução, faça o seguinte:

    1. (Opcional) Insira um nome de execução personalizado para substituir o padrão gerado.

      ASCIINão-nomes e registro

      Step Functions aceita nomes para máquinas de estado, execuções, atividades e rótulos que não contenham ASCII caracteres. Como esses caracteres não funcionarão com a Amazon CloudWatch, recomendamos usar somente ASCII caracteres para que você possa acompanhar as métricas CloudWatch.

    2. (Opcional) Na caixa Entrada, insira os valores de entrada comoJSON. Você pode pular essa etapa se estiver executando uma demonstração.

    3. Selecione Iniciar execução.

    O console Step Functions direcionará você para uma página de detalhes da execução, na qual você pode escolher estados na visualização do gráfico para explorar informações relacionadas no Detalhes da etapa painel.

Exemplo de código da máquina de estado

A máquina de estado neste projeto de amostra se integra com SageMaker e AWS Lambda passando parâmetros diretamente para esses recursos e usando um bucket Amazon S3 para a fonte e a saída dos dados de treinamento.

Navegue por este exemplo de máquina de estado para ver como o Step Functions controla o Lambda e. SageMaker

Para obter mais informações sobre como AWS Step Functions pode controlar outros AWS serviços, vejaIntegrando serviços com Step Functions.

{ "StartAt": "Generate dataset", "States": { "Generate dataset": { "Resource": "arn:aws:lambda:sa-east-1:1234567890:function:FeatureTransform-LambaForDataGeneration-17M8LX7IO9LUW", "Type": "Task", "Next": "Standardization: x' = (x - x̄) / σ" }, "Standardization: x' = (x - x̄) / σ": { "Resource": "arn:aws:states:::sagemaker:createProcessingJob.sync", "Parameters": { "ProcessingResources": { "ClusterConfig": { "InstanceCount": 1, "InstanceType": "ml.m5.xlarge", "VolumeSizeInGB": 10 } }, "ProcessingInputs": [ { "InputName": "input-1", "S3Input": { "S3Uri": "s3://amzn-s3-demo-bucket/input/raw.csv", "LocalPath": "/opt/ml/processing/input", "S3DataType": "S3Prefix", "S3InputMode": "File", "S3DataDistributionType": "FullyReplicated", "S3CompressionType": "None" } }, { "InputName": "code", "S3Input": { "S3Uri": "s3://amzn-s3-demo-bucket/code/transform.py", "LocalPath": "/opt/ml/processing/input/code", "S3DataType": "S3Prefix", "S3InputMode": "File", "S3DataDistributionType": "FullyReplicated", "S3CompressionType": "None" } } ], "ProcessingOutputConfig": { "Outputs": [ { "OutputName": "train_data", "S3Output": { "S3Uri": "s3://amzn-s3-demo-bucket/train", "LocalPath": "/opt/ml/processing/output/train", "S3UploadMode": "EndOfJob" } } ] }, "AppSpecification": { "ImageUri": "737474898029.dkr.ecr.sa-east-1.amazonaws.com/sagemaker-scikit-learn:0.20.0-cpu-py3", "ContainerEntrypoint": [ "python3", "/opt/ml/processing/input/code/transform.py" ] }, "StoppingCondition": { "MaxRuntimeInSeconds": 300 }, "RoleArn": "arn:aws:iam::1234567890:role/SageMakerAPIExecutionRole-AIDACKCEVSQ6C2EXAMPLE", "ProcessingJobName.$": "$$.Execution.Name" }, "Type": "Task", "Next": "Train model (XGBoost)" }, "Train model (XGBoost)": { "Resource": "arn:aws:states:::sagemaker:createTrainingJob.sync", "Parameters": { "AlgorithmSpecification": { "TrainingImage": "855470959533.dkr.ecr.sa-east-1.amazonaws.com/xgboost:latest", "TrainingInputMode": "File" }, "OutputDataConfig": { "S3OutputPath": "s3://amzn-s3-demo-bucket/models" }, "StoppingCondition": { "MaxRuntimeInSeconds": 86400 }, "ResourceConfig": { "InstanceCount": 1, "InstanceType": "ml.m5.xlarge", "VolumeSizeInGB": 30 }, "RoleArn": "arn:aws:iam::1234567890:role/SageMakerAPIExecutionRole-AIDACKCEVSQ6C2EXAMPLE", "InputDataConfig": [ { "DataSource": { "S3DataSource": { "S3DataDistributionType": "ShardedByS3Key", "S3DataType": "S3Prefix", "S3Uri": "s3://amzn-s3-demo-bucket" } }, "ChannelName": "train", "ContentType": "text/csv" } ], "HyperParameters": { "objective": "reg:logistic", "eval_metric": "rmse", "num_round": "5" }, "TrainingJobName.$": "$$.Execution.Name" }, "Type": "Task", "End": true } } }

Para obter informações sobre como configurar IAM ao usar Step Functions com outros AWS serviços, vejaComo o Step Functions gera IAM políticas para serviços integrados.

IAMExemplo

Esses exemplos AWS Identity and Access Management (IAM) as políticas geradas pelo projeto de amostra incluem o menor privilégio necessário para executar a máquina de estado e os recursos relacionados. Recomendamos que você inclua somente as permissões necessárias em suas IAM políticas.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:PutMetricData", "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup", "logs:DescribeLogStreams", "s3:GetObject", "s3:PutObject", "s3:ListBucket", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*", "Effect": "Allow" } ] }

A política a seguir permite que a função do Lambda propague o bucket do Amazon S3 com dados de exemplo.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Effect": "Allow" } ] }

Para obter informações sobre como configurar IAM ao usar Step Functions com outros AWS serviços, vejaComo o Step Functions gera IAM políticas para serviços integrados.