Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejecución de una canalización
Tras definir los pasos de tu canalización como un gráfico acíclico dirigido (DAG), puedes ejecutar tu canalización, que ejecuta los pasos definidos en tu. DAG En los siguientes tutoriales, se muestra cómo ejecutar una SageMaker canalización de Amazon mediante el editor drag-and-drop visual de Amazon SageMaker Studio o Amazon Python SageMaker . SDK
Para iniciar una nueva ejecución de tu canalización, haz lo siguiente:
Una vez que hayas creado una definición de canalización con SageMaker PythonSDK, puedes enviarla SageMaker a para iniciar la ejecución. El siguiente tutorial muestra cómo enviar una canalización, iniciar una ejecución, examinar los resultados de esa ejecución y eliminar la canalización.
Temas
Requisitos previos
Este tutorial requiere lo siguiente:
-
Una instancia de SageMaker bloc de notas.
-
Una definición de canalización de Pipelines. En este tutorial se supone que utilizará la definición de canalización creada al completar el tutorial Defina una canalización.
Paso 1: Iniciar la canalización
En primer lugar, es preciso iniciar la canalización.
Para iniciar la canalización
-
Examine la definición de la JSON tubería para asegurarse de que esté bien formada.
import json json.loads(pipeline.definition())
-
Envía la definición de canalización al servicio Pipelines para crear una canalización si no existe, o actualiza la canalización si existe. Pipelines utiliza la función transferida para crear todos los trabajos definidos en los pasos.
pipeline.upsert(role_arn=role)
-
Inicie la ejecución de la canalización.
execution = pipeline.start()
Paso 2: Examinar la ejecución de una canalización
A continuación, debe examinar la ejecución de la canalización.
Para examinar la ejecución de una canalización
-
Describa el estado de ejecución de la canalización para asegurarse de que se ha creado e iniciado correctamente.
execution.describe()
-
Espere a que finalice la ejecución.
execution.wait()
-
Enumere los pasos de ejecución y su estado.
execution.list_steps()
El resultado debería tener el siguiente aspecto:
[{'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'}}}]
-
Una vez finalizada la ejecución de la canalización, descargue el archivo
evaluation.json
resultante de Amazon S3 para examinar el informe.evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)
Paso 3: Anular los parámetros predeterminados para la ejecución de una canalización
Puede ejecutar más ejecuciones de la canalización si especifica distintos parámetros de canalización para anular los valores predeterminados.
Para anular los parámetros predeterminados
-
Cree la ejecución de la canalización. Esto inicia otra ejecución de la canalización con la anulación del estado de aprobación del modelo establecida en “Aprobado”. Esto significa que la versión del paquete modelo generada por el
RegisterModel
paso está lista automáticamente para su implementación a través de las canalizaciones de CI/CD, como en el caso de Projects. SageMaker Para obtener más información, consulte MLOpsAutomatización con SageMaker proyectos.execution = pipeline.start( parameters=dict( ModelApprovalStatus="Approved", ) )
-
Espere a que finalice la ejecución.
execution.wait()
-
Enumere los pasos de ejecución y su estado.
execution.list_steps()
-
Una vez finalizada la ejecución de la canalización, descargue el archivo
evaluation.json
resultante de Amazon S3 para examinar el informe.evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)
Paso 4: Detener y eliminar la ejecución de una canalización
Cuando termine con la canalización, puede detener cualquier ejecución en curso y eliminar la canalización.
Para detener y eliminar la ejecución de una canalización
-
Detenga la ejecución de la canalización.
execution.stop()
-
Elimine la canalización.
pipeline.delete()