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à.
Fasi delle pipeline
Le pipeline sono costituite da fasi. Queste fasi definiscono le operazioni intraprese dalla pipeline e le relazioni tra le fasi utilizzando le proprietà. La pagina seguente descrive i tipi di fasi, le relative proprietà e le relazioni tra di esse.
Argomenti
Proprietà della fase
Utilizza l’attributo properties per aggiungere dipendenze dei dati tra le fasi della pipeline. Le pipeline utilizzano queste dipendenze dei dati per costruire il DAG a partire dalla definizione della pipeline. È possibile fare riferimento a queste proprietà come valori segnaposto e vengono risolte in fase di runtime.
L'propertiesattributo di un passo Pipelines corrisponde all'oggetto restituito da una Describe chiamata per il tipo di lavoro SageMaker AI corrispondente. Per ogni tipo di processo, la chiamata Describe restituisce il seguente oggetto di risposta:
-
ProcessingStep– DescribeProcessingJob -
TrainingStep– DescribeTrainingJob -
TransformStep– DescribeTransformJob
Per verificare quali proprietà sono riferibili per ogni tipo di passaggio durante la creazione della dipendenza dei dati, consulta Data Dependency - Property Reference nell'SDK
Parallelizzazione delle fasi
Quando una fase non dipende da nessuna altra fase, viene eseguita immediatamente dopo l’esecuzione della pipeline. Tuttavia, l'esecuzione di troppe fasi della pipeline in parallelo può esaurire rapidamente le risorse disponibili. Controlla il numero di fasi simultanee per l'esecuzione di una pipeline con ParallelismConfiguration.
L'esempio seguente utilizza ParallelismConfiguration per impostare il limite di fasi simultanee a cinque.
pipeline.create( parallelism_config=ParallelismConfiguration(5), )
Dipendenza dei dati tra le fasi
È possibile definire la struttura del DAG specificando le relazioni dei dati tra le fasi. Per creare dipendenze dei dati tra le fasi, passa le proprietà di una fase come input a un'altra fase della pipeline. La fase che riceve l'input viene avviata solo dopo il termine dell'esecuzione della fase che fornisce l'input.
Una dipendenza dai dati utilizza la notazione nel seguente formato. JsonPath Questo formato attraversa il file delle proprietà JSON. Ciò significa che è possibile aggiungere tutte <property> le istanze necessarie per raggiungere la proprietà annidata desiderata nel file. Per ulteriori informazioni sulla JsonPath notazione, consulta il repository. JsonPath
<step_name>.properties.<property>.<property>
Di seguito viene illustrato come specificare un bucket Amazon S3 utilizzando la proprietà ProcessingOutputConfig di una fase di elaborazione.
step_process.properties.ProcessingOutputConfig.Outputs["train_data"].S3Output.S3Uri
Per creare la dipendenza dei dati, passa il bucket a una fase di addestramento come segue.
from sagemaker.workflow.pipeline_context import PipelineSession sklearn_train = SKLearn(..., sagemaker_session=PipelineSession()) step_train = TrainingStep( name="CensusTrain", step_args=sklearn_train.fit(inputs=TrainingInput( s3_data=step_process.properties.ProcessingOutputConfig.Outputs[ "train_data"].S3Output.S3Uri )) )
Per verificare quali proprietà sono riferibili per ogni tipo di passaggio durante la creazione della dipendenza dei dati, consulta Data Dependency - Property Reference nell'SDK
Dipendenza personalizzata tra le fasi
Quando specifichi una dipendenza dei dati, Pipelines fornisce la connessione dati tra le fasi. In alternativa, una fase può accedere ai dati di una fase precedente senza utilizzare direttamente Pipelines. In questo caso, puoi creare una dipendenza personalizzata che indichi a Pipelines di iniziare una fase solo dopo il termine dell’esecuzione di un’altra fase. Si crea una dipendenza personalizzata specificando l'attributo DependsOn di una fase.
Ad esempio, quanto segue definisce una fase C che inizia solo dopo la fine dell'esecuzione sia della fase A che della fase B.
{ 'Steps': [ {'Name':'A', ...}, {'Name':'B', ...}, {'Name':'C', 'DependsOn': ['A', 'B']} ] }
Pipelines genera un’eccezione di convalida se la dipendenza crea una dipendenza ciclica.
L'esempio seguente crea una fase di addestramento che inizia al termine di una fase di elaborazione.
processing_step = ProcessingStep(...) training_step = TrainingStep(...) training_step.add_depends_on([processing_step])
L'esempio seguente crea una fase di addestramento che non si avvia fino al termine dell'esecuzione di due diverse fasi di elaborazione.
processing_step_1 = ProcessingStep(...) processing_step_2 = ProcessingStep(...) training_step = TrainingStep(...) training_step.add_depends_on([processing_step_1, processing_step_2])
Di seguito viene fornito un modo alternativo per creare la dipendenza personalizzata.
training_step.add_depends_on([processing_step_1]) training_step.add_depends_on([processing_step_2])
L'esempio seguente crea una fase di addestramento che riceve input da una fase di elaborazione e attende il termine dell'esecuzione di una diversa fase di elaborazione.
processing_step_1 = ProcessingStep(...) processing_step_2 = ProcessingStep(...) training_step = TrainingStep( ..., inputs=TrainingInput( s3_data=processing_step_1.properties.ProcessingOutputConfig.Outputs[ "train_data" ].S3Output.S3Uri ) training_step.add_depends_on([processing_step_2])
Nell'esempio seguente viene illustrato come recuperare un elenco di stringhe delle dipendenze personalizzate di una fase.
custom_dependencies = training_step.depends_on
Immagini personalizzate in una fase
Puoi utilizzare una qualsiasi delle immagini disponibili dell' SageMaker AI Deep Learning Container
Inoltre puoi utilizzare il tuo container con le fasi della pipeline. Poiché non puoi creare un’immagine dall’interno di Studio Classic, devi crearla con un altro metodo prima di utilizzarla con Pipelines.
Per utilizzare il tuo container personale durante la creazione delle fasi per la pipeline, includi l'URI dell'immagine nella definizione dello strumento di valutazione. Per ulteriori informazioni sull'utilizzo del tuo contenitore con l' SageMaker intelligenza artificiale, consulta Usare i contenitori Docker con SageMaker l'intelligenza artificiale.