Ejecución de canalizaciones en modo local
El modo local de las canalizaciones de SageMaker AI es una forma sencilla de probar sus scripts de entrenamiento, procesamiento e inferencia, así como la compatibilidad en tiempo de ejecución de los parámetros de la canalización
El modo local de las canalizaciones utiliza el modo local de trabajos de SageMaker AI
El modo local de la canalización admite actualmente los siguientes tipos de pasos:
-
Paso de modelo (solo con los argumentos de creación de modelo)
A diferencia del servicio administrado de las canalizaciones, que permite ejecutar varios pasos en paralelo mediante la configuración del paralelismo
nota
El modo local de las canalizaciones no es compatible con algoritmos de SageMaker AI como XGBoost. Si quiere utilizar estos algoritmos, debe utilizarlos en modo script
Para ejecutar una canalización de forma local, los campos de sagemaker_session asociados a los pasos de la canalización y a la propia canalización deben ser del tipo LocalPipelineSession. En el ejemplo siguiente se muestra cómo definir una canalización de SageMaker AI para que se ejecute de forma local.
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)
Cuando esté preparado para ejecutar la canalización en el servicio administrado de canalizaciones de SageMaker, puede hacerlo sustituyendo LocalPipelineSession en el fragmento de código anterior por PipelineSession (como se muestra en el siguiente ejemplo de código) y volviendo a ejecutar el código.
from sagemaker.workflow.pipeline_context import PipelineSession pipeline_session = PipelineSession()