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.
Tras definir los pasos de la canalización como un gráfico acíclico dirigido (DAG), puede ejecutar la canalización, que realiza los pasos definidos en el DAG. En los siguientes tutoriales, se muestra cómo ejecutar una canalización de Amazon SageMaker AI mediante el editor drag-and-drop visual de Amazon SageMaker Studio o el SDK de Amazon SageMaker Python.
Para iniciar una nueva ejecución de la canalización, haga lo siguiente:
Una vez que hayas creado una definición de canalización con el SDK de Python para SageMaker IA, puedes enviarla a SageMaker AI 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 Canalizaciones. En este tutorial se supone que utilizará la definición de canalización creada al completar el tutorial Definición de 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 canalización de JSON para asegurarse de que esté bien formada.
import json json.loads(pipeline.definition())
-
Envíe la definición de canalización al servicio de Canalizaciones para crear una canalización si no existe, o actualice la canalización si existe. Canalizaciones utiliza el rol que se pasa 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 MLOps Automatizació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()