Ejecuta canalizaciones en modo local - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejecuta canalizaciones en modo local

SageMaker El modo local de Pipelines es una forma sencilla de probar tus scripts de entrenamiento, procesamiento e inferencia, así como la compatibilidad de los parámetros de la canalización en tiempo de ejecución antes de ejecutar la canalización en el servicio gestionado. SageMaker Al usar el modo local, puedes probar tu SageMaker canalización de forma local con un conjunto de datos más pequeño. Esto permite depurar de forma rápida y sencilla los errores en los scripts del usuario y en la propia definición de la canalización sin incurrir en los costos que conlleva el uso del servicio administrado. En el siguiente tema, se muestra cómo definir y ejecutar canalizaciones de forma local.

El modo local de Pipelines aprovecha el modo local SageMaker de trabajos de forma interna. Esta es una función de SageMaker Python SDK que le permite ejecutar imágenes SageMaker integradas o personalizadas de forma local mediante contenedores de Docker. El modo local de Pipelines se basa en el modo local de SageMaker trabajos. Por lo tanto, puede esperar ver los mismos resultados que si ejecutara esos trabajos por separado. Por ejemplo, el modo local utiliza Amazon S3 para cargar artefactos del modelo y procesar las salidas. Si desea que los datos generados por los trabajos locales residan en el disco local, puede utilizar la configuración mencionada en Modo local.

El modo local de la canalización admite actualmente los siguientes tipos de pasos:

A diferencia del servicio administrado de las canalizaciones, que permite ejecutar varios pasos en paralelo mediante la configuración del paralelismo, el ejecutor de canalización local ejecuta los pasos en orden secuencial. Por lo tanto, el rendimiento general de ejecución de una canalización local puede ser inferior al de una canalización que se ejecuta en la nube; depende principalmente del tamaño del conjunto de datos, del algoritmo y de la potencia del equipo local. Tenga en cuenta también que los Pipelines que se ejecutan en modo local no se registran en SageMaker los experimentos.

nota

El modo local de Pipelines no es compatible con SageMaker algoritmos 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. El siguiente ejemplo muestra cómo se puede definir una SageMaker canalización para que se ejecute 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)

Cuando estés preparado para ejecutar la canalización en el servicio de SageMaker Pipelines gestionado, puedes hacerlo sustituyendo LocalPipelineSession 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()