Ejecución selectiva de los pasos de la canalización - Amazon SageMaker

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.

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

True o sin especificar

El ARN de la canalización especificada

Un ARN de canalización

False

El ARN de la canalización especificada

null o sin especificar

True o sin especificar

La ejecución más reciente de la canalización

null o sin especificar

False

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

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 )