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:
È 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_arn
argomento), 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 |
|
La pipeline specificata ARN |
Una pipeline ARN |
|
La pipeline specificata ARN |
null o non specificato |
|
L'ultima esecuzione della pipeline |
null o non specificato |
|
Nessuna: in questo caso, seleziona le fasi senza dipendenze a monte |
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'AbaloneEval
utilizzo 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'AbaloneEval
utilizzo 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 )