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 utilice Canalizaciones para crear flujos de trabajo y orquestar sus pasos de entrenamiento de ML, es posible que necesite realizar varias fases de experimentación. En lugar de ejecutar el proceso completo a la vez, es posible que solo desee repetir ciertos pasos. Con Canalizaciones, puede ejecutar los pasos de la canalización de forma selectiva. Esto ayuda a optimizar su entrenamiento de ML. 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:

Puede seleccionar los pasos AbaloneTrain
y AbaloneEval
en una ejecución selectiva, pero no puede seleccionar solo los pasos AbaloneTrain
y AbaloneMSECond
, 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 las salidas 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 decide ejecutar un subconjunto de pasos intermedios en su canalización, es posible que los pasos dependan de los pasos anteriores. SageMaker La IA necesita una ejecución de canalización de referencia a partir de la cual poder dotar de recursos a estas dependencias. Por ejemplo, si decide ejecutar los pasos AbaloneTrain
y AbaloneEval
, necesita la salida del paso AbaloneProcess
. Puedes proporcionar un ARN de ejecución de referencia o indicar a la SageMaker IA que utilice la última ejecución de la canalización, que es el comportamiento predeterminado. Si tiene una ejecución de referencia, también puede crear parámetros de tiempo de ejecución a partir de la ejecución de referencia y proporcionarlos a la ejecución selectiva con anulaciones. Para obtener más información, consulte Reutilización de los valores de los parámetros de tiempo de ejecución de una ejecución de referencia.
En concreto, proporciona una configuración para la ejecución de la canalización de ejecución selectiva mediante SelectiveExecutionConfig
. Si incluyes un ARN para la ejecución de una canalización de referencia (con el source_pipeline_execution_arn
argumento), la SageMaker IA utilizará 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, SageMaker AI la utiliza como referencia de forma predeterminada. Si no incluye un ARN y no quiere que la SageMaker IA utilice la última ejecución de su canalización, reference_latest_execution
configúrelo en. False
La ejecución de la canalización que la SageMaker IA utilice 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 la SageMaker IA 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
En el siguiente ejemplo, se muestra una ejecución selectiva para volver de los pasos AbaloneTrain
y AbaloneEval
utilizando como referencia la ejecución de una canalización.
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 AbaloneEval
utilizando como referencia la última ejecución de la canalización. Dado que la SageMaker IA 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 La IA 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 )