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á.
Execute um pipeline
Depois de definir as etapas do pipeline como um gráfico acíclico direcionado (DAG), você pode executar o pipeline, o que executa as etapas definidas no DAG. As instruções a seguir mostram como executar um pipeline de SageMaker IA da Amazon usando o editor drag-and-drop visual no Amazon SageMaker Studio ou o SDK do Amazon Python SageMaker .
Para iniciar uma nova execução de pipeline, faça o seguinte:
Depois de criar uma definição de pipeline usando o SDK do SageMaker AI Python, você pode enviá-la à SageMaker AI para iniciar sua execução. O tutorial a seguir mostra como enviar um pipeline, iniciar uma execução, examinar os resultados dessa execução e excluir seu pipeline.
Tópicos
Pré-requisitos
Este tutorial requer o seguinte:
-
Uma instância de SageMaker notebook.
-
Uma definição de pipeline do Pipelines. Este tutorial pressupõe que você esteja usando a definição de pipeline criada ao concluir o tutorial Definir um pipeline.
Etapa 1: iniciar o pipeline
Primeiro, você precisa iniciar o pipeline.
Para iniciar o pipeline
-
Examine a definição do pipeline JSON para garantir que ela esteja bem formada.
import json json.loads(pipeline.definition())
-
Envie a definição do pipeline ao serviço do Pipelines para criar um pipeline, caso ele não exista, ou atualizar o pipeline, caso exista. A função transmitida é usada pelo Pipelines para criar todos os trabalhos definidos nas etapas.
pipeline.upsert(role_arn=role)
-
Inicie a execução de um pipeline.
execution = pipeline.start()
Etapa 2: examinar a execução de um pipeline
Em seguida, você precisa examinar a execução do pipeline.
Para examinar a execução de um pipeline
-
Descreva o status de execução do pipeline para garantir que ele tenha sido criado e iniciado com sucesso.
execution.describe()
-
Aguarde o término da execução.
execution.wait()
-
Liste as etapas de execução e seu status.
execution.list_steps()
A saída será semelhante a:
[{'StepName': 'AbaloneTransform', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 870000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 45, 50, 492000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'TransformJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:transform-job/pipelines-cfvy1tjuxdq8-abalonetransform-ptyjoef3jy'}}}, {'StepName': 'AbaloneRegisterModel', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 929000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 28, 15000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'RegisterModel': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model-package/abalonemodelpackagegroupname/1'}}}, {'StepName': 'AbaloneCreateModel', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 895000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 708000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'Model': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model/pipelines-cfvy1tjuxdq8-abalonecreatemodel-jl94rai0ra'}}}, {'StepName': 'AbaloneMSECond', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 25, 558000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 329000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'Condition': {'Outcome': 'True'}}}, {'StepName': 'AbaloneEval', 'StartTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 767000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 18, 80000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneeval-zfraozhmny'}}}, {'StepName': 'AbaloneTrain', 'StartTime': datetime.datetime(2020, 11, 21, 2, 34, 55, 867000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 34000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'TrainingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:training-job/pipelines-cfvy1tjuxdq8-abalonetrain-tavd6f3wdf'}}}, {'StepName': 'AbaloneProcess', 'StartTime': datetime.datetime(2020, 11, 21, 2, 30, 27, 160000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 34, 48, 390000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneprocess-mgqyfdujcj'}}}]
-
Depois que a execução do pipeline for concluída, baixe o arquivo
evaluation.json
resultante do Amazon S3 para examinar o relatório.evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)
Etapa 3: substituir parâmetros padrão para a execução de um pipeline
Você pode executar execuções adicionais do pipeline especificando diferentes parâmetros do pipeline para substituir os padrões.
Para substituir os parâmetros padrão
-
Crie a execução do pipeline. Isso inicia outra execução do pipeline com a substituição do status de aprovação do modelo definido como “Aprovado”. Isso significa que a versão do pacote de modelo gerada pela
RegisterModel
etapa está automaticamente pronta para implantação por meio de pipelines de CI/CD, como com Projetos. SageMaker Para obter mais informações, consulte MLOps Automação com SageMaker projetos.execution = pipeline.start( parameters=dict( ModelApprovalStatus="Approved", ) )
-
Aguarde o término da execução.
execution.wait()
-
Liste as etapas de execução e seu status.
execution.list_steps()
-
Depois que a execução do pipeline for concluída, baixe o arquivo
evaluation.json
resultante do Amazon S3 para examinar o relatório.evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)
Etapa 4: interromper e excluir a execução de um pipeline
Ao concluir seu pipeline, você pode interromper qualquer execução em andamento e excluir o pipeline.
Para interromper e excluir a execução de um pipeline
-
Interrompa a execução do pipeline.
execution.stop()
-
Exclua o pipeline.
pipeline.delete()