Exécution de pipelines en mode local
Le mode local de SageMaker Pipelines permet de tester facilement vos scripts d’entraînement, de traitement et d’inférence, ainsi que la compatibilité d’exécution des paramètres du pipeline
Le mode local de Pipelines tire parti du mode local des tâches SageMaker AI
Le mode local des pipelines prend actuellement en charge les types d'étape suivants :
-
Étape de modèle (avec des arguments de création de modèle uniquement)
Contrairement au service Pipelines géré, qui permet l'exécution en parallèle de plusieurs étapes à l'aide de la configuration du parallélisme
Note
Le mode local de Pipelines n’est pas compatible avec les algorithmes SageMaker AI tels que XGBoost. Si vous voulez utiliser ces algorithmes, vous devez les utiliser en mode script
Pour exécuter un pipeline localement, les champs sagemaker_session associés aux étapes du pipeline et le pipeline lui-même doivent être de type LocalPipelineSession. L’exemple suivant montre comment définir un pipeline SageMaker AI à exécuter localement.
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)
Une fois que vous êtes prêt à exécuter le pipeline sur le service SageMaker Pipelines géré, vous pouvez le faire en remplaçant LocalPipelineSession dans l’extrait de code précédent par PipelineSession (comme indiqué dans l’exemple de code suivant) et en réexécutant le code.
from sagemaker.workflow.pipeline_context import PipelineSession pipeline_session = PipelineSession()