Esecuzione selettiva di fasi della pipeline - Amazon SageMaker

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à.

Esecuzione selettiva di fasi della pipeline

Poiché utilizzi Pipelines per creare flussi di lavoro e orchestrare le fasi di formazione sul machine learning, potresti dover intraprendere più fasi di sperimentazione. Invece di eseguire ogni volta l'intera pipeline, potresti voler ripetere solo determinati passaggi. Con Pipelines, puoi eseguire i passaggi della pipeline in modo selettivo. Questo aiuta a ottimizzare la formazione di machine learning. L'esecuzione selettiva è utile nei seguenti scenari:

  • Desideri riavviare una fase specifica con il tipo di istanza, gli iperparametri o altre variabili aggiornati e mantenendo i parametri delle fasi precedenti.

  • La tua pipeline non riesce in una fase intermedia. Le fasi precedenti dell'esecuzione, come la preparazione dei dati o l'estrazione delle funzionalità, sono costose da rieseguire. Potrebbe essere necessario introdurre una correzione e rieseguire alcune fasi manualmente per completare la pipeline.

Utilizzando l'esecuzione selettiva, potete scegliere di eseguire qualsiasi sottoinsieme di passaggi purché siano collegati nel grafico aciclico diretto (DAG) della pipeline. Di seguito viene DAG illustrato un esempio di flusso di lavoro della pipeline:

Un grafico aciclico diretto (DAG) di una pipeline di esempio.

È possibile selezionare i passaggi AbaloneTrain e AbaloneEval in un'esecuzione selettiva, ma non è possibile selezionare solo AbaloneMSECond i passaggi AbaloneTrain e, poiché questi passaggi non sono collegati in. DAG Per le fasi non selezionate del flusso di lavoro, l'esecuzione selettiva riutilizza gli output dell'esecuzione di una pipeline di riferimento anziché eseguire nuovamente i passaggi. Inoltre, le fasi non selezionate che sono a valle delle fasi selezionate non vengono eseguite in un'esecuzione selettiva.

Se scegli di eseguire un sottoinsieme di passaggi intermedi nella tua pipeline, i passaggi potrebbero dipendere dai passaggi precedenti. SageMaker necessita dell'esecuzione di una pipeline di riferimento da cui attingere queste dipendenze. Ad esempio, se scegli di eseguire i passaggi AbaloneTrain eAbaloneEval, hai bisogno degli output del passaggio. AbaloneProcess È possibile fornire un'esecuzione di riferimento ARN o SageMaker utilizzare direttamente l'ultima esecuzione della pipeline, che è il comportamento predefinito. Se disponete di un'esecuzione di riferimento, potete anche creare i parametri di runtime a partire dall'esecuzione di riferimento e fornirli all'esecuzione esecutiva selettiva con sostituzioni. Per informazioni dettagliate, consultare Riutilizzo dei valori dei parametri di runtime da un'esecuzione di riferimento.

In dettaglio, fornite una configurazione per l'esecuzione selettiva della pipeline di esecuzione utilizzando. SelectiveExecutionConfig Se includi un ARN per l'esecuzione di una pipeline di riferimento (con l'source_pipeline_execution_arnargomento), SageMaker utilizza le dipendenze del passaggio precedente dall'esecuzione della pipeline che hai fornito. Se non includi un'esecuzione della pipeline ARN ed esiste un'ultima esecuzione della pipeline, la SageMaker utilizza come riferimento per impostazione predefinita. Se non includi ARN e non desideri SageMaker utilizzare l'ultima esecuzione della pipeline, imposta sureference_latest_execution. False L'esecuzione della pipeline utilizzata in SageMaker ultima analisi come riferimento, sia essa l'ultima o specificata dall'utente, deve essere attiva o in Success stato. Failed

La tabella seguente riassume come SageMaker scegliere un'esecuzione di riferimento.

Il valore dell'argomento source_pipeline_execution_arn Il valore dell'argomento reference_latest_execution L'esecuzione di riferimento utilizzata
Una pipeline ARN

True o non specificato

La pipeline specificata ARN

Una pipeline ARN

False

La pipeline specificata ARN

null o non specificato

True o non specificato

L'ultima esecuzione della pipeline

null o non specificato

False

Nessuna: in questo caso, seleziona le fasi senza dipendenze a monte

Per ulteriori informazioni sui requisiti di configurazione dell'esecuzione selettiva, vedete sagemaker.workflow.selective_execution_config. SelectiveExecutionConfigdocumentazione.

La discussione seguente include esempi per i casi in cui si desidera specificare un'esecuzione di riferimento della pipeline, utilizzare l'ultima esecuzione della pipeline come riferimento o eseguire un'esecuzione selettiva senza un'esecuzione della pipeline di riferimento.

Esecuzione selettiva con un riferimento di pipeline specificato dall'utente

L'esempio seguente dimostra un'esecuzione selettiva dei passaggi AbaloneTrain e l'AbaloneEvalutilizzo di un'esecuzione della pipeline di riferimento.

from sagemaker.workflow.selective_execution_config import SelectiveExecutionConfig selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef", selected_steps=["AbaloneTrain", "AbaloneEval"] ) selective_execution = pipeline.start( execution_display_name=f"Sample-Selective-Execution-1", parameters={"MaxDepth":6, "NumRound":60}, selective_execution_config=selective_execution_config, )

Esecuzione selettiva con l'ultima esecuzione della pipeline come riferimento

L'esempio seguente dimostra un'esecuzione selettiva dei passaggi AbaloneTrain e l'AbaloneEvalutilizzo dell'ultima esecuzione della pipeline come riferimento. Poiché SageMaker utilizza l'ultima esecuzione della pipeline per impostazione predefinita, è possibile facoltativamente impostare l'argomento su. reference_latest_execution True

# Prepare a new selective execution. Select only the first step in the pipeline without providing source_pipeline_execution_arn. selective_execution_config = SelectiveExecutionConfig( selected_steps=["AbaloneTrain", "AbaloneEval"], # optional reference_latest_execution=True ) # Start pipeline execution without source_pipeline_execution_arn pipeline.start( execution_display_name=f"Sample-Selective-Execution-1", parameters={"MaxDepth":6, "NumRound":60}, selective_execution_config=selective_execution_config, )

Esecuzione selettiva senza una pipeline di riferimento

L'esempio seguente dimostra un'esecuzione selettiva dei passaggi AbaloneTrain senza fornire un riferimento AbaloneProcess ARN e disattivare l'opzione per utilizzare l'ultima pipeline eseguita come riferimento. SageMaker consente questa configurazione poiché questo sottoinsieme di passaggi non dipende dai passaggi precedenti.

# Prepare a new selective execution. Select only the first step in the pipeline without providing source_pipeline_execution_arn. selective_execution_config = SelectiveExecutionConfig( selected_steps=["AbaloneProcess", "AbaloneTrain"], reference_latest_execution=False ) # Start pipeline execution without source_pipeline_execution_arn pipeline.start( execution_display_name=f"Sample-Selective-Execution-1", parameters={"MaxDepth":6, "NumRound":60}, selective_execution_config=selective_execution_config, )

Riutilizzo dei valori dei parametri di runtime da un'esecuzione di riferimento

È possibile creare i parametri dall'esecuzione della pipeline di riferimento utilizzando build_parameters_from_execution e fornire il risultato alla pipeline di esecuzione selettiva. È possibile utilizzare i parametri originali dell'esecuzione di riferimento o applicare eventuali sostituzioni utilizzando l'argomento parameter_value_overrides.

L'esempio seguente mostra come creare parametri da un'esecuzione di riferimento e applicare una sostituzione per il parametro MseThreshold.

# Prepare a new selective execution. selective_execution_config = SelectiveExecutionConfig( source_pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef", selected_steps=["AbaloneTrain", "AbaloneEval", "AbaloneMSECond"], ) # Define a new parameters list to test. new_parameters_mse={ "MseThreshold": 5, } # Build parameters from reference execution and override with new parameters to test. new_parameters = pipeline.build_parameters_from_execution( pipeline_execution_arn="arn:aws:sagemaker:us-west-2:123123123123:pipeline/abalone/execution/123ab12cd3ef", parameter_value_overrides=new_parameters_mse ) # Start pipeline execution with new parameters. execution = pipeline.start( selective_execution_config=selective_execution_config, parameters=new_parameters )