Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Dopo aver definito i passaggi della pipeline come grafo aciclico diretto (DAG), potete eseguire la pipeline, che esegue i passaggi definiti nel DAG. Le seguenti procedure dettagliate mostrano come eseguire una pipeline Amazon SageMaker AI utilizzando l' drag-and-dropeditor visivo di Amazon Studio SageMaker o l'SDK Amazon Python. SageMaker
Per iniziare una nuova esecuzione della pipeline, procedi come segue:
Dopo aver creato una definizione di pipeline utilizzando SageMaker AI Python SDK, puoi inviarla SageMaker all'IA per avviare l'esecuzione. Il seguente tutorial mostra come inviare una pipeline, avviare un'esecuzione, esaminare i risultati di tale esecuzione ed eliminare la pipeline.
Argomenti
Prerequisiti
Questo tutorial richiede quanto segue:
-
Un' SageMaker istanza di notebook.
-
Una definizione di pipeline Pipelines. Questo tutorial presuppone che tu stia utilizzando la definizione della pipeline creata completando il tutorial Definire una pipeline.
Fase 1: avvio della pipeline
Per prima cosa dovrai avviare la pipeline.
Per avviare la pipeline
-
Esamina la definizione della pipeline JSON per assicurarti che sia ben formata.
import json json.loads(pipeline.definition())
-
Invia la definizione della pipeline al servizio Pipelines per creare una pipeline se non esiste o aggiorna la pipeline se esiste. Il ruolo passato viene utilizzato da Pipelines per creare tutti i lavori definiti nei passaggi.
pipeline.upsert(role_arn=role)
-
Avvio dell'esecuzione di una pipeline.
execution = pipeline.start()
Fase 2: esame dell'esecuzione di una pipeline
Successivamente, è necessario esaminare l'esecuzione della pipeline.
Per esaminare l'esecuzione di una pipeline
-
Descrivi lo stato di esecuzione della pipeline per assicurarti che sia stata creata e avviata correttamente.
execution.describe()
-
Attendi la fine dell'esecuzione.
execution.wait()
-
Elenca le fasi di esecuzione e il loro stato.
execution.list_steps()
L'aspetto dell'output deve essere simile al seguente:
[{'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 volta completata l'esecuzione della pipeline, scarica il file
evaluation.json
risultante da Amazon S3 per esaminare il report.evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)
Fase 3: sostituzione dei parametri predefiniti per l'esecuzione di una pipeline
È possibile eseguire esecuzioni aggiuntive della pipeline specificando diversi parametri della pipeline per sovrascrivere i valori predefiniti.
Per sovrascrivere i parametri predefiniti
-
Crea l'esecuzione della pipeline. Ciò avvia un'altra esecuzione della pipeline con la sovrascrittura dello stato di approvazione del modello impostata su “Approvato”. Ciò significa che la versione del pacchetto modello generata dalla
RegisterModel
fase è automaticamente pronta per la distribuzione tramite pipeline CI/CD, ad esempio con Projects. SageMaker Per ulteriori informazioni, consulta MLOps Automazione con SageMaker progetti.execution = pipeline.start( parameters=dict( ModelApprovalStatus="Approved", ) )
-
Attendi la fine dell'esecuzione.
execution.wait()
-
Elenca le fasi di esecuzione e il loro stato.
execution.list_steps()
-
Una volta completata l'esecuzione della pipeline, scarica il file
evaluation.json
risultante da Amazon S3 per esaminare il report.evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)
Fase 4: interruzione ed eliminazione dell'esecuzione di una pipeline
Quando hai terminato con la pipeline, puoi interrompere le esecuzioni in corso ed eliminare la pipeline.
Per interropere ed eliminare l'esecuzione di una pipeline
-
Interrompi l'esecuzione della pipeline.
execution.stop()
-
Elimina la pipeline
pipeline.delete()