Esecuzione delle pipeline con la modalità locale
La modalità locale di SageMaker Pipelines è un modo semplice per testare gli script di addestramento, elaborazione e inferenza, nonché la compatibilità del runtime dei parametri della pipeline
La modalità locale di Pipelines si basa sulla modalità locale dei processi SageMaker AI
La modalità locale pipeline attualmente supporta i seguenti tipi di fasi:
-
Fase del modello (solo con argomenti Crea modello)
A differenza del servizio Pipeline gestito che consente l'esecuzione di più fasi in parallelo utilizzando la configurazione del parallelismo
Nota
La modalità locale di Pipelines non è compatibile con gli algoritmi di SageMaker AI, ad esempio XGBoost. Se si desidera utilizzare questi algoritmi, è necessario utilizzarli in modalità script.
Per eseguire una pipeline a livello locale, i campi sagemaker_session associati alle fasi della pipeline e alla pipeline stessa devono essere di tipo LocalPipelineSession. L’esempio seguente illustra come definire una pipeline SageMaker AI da eseguire localmente.
from sagemaker.workflow.pipeline_context import LocalPipelineSession from sagemaker.pytorch import PyTorch from sagemaker.workflow.steps import TrainingStep from sagemaker.workflow.pipeline import Pipeline local_pipeline_session = LocalPipelineSession() pytorch_estimator = PyTorch( sagemaker_session=local_pipeline_session, role=sagemaker.get_execution_role(), instance_type="ml.c5.xlarge", instance_count=1, framework_version="1.8.0", py_version="py36", entry_point="./entry_point.py", ) step = TrainingStep( name="MyTrainingStep", step_args=pytorch_estimator.fit( inputs=TrainingInput(s3_data="s3://amzn-s3-demo-bucket/my-data/train"), ) ) pipeline = Pipeline( name="MyPipeline", steps=[step], sagemaker_session=local_pipeline_session ) pipeline.create( role_arn=sagemaker.get_execution_role(), description="local pipeline example" ) // pipeline will execute locally execution = pipeline.start() steps = execution.list_steps() training_job_name = steps['PipelineExecutionSteps'][0]['Metadata']['TrainingJob']['Arn'] step_outputs = pipeline_session.sagemaker_client.describe_training_job(TrainingJobName = training_job_name)
Quando è tutto pronto per eseguire la pipeline sul servizio Pipeline SageMaker gestito, puoi farlo sostituendo LocalPipelineSession nel frammento di codice precedente con PipelineSession (come mostrato nel seguente esempio di codice) ed eseguendo nuovamente il codice.
from sagemaker.workflow.pipeline_context import PipelineSession pipeline_session = PipelineSession()