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 selectiva de los pasos de la canalización
A medida que utilices SageMaker Pipelines para crear flujos de trabajo y organizar tus pasos de formación en aprendizaje automático, es posible que tengas que realizar varias fases de experimentación. En lugar de ejecutar el proceso completo cada vez, es posible que solo desees repetir algunos pasos. Con SageMaker Pipelines, puedes ejecutar los pasos de la canalización de forma selectiva. Esto ayuda a optimizar tu formación en aprendizaje automático. La ejecución selectiva es útil en los siguientes escenarios:
Desea reiniciar un paso específico con el tipo de instancia, los hiperparámetros u otras variables actualizados y, al mismo tiempo, mantener los parámetros de los pasos anteriores.
La canalización no supera un paso intermedio. Es caro volver a ejecutar los pasos anteriores de la ejecución, como la preparación de los datos o la extracción de características. Es posible que tenga que introducir una solución y volver a ejecutar algunos pasos manualmente para completar la canalización.
Al utilizar la ejecución selectiva, puede elegir ejecutar cualquier subconjunto de pasos siempre que estén conectados en el gráfico acíclico dirigido (DAG) de su canalización. El siguiente DAG muestra un ejemplo de flujo de trabajo de canalización:
![Un gráfico acíclico dirigido (DAG) de una canalización de ejemplo.](images/pipeline-full.png)
Puede seleccionar los pasos AbaloneTrain
y, AbaloneEval
en una ejecución selectiva, pero no puede seleccionar solo AbaloneTrain
algunos AbaloneMSECond
pasos porque estos pasos no están conectados en el DAG. En el caso de los pasos no seleccionados del flujo de trabajo, la ejecución selectiva reutiliza los resultados de una ejecución de canalización de referencia en lugar de volver a ejecutar los pasos. Además, en una ejecución selectiva, los pasos no seleccionados posteriores a los pasos seleccionados no se ejecutan.
Si eliges ejecutar un subconjunto de pasos intermedios en tu proceso, es posible que los pasos dependan de los pasos anteriores. SageMaker necesita una ejecución de canalización de referencia a partir de la cual dotar de recursos a estas dependencias. Por ejemplo, si eliges ejecutar los pasos AbaloneTrain
yAbaloneEval
, necesitas los resultados del AbaloneProcess
paso. Puedes proporcionar un ARN de ejecución de referencia o directamente SageMaker usar la última ejecución de canalización, que es el comportamiento predeterminado. Si tiene una ejecución de referencia, también puede crear los parámetros de tiempo de ejecución a partir de la ejecución de referencia y proporcionarlos a la ejecución ejecutiva selectiva con anulaciones. Para obtener más detalles, consulte Reutilización de los valores de los parámetros de tiempo de ejecución de una ejecución de referencia.
En detalle, proporciona una configuración para la ejecución de su canalización de ejecución selectiva medianteSelectiveExecutionConfig
. Si incluyes un ARN para la ejecución de una canalización de referencia (con el source_pipeline_execution_arn
argumento), SageMaker utiliza las dependencias del paso anterior de la ejecución de canalización que proporcionaste. Si no incluye un ARN y existe una ejecución de canalización más reciente, la SageMaker utiliza como referencia de forma predeterminada. Si no incluye un ARN y no desea SageMaker utilizar la última ejecución de la canalización, reference_latest_execution
configúrelo en. False
La ejecución de la canalización que se utilice SageMaker en última instancia como referencia, ya sea la más reciente o la especificada por el usuario, debe estar en Success
o Failed
estado.
En la siguiente tabla se resume cómo se SageMaker elige una ejecución de referencia.
El valor del argumento source_pipeline_execution_arn |
El valor del argumento reference_latest_execution |
La ejecución de referencia utilizada |
---|---|---|
Un ARN de canalización |
|
El ARN de la canalización especificada |
Un ARN de canalización |
|
El ARN de la canalización especificada |
null o sin especificar |
|
La ejecución más reciente de la canalización |
null o sin especificar |
|
Ninguna: en este caso, seleccione los pasos sin dependencias anteriores |
Para obtener más información sobre los requisitos de configuración de la ejecución selectiva, consulte sagemaker.workflow.selective_execution_config. SelectiveExecutionConfig
En el siguiente análisis se incluyen ejemplos de los casos en los que desea especificar una ejecución de canalización de referencia, utilizar la ejecución de canalización más reciente como referencia o ejecutar una ejecución selectiva sin una ejecución de canalización de referencia.
Ejecución selectiva con una referencia de canalización especificada por el usuario
El siguiente ejemplo muestra una ejecución selectiva de los pasos AbaloneTrain
y el AbaloneEval
uso de una ejecución de canalización de referencia.
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, )
Ejecución selectiva con la ejecución de canalización más reciente como referencia
En el siguiente ejemplo, se muestra una ejecución selectiva de los pasos AbaloneTrain
y se AbaloneEval
utiliza la última ejecución de canalización como referencia. Como SageMaker utiliza la última ejecución de la canalización de forma predeterminada, puedes establecer el reference_latest_execution
argumento enTrue
.
# 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, )
Ejecución selectiva sin una canalización de referencia
El siguiente ejemplo muestra una ejecución selectiva de los pasos AbaloneProcess
AbaloneTrain
sin proporcionar un ARN de referencia y desactivando la opción de usar la última ejecución de canalización como referencia. SageMaker permite esta configuración, ya que este subconjunto de pasos no depende de los pasos anteriores.
# 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, )
Reutilización de los valores de los parámetros de tiempo de ejecución de una ejecución de referencia
Puede crear los parámetros a partir de la ejecución de su canalización de referencia mediante build_parameters_from_execution
y suministrar el resultado a su canalización de ejecución selectiva. Puede utilizar los parámetros originales de la ejecución de referencia o aplicar cualquier modificación mediante el argumento parameter_value_overrides
.
En el siguiente ejemplo, se muestra cómo crear parámetros a partir de una ejecución de referencia y cómo aplicar una modificación al parámetro 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 )