

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Execução seletiva das etapas do pipeline
<a name="pipelines-selective-ex"></a>

Ao usar o Pipelines para criar fluxos de trabalho e orquestrar suas etapas de treinamento de ML, talvez seja necessário passar por várias fases de experimentação. Em vez de executar o pipeline completo a cada vez, talvez você queira repetir apenas algumas etapas. Com o Pipelines, você pode executar as etapas do pipeline de forma seletiva. Isso ajuda a otimizar seu treinamento de ML. A execução seletiva é útil nos seguintes cenários: 
+ Você quer reiniciar uma etapa específica com o tipo de instância, hiperparâmetros ou outras variáveis atualizados e, ao mesmo tempo, manter os parâmetros das etapas iniciais.
+ Seu pipeline falha em uma etapa intermediária. As etapas anteriores da execução, como preparação de dados ou extração de atributos, são caras de serem executadas novamente. Talvez seja necessário introduzir uma correção e executar novamente algumas etapas manualmente para concluir o pipeline. 

Usando a execução seletiva, você pode optar por executar qualquer subconjunto de etapas, desde que elas estejam conectadas no gráfico acíclico direcionado (DAG) do seu pipeline. O DAG a seguir mostra um exemplo de fluxo de trabalho de pipeline:

![\[Um gráfico acíclico dirigido (DAG, directed acyclic graph) de um exemplo de pipeline.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/pipeline-full.png)


Você pode selecionar etapas `AbaloneTrain` e `AbaloneEval` em uma execução seletiva, mas não pode selecionar apenas `AbaloneTrain` e `AbaloneMSECond`, porque essas etapas não estão conectadas no DAG. Para etapas não selecionadas no fluxo de trabalho, a execução seletiva reutiliza as saídas da execução de um pipeline de referência em vez de executar as etapas novamente. Além disso, as etapas não selecionadas que estão a jusante das etapas selecionadas não são executadas em uma execução seletiva. 

Se você optar por executar um subconjunto de etapas intermediárias em seu pipeline, suas etapas poderão depender das etapas anteriores. SageMaker A IA precisa de uma execução de pipeline de referência a partir da qual fornecer recursos a essas dependências. Por exemplo, se você optar por executar as etapas `AbaloneTrain` e `AbaloneEval`, você precisa das saídas da etapa `AbaloneProcess`. Você pode fornecer um ARN de execução de referência ou direcionar a SageMaker IA para usar a execução mais recente do pipeline, que é o comportamento padrão. Se você tiver uma execução de referência, também poderá criar os parâmetros de runtime de sua execução de referência e fornecê-los à sua execução executiva seletiva com substituições. Para obter detalhes, consulte [Reutilize valores de parâmetros de runtime de uma execução de referência](#pipelines-selective-ex-reuse).

Em detalhes, você especifica uma configuração para sua execução de pipeline de execução seletiva usando `SelectiveExecutionConfig`. Se você incluir um ARN para a execução de um pipeline de referência (com o `source_pipeline_execution_arn` argumento), a SageMaker AI usará as dependências da etapa anterior da execução do pipeline que você forneceu. Se você não incluir um ARN e existir uma execução de pipeline mais recente, a SageMaker IA o usará como referência por padrão. Se você não incluir um ARN e não quiser que a SageMaker IA use sua última execução de pipeline, `reference_latest_execution` defina como. `False` A execução do pipeline que a SageMaker IA finalmente usa como referência, seja a mais recente ou especificada pelo usuário, deve estar em `Success` ou `Failed` estado.

A tabela a seguir resume como a SageMaker IA escolhe uma execução de referência.


| O valor do argumento `source_pipeline_execution_arn` | O valor do argumento `reference_latest_execution` | A execução de referência usada | 
| --- | --- | --- | 
| Um ARN de pipeline | `True` ou não especificado | Esse é o ARN do pipeline especificado | 
| Um ARN de pipeline | `False` | Esse é o ARN do pipeline especificado | 
| null ou não especificado | `True` ou não especificado | A última execução do pipeline | 
| null ou não especificado | `False` | Nenhuma: nesse caso, selecione etapas sem dependências upstream | 

Para obter mais informações sobre os requisitos de configuração de execução seletiva, consulte [sagemaker.workflow.selective\$1execution\$1config. SelectiveExecutionConfig](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#selective-execution-config)documentação.

A discussão a seguir inclui exemplos dos casos em que você deseja especificar uma execução de referência de pipeline, usar a execução mais recente do pipeline como referência ou executar a execução seletiva sem uma execução de pipeline de referência.

## Execução seletiva com uma referência de pipeline especificada pelo usuário
<a name="pipelines-selective-ex-arn"></a>

O exemplo a seguir demonstra o uso da execução seletiva das etapas `AbaloneTrain` e `AbaloneEval` usando uma execução de pipeline de referência.

```
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,
)
```

## Execução seletiva com a execução mais recente do pipeline como referência
<a name="pipelines-selective-ex-latest"></a>

O exemplo a seguir demonstra o uso da execução seletiva das etapas `AbaloneTrain` e `AbaloneEval` usando a execução mais recente do pipeline como referência. Como a SageMaker IA usa a execução mais recente do pipeline por padrão, você pode, opcionalmente, definir o `reference_latest_execution` argumento como. `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,
)
```

## Execução seletiva sem um pipeline de referência
<a name="pipelines-selective-ex-none"></a>

O exemplo a seguir demonstra uma execução seletiva das etapas `AbaloneProcess` `AbaloneTrain` sem fornecer um ARN de referência e desativar a opção de usar a última execução do pipeline como referência. SageMaker A IA permite essa configuração, pois esse subconjunto de etapas não depende das etapas 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,
)
```

## Reutilize valores de parâmetros de runtime de uma execução de referência
<a name="pipelines-selective-ex-reuse"></a>

Você pode criar os parâmetros da execução do pipeline de referência usando `build_parameters_from_execution` e fornecer o resultado ao pipeline de execução seletiva. Você pode usar os parâmetros originais da execução da referência ou aplicar quaisquer substituições usando o argumento `parameter_value_overrides`.

O exemplo a seguir mostra como criar parâmetros a partir de uma execução de referência e aplicar uma substituição ao 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
)
```