

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
<a name="pipelines-selective-ex"></a>

Poiché utilizzi Pipelines per creare flussi di lavoro e orchestrare le fasi di addestramento di ML, potresti aver bisogno di più fasi di sperimentazione. Invece di eseguire l’intera pipeline ogni volta, potrebbe essere utile ripetere solo alcune fasi. Con Pipelines, puoi eseguire le fasi della pipeline in modo selettivo. Questo aiuta a ottimizzare l’addestramento di ML. 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, è possibile scegliere di eseguire qualsiasi sottoinsieme di fasi purché siano collegate nel grafo aciclico orientato (DAG) della pipeline. Il seguente DAG mostra un esempio di flusso di lavoro della pipeline:

![Un grafo aciclico orientato (DAG) di una pipeline di esempio.](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/pipeline-full.png)


Puoi selezionare le fasi `AbaloneTrain` e `AbaloneEval` in un’esecuzione selettiva, ma non puoi selezionare solo le fasi `AbaloneTrain` e `AbaloneMSECond` perché non sono collegate nel DAG. Per le fasi non selezionate del flusso di lavoro, l’esecuzione selettiva riutilizza gli output dell’esecuzione di una pipeline di riferimento anziché ricalcolare le fasi. 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 L'intelligenza artificiale necessita di un'esecuzione della pipeline di riferimento dalla quale attingere a queste dipendenze. Ad esempio, se scegli di eseguire le fasi `AbaloneTrain` e `AbaloneEval`, sono necessari gli output dalla fase `AbaloneProcess`. Puoi fornire un ARN di esecuzione di riferimento o indirizzare l' SageMaker IA a utilizzare l'ultima esecuzione della pipeline, che è il comportamento predefinito. Se disponi di un’esecuzione di riferimento, puoi anche creare i parametri di runtime a partire da tale esecuzione e fornirli all’esecuzione selettiva con eventuali sostituzioni. Per informazioni dettagliate, vedi [Riutilizzo dei valori dei parametri di runtime da un'esecuzione di riferimento](#pipelines-selective-ex-reuse).

Nello specifico, selezioni una configurazione per l’esecuzione selettiva della pipeline con `SelectiveExecutionConfig`. Se includi un ARN per l'esecuzione di una pipeline di riferimento (con l'`source_pipeline_execution_arn`argomento), SageMaker AI utilizza le dipendenze del passaggio precedente dall'esecuzione della pipeline che hai fornito. Se non includi un ARN ed esiste un'esecuzione della pipeline più recente, SageMaker AI la utilizza come riferimento per impostazione predefinita. Se non includi un ARN e non desideri che l' SageMaker IA utilizzi l'ultima esecuzione della pipeline, imposta su. `reference_latest_execution` `False` L'esecuzione della pipeline che l' SageMaker IA utilizza in ultima analisi come riferimento, sia essa più recente o specificata dall'utente, deve essere attiva o in stato. `Success` `Failed`

La tabella seguente riassume il modo in cui l' SageMaker IA sceglie un'esecuzione di riferimento.


| Il valore dell'argomento `source_pipeline_execution_arn` | Il valore dell'argomento `reference_latest_execution` | L'esecuzione di riferimento utilizzata | 
| --- | --- | --- | 
| Un ARN della pipeline | `True` o non specificato | L'ARN della pipeline specificata | 
| Un ARN della pipeline | `False` | L'ARN della pipeline specificata | 
| null o non specificato | `True` o non specificato | L'ultima esecuzione della pipeline | 
| null o non specificato | `False` | Nessuna: in questo caso, seleziona le fasi senza dipendenze a monte | 

[Per ulteriori informazioni sui requisiti di configurazione dell'esecuzione selettiva, consulta sagemaker.workflow.selective\_execution\_config. SelectiveExecutionConfig](https://sagemaker.readthedocs.io/en/stable/workflows/pipelines/sagemaker.workflow.pipelines.html#selective-execution-config)documentazione.

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
<a name="pipelines-selective-ex-arn"></a>

L’esempio seguente mostra un’esecuzione selettiva delle fasi `AbaloneTrain` e `AbaloneEval` con 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
<a name="pipelines-selective-ex-latest"></a>

L’esempio seguente mostra un’esecuzione selettiva delle fasi `AbaloneTrain` e `AbaloneEval` con l’esecuzione della pipeline più recente come riferimento. Poiché l' SageMaker IA utilizza l'ultima esecuzione della pipeline per impostazione predefinita, puoi facoltativamente impostare l'`reference_latest_execution`argomento su. `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
<a name="pipelines-selective-ex-none"></a>

L'esempio seguente dimostra un'esecuzione selettiva dei passaggi `AbaloneTrain` senza fornire un ARN di riferimento `AbaloneProcess` e disattivare l'opzione per utilizzare l'ultima esecuzione della pipeline come riferimento. SageMaker L'intelligenza artificiale 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
<a name="pipelines-selective-ex-reuse"></a>

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